Gradle的基本使用(三)
Gradle的设计理念是,所有有用的特性都由Gradle插件提供,例如编写一个Java项目时,需要使用到 Java 插件, 它会将许多任务自动的加入到你项目里。Gradle本身提供了一系列的标准插件,无需多余配置只需要在你的build.gradle文件中加入 apply plugin: 'java'
Gradle插件
这样就可以引入许多task,只需要使用相应的task命令就可以进行项目构建。例如下列一些task:
- gradle build:编译整个项目,它会执行代码编译、代码检测和单元测试等
- gradle assemble:编译并打包你的代码, 但是并不运行代码检测和单元测试
- gradle clean:删除 build 生成的目录和所有生成的文件
- gradle check:编译并测试你的代码。其它的插件会加入更多的检查步骤,如使用 checkstyle、pmd、findbugs
Gradle各个task的关系图:
从上图可以看出,我们通常在执行一个build命令时其实是将一些零散的命令批量执行了,我们也可以根据自己的需求执行其中某一个命令。
外部依赖
通常, 一个 Java 项目将有许多外部的依赖, 既指向外部的 JAR 文件. 为了在项目里引用这些 JAR 文件, 你需要告诉 Gradle 去哪里找它们. 在 Gradle 中, JAR 文件位于一个仓库中,这里的仓库类似于 maven 的仓库。
首先,指定maven的仓库地址:
mavenCentral()
是Gradle内置的一个maven仓库地址,加入maven仓库后,就可以直接加入maven仓库中的外部依赖,如果这个外部依赖不存在,gradle会联网去maven仓库中自动下载它,并将它缓存到本地,下次再使用时会优先从本地缓存中查找该依赖。
引用一个外部依赖需要指定使用的group, name 和 version 属性,三者缺一不可。那从哪里得知JAR包的这三个属性呢?我们可以从mvnrepository中搜索到。
本地依赖
Gradle也可以从本地目录中引入JAR包依赖,可以单一引入指定的某一JAR包,也可以引入某目录下所有的JAR包
项目依赖
往往一个完整的项目由多个子项目构成。在Gradle中,使用文件settings.gradle定义当前项目的子项目。默认情况下,每个子项目的名称对应着当前操作系统目录下的一个子目录。
如sub-project1依赖sub-project2,则在sub-project1的build.gradle中加入以下配置即可:
依赖关系管理
从宏观上说,依赖关系管理分为两个方面。首先,gradle需要知道你要构建或者运行的项目,以便找到它们。我们将这些导入的文件视为项目的依赖。第二,gradle需要构建或者打包你的项目产品。我们将这些导出的文件视为项目的发布。
例如在编译源码时项目需要Hibernate的某些jar包被加入到工程中,而在进行单元测试时还另需要Junit的某些jar被加入。这些被引入的jar包就是项目的依赖。Gradle允许对依赖进行相应的配置,通过不同的配置可以形成不同的依赖效果。例如:
|
|
在项目编译时期,junit的jar包不会被引入,只有在单元测试时才会被引入。这样,就可以在不同的场景下加入相应的依赖关系,非常的灵活
Java 插件中定义了许多标准的配置,例如如下:
原创不易,欢迎转载,但还请注明出处:waynell.github.io