gradle和maven有什么用?有什么区别?
整个过程可分为以下步骤:
编译源代码
运行单元测试和集成测试
执行静态代码分析并生成分析报告。
创建发布版本
部署到目标环境
部署交付流程
进行烟雾测试和自动功能测试。
如果手动执行每一步,无疑效率低下且容易出错。有了自动化构造,您只需要定制您的构造逻辑,剩下的交给工具。
虽然两者都是项目工具,但maven现在是行业标准,Gradle是后起之秀。很多人都是从安卓工作室认识他的。Gradle抛弃了Maven繁琐的基于XML的配置。众所周知,XML的阅读体验很差。虽然机器很容易识别,但毕竟是靠人来维护的。而是采用了特定领域语言Groovy的配置,大大简化了构建代码的行数。例如,在Maven中,您需要引入一个依赖项:
& lt属性& gt
& ltkaptcha.version & gt2.3 & lt/kapt cha . version & gt;
& lt/properties & gt;
& lt依赖关系& gt
& lt依赖性& gt
& ltgroupId & gtcom . Google . code . kapt cha & lt;/groupId & gt;
& ltartifactId & gtkaptcha & lt/artifact id & gt;
& lt版本& gt$ { kaptcha.version } & lt/version & gt;
& lt分类器& gtJDK 15 & lt;/classifier & gt;
& lt/dependency & gt;
& lt依赖性& gt
& ltgroupId & gtorg.springframework & lt/groupId & gt;
& ltartifactId & gt弹簧芯& lt/artifact id & gt;
& lt/dependency & gt;
& lt依赖性& gt
& ltgroupId & gtorg.springframework & lt/groupId & gt;
& ltartifactId & gt春豆& lt/artifact id & gt;
& lt/dependency & gt;
& lt依赖性& gt
& ltgroupId & gtorg.springframework & lt/groupId & gt;
& ltartifactId & gtspring-context</artifact id & gt;
& lt/dependency & gt;
& lt依赖性& gt
& ltgroupId & gtjunit & lt/groupId & gt;
& ltartifactId & gtjunit & lt/artifact id & gt;
& lt/dependency & gt;
& lt/dependencies & gt;
然后我把它转换成Gradle脚本,结果很惊人:
依赖关系{
编译(' org . spring framework:spring-core:2 . 5 . 6 ')
编译(' org . spring framework:spring-beans:2 . 5 . 6 ')
编译(' org . spring framework:spring-context:2 . 5 . 6 ')
编译(' com . Google . code . kapt cha:kapt cha:2.3:JDK 15 ')
test compile(“JUnit:JUnit:4.7”)
}
注意配置从28线减少到了7线!这还不算我省略的一些父POM配置。依赖的groupId,artifactId,版本,作用域甚至分类器,一点也不少。相比Maven或者Ant的XML配置脚本,Gradle用的Grovvy脚本杀伤力太大,爱美之心人皆有之。比起70岁老太太的松弛皱纹,大家肯定更喜欢姑娘紧绷的脸,XML就是那个老太太的皱纹。
格雷尔给我的最大收获是两分。
一个是简洁。基于Groovy的紧凑脚本确实让人爱不释手,在表达意图上没有什么不清楚的。
第二是灵活性。各种在Maven中很难做到的事情,在Gradle中都是小菜一碟,比如修改现有的build生命周期,完成几行配置。同样,你必须用Maven写一个插件,这对于一个新手用户来说,一两天几乎是不可能的。