前段时间在看了文章[
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 的使用。
// 其实是 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 更好的选择。
附件是整个项目。
分享到:
相关推荐
Gradle实践文档结构Gradle课程资料 有用软件 配套好书第2节 gradle快速入门第3节 开发环境搭建第4节 Gradle核心语法讲解及实战第5节 G
, 《实战Gradle》(Gradle in Action)全方位地讲解了Gradle 工具相关的知识,包括Gradle 的基本知识、自动化构建的基本概念和最佳实践,以实际案例的方式解释如何使用Gradle 进行软件项目构建。除了基础知识外,...
《实战Gradle》(Gradle in Action)全方位地讲解了Gradle 工具相关的知识,包括Gradle 的基本知识、自动化构建的基本概念和最佳实践,以实际案例的方式解释如何使用Gradle 进行软件项目构建。除了基础知识外,由于...
Gradle实践 书籍示例
gradle-7.4.2-bin.zip
gradle是一种新的版本构建工具,集合了ant、maven及ivy的优势,具有配置简单,功能丰富等特征,提供多种默认项目布局,本文档是一个方便学习的实践教程。只要能按照教程一步一步走下来,就能很好地掌握gradle这个...
(Gradle in Action)全方位地讲解了Gradle 工具相关的知识,包括Gradle 的基本知识、自动化构建的基本概念和最佳实践,以实际案例的方式解释如何使用Gradle 进行软件项目构建。除了基础知识外,由于软件开发绝对不...
Gradle 是Java 软件开发中的自动化构建工具,类似于传统工具如Ant 和Maven。Gradle 吸收或沿用了Maven 中比较成功的一些实践,但相对于Maven 或Ant 又有极强的扩展。
Gradle 是Java 软件开发中的自动化构建工具,类似于传统工具如Ant 和Maven。Gradle 吸收或沿用了Maven 中比较成功的一些实践,但相对于Maven 或Ant 又有极强的扩展。
Android 自动化打包实践 gradle打包并推送到git远程库 Android 代码混淆在AS的实践 Android webView加载网页播放优酷视频引发“请允许cookie存储”问题的解决 Android Git在bash环境和Android studio工具中的使用
你好Gradle Gradle Web App实践项目
在实践中,这意味着我的活动,对问题的响应和新版本的发布将大大减少。 我正在愿意承担该项目维护和实施工作的。 如果您有兴趣并希望看到此插件继续蓬勃发展,请向我。 该插件使用提供代码覆盖率报告的。Gradle兼容...
学习gradle-learning 语法,代码加实践内容,just test
gradle是Android开发中引入的全新的构建系统,因为全新的构建系统主要是出于下面的目的: 1. 方便复用代码和资源 2. 构建多种版本的apk更见简单,不论是为多渠道...可以使用最佳实践但并不强制 5. 良好的IDE支持 Grad
由于采用了IDEA的教程,并且MyBatis Generator不支持Gradle直接运行,因此这次是在自己的折腾项目过程中,根据一些参考资料加上自己的实践实现的选择,并附上相应的Demo才能自己未来参考,也与大家分享。 本文的Demo...
于是经过查阅资料和自己实践测试,总结出以下办法。 方法 其实主要原因是用命令下载时用的是指定的下载途径(可能不该这样形容,欢迎大家评论批评指正),国内通过这样下载十分慢,甚至时断时续,从而导致出现上面的...
这一章,笔者将以开发和发布一个Gradle插件作为目标,加深学习成果。官方文档给出了比较详细的实现步骤,本文的脉络会跟官方文档差不了太多,额外增补实际例子和一些实践经验。文中的代码已经托管到了github项目中。...
为了让学习者能够将理论知识与实践相结合,我们特别准备了项目实战与练习部分。这部分内容包含了多个精心设计的Android项目案例,从需求分析、设计思路到实现过程,都有详细的讲解和代码示例。学习者可以通过实际...