gradle:现代高效的java构建工具

相信使用JAVA的同学都用过Maven,这是一个非常经典好用的项目构建工具 。但是如果你经常使用Maven,可能会发现Maven有一些地方用的让人不太舒服:

  • 一来Maven的配置文件是XML格式的,假如你的项目依赖的包比较多,那么XML文件就会变得非常非常长;
  • 二来XML文件不太灵活,假如你需要在构建过程中添加一些自定义逻辑,搞起来非常麻烦;
  • 第三就是Maven非常的稳定,但是相对的就是对新版java支持不足,哪怕就是为了编译java11,也需要更新内置的Maven插件 。
如果你对Maven的这些缺点也有所感触,准备尝试其他的构建工具,那么你可以试试gradle,这是一个全新的java构建工具,解决了Maven的一些痛点 。
gradle:现代高效的java构建工具

文章插图
 
安装gradle最传统的安装方法就是去gradle官网下载二进制包,解压,然后将路径添加到环境变量中 。如果你没什么其他需求,可以使用这种安装方式 。但是,gradle是一个非常新潮的项目,每隔几个月就会发布一个新版本,这种方式可能跟不上gradle的更新速度 。
所以我更加推荐使用包管理器来安装gradle 。如果你使用linux系统,那么不必多说 。如果你使用windows系统,我推荐使用scoop包管理器来安装gradle 。它安装方便,而且使用SHIM目录来管理环境变量,在各种工具中配置gradle也很方便 。
当然,如果你完全不喜欢安装这么多乱七八糟的东西,那也可以使用gradle 。gradle提供了一个名为gradle wrApper的工具,可以在没有安装gradle的情况下使用gradle 。好吧,其实它就是个脚本文件,当你运行wrapper脚本的时候,如果脚本发现你电脑里没有gradle,就会自动替你下载安装一个 。现在甚至还出现了Maven wrapper,也是个脚本文件,可以自动安装Maven 。
之前相信一些朋友听说过gradle,然后尝试使用它,结果因为速度太慢,最后放弃了 。之前我也因为gradle的速度,放弃了它一段时间 。不过现在使用gradle的话会方便很多 。gradle官方在中国开设了,CDN,使用gradle wrapper的时候下载速度非常快 。可以说现在是一个学习使用gradle的好时候 。
使用gradle wrapper这里我使用的IDEA来创建和使用gradle项目 。
gradle:现代高效的java构建工具

文章插图
在IDEA中创建gradle项目
IDEA默认就会使用gradle wrapper来创建项目,所以无需安装gradle也可以正常运行 。这时候项目结构应该类似下图所示,使用Maven的同学应该比较熟悉,因为这和Maven的项目结构几乎完全一致 。gradle文件夹和gradlew那几个文件就是gradle wrapper的文件,而.gradle后缀名的文件正是gradle的配置文件,对应于Maven的pom.xml 。
gradle:现代高效的java构建工具

文章插图
gradle项目结构
gradle wrapper的优点之一就是可以自定义下载的gradle的版本,如果是团队协作的话,这个功能就非常方便,简单设置即可统一团队的构建工具版本 。这里我就设定成目前最新的gradle 6.4.默认下载安装的是bin版,仅包含二进制 。如果你使用IDEA的话,它会推荐下载all版,包含源代码,这样IDEA就可以分析源代码,提供更加精确的gradle脚本支持 。
gradle:现代高效的java构建工具

文章插图
 
依赖管理下面来看看gradle的依赖管理功能,这也算是我们使用构建工具的主要目的之一了 。这点也是gradle相较maven的优势之一了 。相较于maven一大串的XML配置,gradle的依赖项仅需一行 。
dependencies {testImplementation 'junit:junit:4.13'implementation 'com.google.code.gson:gson:2.8.6'}这里推荐一下Jetbrains的package search网站,是寻找maven和gradle依赖包的最佳网站,可以非常轻松的搜索和使用依赖项 。
gradle:现代高效的java构建工具

文章插图
package search网站
gradle依赖的粒度控制相较于Maven也更加精细,maven只有compile、provided、test、runtime四种scope,而gradle有以下几种scope: