Gradle、Ant和Maven的比较
2016-01-18 14:54
495 查看
一、项目自动构建的步骤
· 编译源代码· 运行单元测试或者集成测试
· 生成执行分析的报告
· 创建发布版本
· 部署到目标环境
二、Java的自动构建工具
早期的Ant(Another Neat Tool),开始主要用来构建著名的Tomcat,产生的动机是由于作者James Duncan Davidson受不了Makfile的语法格式.Maven的产生,也是由于厌倦了日复一日的手工构建工作,对各个项目风格迥异的构建系统感到麻烦.Maven的依赖管理以及项目构建规则重用性等特点,让Maven几乎成为Java构建工具的事实标准.
Gradle作为新的构建工具,基于Groovy语言的构建工具,既保持了Maven的优点,通过使用Groovy定义,克服了 Maven中使用XML繁冗以及不灵活等缺点。
三、依赖配置
Ant处理依赖<patternset id="spring.context.packages">
<include name="org/springframework/context/**"/>
<include name="org/springframework/core/**"/>
<include name="org/springframework/beans/**"/>
</patternset>
Maven引入依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>3.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>3.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>3.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
<scope>test</scope>
</dependency>
Gradle脚本处理依赖
dependencies {
compile('org.springframework:spring-core:3.0.5.RELEASE')
compile('org.springframework:spring-beans:3.0.5.RELEASE')
compile('org.springframework:spring-context:3.0.5.RELEASE')
testCompile('junit:junit:4.9')
}
四、构建性能
Gradle比Maven性能高不了,甚至还低一些。不过是这两种构建工具都要明显慢于Ant。
五、仓库
Maven有自己的单一仓库坐标格式。Gradle可以使用Ivy仓库和Maven仓库。
Ant全部要自己处理。
六、构建生命周期
Maven提供有限的构建生命周期访问。 插件可以连接到生命周期的特定阶段,而且只有在核心插件执行;不过也可以自己写插件完成特定生命周期操作,不过这个可不是一两天可以搞定的.Gradle很容易这方面NB,因为它可以轻松地访问任何生成的一部分,并允许用Groovy代码处理。
Ant也可以访问任何一部分构建,但是需要用n多个任务来实现而不是代码,所以还是不如Gradle强大。
七、综上所述
Gradle后来居上,不过使用Gradle必须熟悉Grovvy语法,而Maven只需要会xml,故技术没有取代,而是共存.
你还在等什么,赶快试试吧。
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- maven学习
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序