Gradle之恋(1)-一见倾心

概述

第一次遇见Gradle是在三年前,给我印象最深的一句话是“Gradle:下一代构建工具”,我就暗地里深深地告诉自己:Gradle,我的菜。直到两年前我转到Java阵营,我才开始默默关注Gradle但并不急着去使用。因为团队使用的构建工具是Maven,而且Gradle太年轻不够沉稳。

直到发现谷歌使用Gradle构建Andriod项目、Hibernate和Junit5也开始使用Gradle构建,连Spring也投入了Gradle的怀抱,我意识到在Gradle经历了各种历练之后,已经成年了,与其一起燃烧青春年华的时机已经到来。
Gradle

这让我想起了一首歌的歌词

只因为在人群中多看了你一眼
再也没能忘掉你的容颜
梦想着偶然能有一天再相见
从此我开始孤单地思念
……

特性

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呢?

翟前锋 wechat
欢迎订阅我的微信公众号:zhaiqianfeng!