概述
第一次遇见Gradle是在三年前,印象最深的一句话是“Gradle:下一代构建工具”,我就深深地知道Gradle是属于我的菜。直到两年前我转到Java阵营,我开始默默关注Gradle但并不急着去使用。因为团队使用的构建工具是Maven,而且Gradle太年轻不够沉稳。
直到发现谷歌使用Gradle构建Andriod项目、Hibernate和Junit5也开始使用Gradle构建,连Spring也投入了Gradle的怀抱,我意识到Gradle经历了各种历练,已经成年了,与其一起燃烧青春年华的时机已经到来。
gradle
<small>这让我想起了一首歌的歌词</small>
<small>只因为在人群中多看了你一眼
再也没能忘掉你的容颜
梦想着偶然能有一天再相见
从此我开始孤单地思念
......</small>
特性
Gradle号称下一代自动化构建工具,不仅能够自动化构建、打包、测试、发布、部署等,还能方便生成各种文档,具有许多实用的功能和优异的特性。它具有像Ant一样的任务(task),又具有Maven一样的约定,但又基于丰富可扩展的DSL(Domain Specific Language)使其灵活。
基于Apache Ivy强大的依赖管理,有完全兼容Maven和Ivy仓库,同时也提供了本地Jar和文件夹的依赖管理。
Gradle支持一键式转换Maven项目,只要一个小小的命令即可把Maven项目转换成Gradle项目。Gradle Wrapper使得你不用安装配置也可以实用Gradle,这能更好地支持持续集成。Gradle的守护进程(daemon)机制大大提高构建的速度。
Ant已经被历史场合所淹没,而先下Java界最红的构建工具非Maven莫属,然后Gradle官方却给出了Gradle vs Maven,可以大致了解下。
Groovy
为什么选择Groovy语言作为Gradle的构建脚本呢?
这也是许多Java开发者对Gradle所诟病之一,也是给许多Maven使用者造成心理恐惧而不愿意迁移到Gradle的原因之一。
其实Gradle支持JRuby和Jython来构建脚本的,但他们是第二选择,Gradle还是把Groovy作为第一选择,这是因为Groovy的基础语法和数据类型都跟普通的Java相似,这就给Java开发者提供了相对透明和最小的学习曲线。不选择Java作为构建脚本是因为它的一些限制不能发挥脚本的强大威力。
我的选择
由于我是半路转到Java领域,因此对Maven的了解并不是特别深入,而且厌倦了xml格式的繁琐,正值下一个自动化构建工具Gradle的逐步走上成熟,何不当机立断跟上潮流,而且现在多花些时间来深入学习,既可以获得一个得心应手的工具,又可免除3-5年后再次切换工具的后顾之忧。
如果你已经熟练掌握了Maven,建议你也可以简单了解下Gradle,以备不时之需。但如果你和我一样,目前对Maven一知半解,何不深入学习下Gradle呢?
未完....
更多原创文章可关注我的个人博客:宅前疯 或微信公众账号:zhaiqianfeng
网友评论