大部分 Java 项目基本流程都是相似的:编译源文件,进行单元测试,创建 jar 包。<br>使用 Gradle 做这些工作不必为每个工程都编写代码。Gradle 已经提供了完美的插件来解决这些问题。<br>
基础使用
采用 Java 插件
<font color="#b71c1c">apply plugin: 'java'<br></font>定义一个 Java 项目只需如此而已。这将会为你添加 Java 插件及其一些内置任务。<br>
标准目录结构:<br>project <br> +build <br> +src/main/java <br> +src/main/resources <br> +src/test/java <br> +src/test/resources <br><br>Gradle 默认会从 src/main/java 搜寻打包源码,在 src/test/java 下搜寻测试源码。<br>src/main/resources 下的所有文件按都会被打包,所有 src/test/resources 下的文件 都会被添加到类路径用以执行测试。<br>所有文件都输出到 build 下,打包的文件输出到 build/libs 下。<br>
构建 Java 项目
<font color="#b71c1c">gradle build</font><br>编译并执行单元测试,并且将 src/main/* 下面 class 和资源文件打包<br>
<font color="#b71c1c">gradle clean</font><br>删除 build 目录以及所有构建完成的文件<br>
<font color="#b71c1c">gradle assemble</font><br>编译并打包 jar 文件,但不会执行单元测试。<br>
<font color="#b71c1c">gradle check</font><br>编译并测试代码<br>
外部依赖
添加 Maven 仓库
<font color="#b71c1c">repositories </font>{<br> mavenLocal()<br> mavenCentral()<br> maven { url "http://repo.mycompany.com/maven2" }<br><font color="#b71c1c">}</font><br>
添加依赖
<font color="#b71c1c">dependencies {</font><br> compile group: 'commons-collections', name: 'commons-collections', version: '3.2'<br> testCompile group: 'junit', name: 'junit', version: '4.+'<br><font color="#b71c1c">}</font>
定制项目
Java 插件为你的项目添加了众多默认配置。这些默认值通常对于一个普通项目来说已经足够了。但如果你觉得不适用修改起来也很简单。
指定坐标信息
<font color="#b71c1c">group</font> 'com.org'<br><font color="#b71c1c">version</font> '1.0-SNAPSHOT'<br>------<br>Maven的artifactId是Gradle内部的项目名称,它是从项目的目录名称派生的<br>
指定jdk版本
<font color="#b71c1c">sourceCompatibility</font> = 1.5
<font color="#b71c1c">targetCompatibility</font> = 1.8
定制 MANIFEST.MF 文件
<font color="#b71c1c">jar {</font><br> <font color="#b71c1c"> manifest {<br></font> //定制行为,这里是增加属性<br> attributes 'Implementation-Title': 'Gradle Quickstart', 'Implementation-Version': version<br> <font color="#b71c1c"> }<br>}</font><br>
测试阶段加入一个系统属性
test {<br> systemProperties 'property': 'value'<br><font color="#b71c1c">}</font>
多项目构建
定义一个多项目构建工程需要在根目录创建一个setting 配置文件来指明构建包含哪些项目。并且这个文件必需叫 settings.gradle
settings.gradle 中指明构建<br>include "shared", "api", "services:webservice", "services:shared"<br>
多项目公共配置
<font color="#b71c1c">subprojects {</font><br> apply plugin: 'java'<br> repositories {<br> mavenCentral()<br> }<br> version = '1.0'<br><font color="#b71c1c">}</font>
依赖配置
依赖等级
runtime
在运行时被生成的类使用的依赖. 默认的, 也包含了编译时的依赖.
testRuntime
运行测试所需要的依赖. 包含上面的依赖.
定义外部依赖
<font color="#b71c1c">dependencies {</font><br> <font color="#64b5f6">compile </font><font color="#4caf50">group</font>: 'org.hibernate', <font color="#4caf50">name</font>: 'hibernate-core', <font color="#4caf50">version</font>: '3.6.7.Final'<br><font color="#b71c1c">}</font>
<font color="#b71c1c">dependencies {</font><br><font color="#1976d2"> compile </font>'org.hibernate:hibernate-core:3.6.7.Final'<br><font color="#b71c1c">}</font>
打包发布
apply plugin: 'maven'<br>uploadArchives {<br> repositories {<br> mavenDeployer {<br> repository(url: "file://localhost/tmp/myRepo/")<br> }<br> }<br>}