Gradle 实践

本文介绍了Gradle这一结合Maven和Ant优点的新式项目构建工具。通过示例展示了Gradle在使用Maven Repository、构建OSGi项目及模块化项目等方面的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前段时间在看了文章[[url=http://blog.jobbole.com/16078/]5个让人激动的Java项目[/url]]之后,决定实践一下 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 的使用。


// 其实是 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 更好的选择。

附件是整个项目。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值