Gradle 实践 博客分类: 开源框架 gradle maven ant
程序员文章站
2024-02-20 21:20:10
...
前段时间在看了文章[5个让人激动的Java项目]之后,决定实践一下 Gradle。
我对 Gradle 的理解是其是结合了 Maven 和 Ant 双方优点的一种基于 Groovy DSL 的新式项目构建工具。而且由于是基于 Groovy 语言,所以语法上要比基于 XML 的 Maven 和 Ant 简洁许多,并且功能更加强大。
现在 Gradle 的最新版本是 1.0 rc1,IDE 方面我用的是 IntelliJ IDEA 11.1。需要说明的是,IDEA 11.1 以前的版本并不能和 1.0 rc1 配合使用,这也是因为 Gradle 是个新工具,变化比较快导致的。
下面通过一个例子,从使用 Maven 的 Repository、OSGi 项目构建、模块化项目等角度为大家初步介绍一下 Gradle 的使用。
Gradle 常用的几个命令,jar 是打包,test 的运行单元测试,clean 是清理。与 Maven 不同,jar 命令不会运行单元测试。但是 Gradle 也像 Maven 一样,支持多个命令同时运行,用空格分开即可。
Gradle 的特性是非常多的,我这里介绍的只是一小部分。
Gradle 的不足在于并不像 Maven 的 pom.xml 那样有相对固定的格式,当然这也是其灵活用法的两面性。另一点不足是 Gradle 还是一个比较新的项目,目前为止最新版本也才是 1.0 rc1,上不是正式版本。当然已经有很多著名的开源项目,例如 Hibernate,开始使用 Gradle 作为项目构建工具,所以 Gradle 的前途还是很好的。
对于目前采用 Maven 的项目,一般没有必要移到 Gradle 上。但如果对于大型项目,需要很多自定义的项目构建过程,我认为 Gradle 是比 Maven 或 Ant + Ivy 更好的选择。
附件是整个项目。
我对 Gradle 的理解是其是结合了 Maven 和 Ant 双方优点的一种基于 Groovy DSL 的新式项目构建工具。而且由于是基于 Groovy 语言,所以语法上要比基于 XML 的 Maven 和 Ant 简洁许多,并且功能更加强大。
现在 Gradle 的最新版本是 1.0 rc1,IDE 方面我用的是 IntelliJ IDEA 11.1。需要说明的是,IDEA 11.1 以前的版本并不能和 1.0 rc1 配合使用,这也是因为 Gradle 是个新工具,变化比较快导致的。
下面通过一个例子,从使用 Maven 的 Repository、OSGi 项目构建、模块化项目等角度为大家初步介绍一下 Gradle 的使用。
// 其实是 Groovy 代码,为了高亮,写成 Java // build.gradle: // 包含在 subprojects 中的配置只对 settings.gradle 中包含的子项目起作用。 // 类似的还有 allprojects,对根项目也起作用 subprojects { subproject -> // 使用本地的 Maven 仓库 repositories { mavenLocal() } // 启用插件 apply plugin: 'java' // OSGi 插件用于生产 manifest 文件 apply plugin: 'osgi' // 解决使用 OSGi 插件的一个 bug classes.doLast { // without this, the jar task fails with "java.lang.IllegalArgumentException: A Jar can only accept a valid file or directory:" as underlying cause ant.mkdir(dir: "$buildDir/classes/main") } // 依赖管理,语法和 Maven 相比简练许多 dependencies { testCompile 'junit:junit:4.8.1' compile 'log4j:log4j:1.2.16' } } // settings.gradle // 对于多模块系统是必须的 include 'subproj1', 'subproj2'
Gradle 常用的几个命令,jar 是打包,test 的运行单元测试,clean 是清理。与 Maven 不同,jar 命令不会运行单元测试。但是 Gradle 也像 Maven 一样,支持多个命令同时运行,用空格分开即可。
Gradle 的特性是非常多的,我这里介绍的只是一小部分。
Gradle 的不足在于并不像 Maven 的 pom.xml 那样有相对固定的格式,当然这也是其灵活用法的两面性。另一点不足是 Gradle 还是一个比较新的项目,目前为止最新版本也才是 1.0 rc1,上不是正式版本。当然已经有很多著名的开源项目,例如 Hibernate,开始使用 Gradle 作为项目构建工具,所以 Gradle 的前途还是很好的。
对于目前采用 Maven 的项目,一般没有必要移到 Gradle 上。但如果对于大型项目,需要很多自定义的项目构建过程,我认为 Gradle 是比 Maven 或 Ant + Ivy 更好的选择。
附件是整个项目。