前言
软件开发中我们肯定需要用到很多的第三方库(依赖),最原始的操作就是自己下下来,然后使用。相信很多人肯定也这么干过,有多痛苦自己知道就行了,于是就有了管理程序,来帮助你解决这一烦恼,像python使用的pip,Node.js使用的npm,它们大多只需要一条命令就行了,那java难道没有么?那肯定是不可能的,java的依赖管理工具maven最早出现于2004年,是由Apache组织开发的,但是我们今天要聊的是另外一个依赖管理程序,由于我之前接触Android用它用的比较多,所以这里就先介绍它了。
Gradle的安装
1.下载
wget https://services.gradle.org/distributions/gradle-6.0.1-all.zip
2.安装到指定目录
mkdir /opt/gradleunzip -d /opt/gradle gradle-6.0.1-all.zipls /opt/gradle/gradle-6.0.1
3.配置环境变量
export PATH=$PATH:/opt/gradle/gradle-6.0.1/bin
4.确认安装是否成功
gradle -v
简单使用
想要创建一个项目?创建一个项目文件夹,然后到其下输入gradle init,根据出现的提示进行选择好了,我这里提供一个连接数据库的例子好了,因为连接数据库肯定要下载jar包,所以拿这个作为例子挺好的。
首先第一个会让你选择项目类型,那这里选择application,然后让你选择对应的语言,我们这里当然选择java啦(如果你第一步选择了basic,那就没有让你选择语言的这一步)。第三步可能会有人会有点疑惑,选择脚本的DSL?简单来说DSL(domain-specific language)你可以理解为专门为某个特定工作而使用的语言,这里简单来说就是gradle使用的语言,选择Groovy就行了。最后会让你选择测试框架和项目名字,这个自己决定就好了。最后的项目结构如下所示:
1 | . |
下面简单来对生成的这些文件进行分析,src下面的东西想必每个学过java的都非常熟悉吧,那个App.java是系统默认生成的helloworld程序。所以src就跳过了。
build.gradle
看一下这个文件的内容:
1 | plugins { |
- 第一部分是
plugins,毫无疑问因为我们之前选择了application和java,所以下面有两个id分别对应了我们之前的选择。 - 第二部分是仓库的选择,没有特别的需求一般选择jcenter作为我们的中央仓库。
- 第三部分就是我们的依赖了,等下如果要增加数据库的依赖就需要在这里写。
- 最后一部分指定主类,应该也很好理解。
gradle-wrapper
这个文件夹下面就一个jar包和一个属性的文件,先来看下这个属性文件里面的内容:
1 | distributionBase=GRADLE_USER_HOME |
其中第三行还是挺有意思的,这不就是我这个版本的gradle的下载地址吗?主要原因是目前gradle还算是一个新的东西,然后正在飞快发展,有可能我这个项目用的是5.0版本的gradle,而你的项目用的是6.0版本的gradle,那岂不是我还需要手动去下载不同版本的gradle,这岂不是又回到了问题的原点?为了解决这个问题,gradle采取了这个方法,现在我虽然是5.0的项目,但是我的gradle读取了6.0的这个文件,然后它会自动去下载(当然会先去本机找有没有已经下好的)对应版本的gradle,就不用你担心了。
其余的四行也非常好理解,如果你配置了GRADLE_USER_HOME,gradle就会把自己的每个版本都放到其下的wrapper/dists中,但是一般默认是放到用户对应的目录的.gradle中,下面是我的windows下面的截图:

gradlew和gradlew.bat
显然gradlew.bat就是为了在windows下面使用的,所以这俩本质上是一个东西,只是为了在不同的平台上使用而已。而gradlew是一个可执行文件,试着去运行一下,结果发现它自动去下载gradle-wrapper.properties里面指定的版本的那个gradle了。所以这个程序的作用就是为你下载指定的gradle。
settings.gradle
看了一眼里面的内容,就一句话,规定了根项目的名字….就没了
所以gradle的文件内容其实还算简单,也非常好理解,是我喜欢的逻辑类型。
build一个项目
现在已经对这些文件进行了一波基础的分析,然后也有了gradle为我们自动生成的helloworld文件,那么我们就可以运行这个项目了。
输入gradle build或者找到刚刚的gradlew来运行./gradlew build(推荐后者),这样它就会帮你去下载好你需要的一切,在这个例子中是Guava和JUnit,它们会被放到~/.gradle/caches目录下面
如果你是第一次运行,那么它会先去下载
gradle并且放到~/.gradle/wrapper/dists目录里面,所以如果你觉得自动下载速度真的太慢,可以自己去下载,然后解压缩后丢进去即可。
然后它会编译你的类、运行测试并且生成测试报告,此时你会发现新增加了一个文件夹,叫build,而测试报告会放在build/reports/tests/test/index.html
Run一个项目
./gradlew tasks && ./gradlew run
一个连接数据库的demo
运行一个helloworld显然是非常简单的,现在用一个连接数据库的例子来见识一下gradle的方便之处吧。
首先编辑一下build.gradle文件,在其中添加连接数据库的依赖implementation ("mysql:mysql-connector-java:5.1.24"),然后运行./gradlew build下载好依赖。
下载完之后我们再去src下面,和之前那个输出helloworld的app.java同级的地方创建一个java文件,我这里就叫JdbcDemo.java,然后里面的内容就是简单连接一下数据库:
1 | package GradleTest; |
然后只需要去./gradlew build然后再./gradlew run即可看到查询结果了。