Gradle简明教程

2015年12月18日

Gradle简明教程

一、Gradle安装与配置

下载与安装

你可以从 Gradle网站下载任意一个已经发布的版本

解压缩

Gradle 发布的版本为 ****ZIP 格式. 所有文件包含:
	**Gradle 的二进制文件.
	**用户指南 (HTML 和 PDF).
	**DSL参考指南.
	**API文档 (Javadoc和 Groovydoc).
	**扩展的例子,包括用户指南中引用的实例,以及一些更复杂的实例来帮助用户构建自己的build.
	**二进制源码.此代码仅供参考.

设置环境变量

然后我们需要设置环境变量
1. 添加一个 **GRADLE_HOME** 环境变量来指明 Gradle 的安装路径
2. 添加 **GRADLE_HOME/bin** 到您的 *PATH* 环境变量中. 通常, 这样已经足够运行Gradle了.

运行并测试您的安装

然后我们需要测试 Gradle 是否已经正确安装.
您可以通过在控制台输入 **gradle** 命令来运行Gradle. 通过 **gradle -v** 命令来检测Gradle是否已经正确安装.
如果正确安装,会输出Gradle版本信息以及本地的配置环境  ( groovy 和 JVM 版本等). 显示的版本信息应该与您所下载的 gradle 版本信息相匹配.

二、Java项目的构建

详情请参阅Java Quickstart
提前说明:grale构建java项目时,有一些默认的项目布局:
目录 作用
src/main/java java源代码的文件目录
src/main/resources 项目所需的资源文件目录
src/test/java 测试代码的文件目录
src/test/resources 测试时所需的资源文件目录
src/main/webapp Web应用源文件目录

1、添加build.gradle文件

在项目根目录下添加build.gradle文件,例如在demo项目如下所示:
	-demo
	  -src
	    -main
		  -java
		  -resources
	    -test
		  -java
		  -resources
	  -build.gradle

2、在build.gradle中进行配置

	apply plugin: 'java' #添加java plugin,表示要构建一个java项目
	
	#添加一些配置来定义第三方库的来源
	repositories {
		mavenCentral() #maven中央库,项目所需的API会从上面下载
		#也可以自定义API的下载地址
		maven { url 'http://192.168.1.7:8081/nexus/content/groups/public' }
	}
	
	#添加项目所需要的API
	dependencies {
		compile "joda-time:joda-time:2.2" #可以从maven中央库查找
	}

3、构建

在项目根目录下运行 gradle build命令
$ gradle build
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:jar
:assemble
:compileTestJava UP-TO-DATE
:processTestResources UP-TO-DATE
:testClasses UP-TO-DATE
:test UP-TO-DATE
:check UP-TO-DATE
:build

BUILD SUCCESSFUL  #打印信息,表示构建成功。

Total time: 4.714 secs

三、其他项目的构建

1、构建Eclipse项目

详情请参阅The Eclipse Plugins
构建一般的eclipse项目,只要在build.gradle文件中添加 eclipse plugin就可以了
	apply plugin: 'java'
	apply plugin: 'eclipse'
然后在项目根目录下执行 gradle cleanEclipse elipse
#gradle cleanEclipse elipse 可以简写为gradle cE e ;其中cleanEclipse 表示 clean all Eclipse configuration file ;
$ gradle cE e
:cleanEclipseClasspath UP-TO-DATE
:cleanEclipseJdt UP-TO-DATE
:cleanEclipseProject UP-TO-DATE
:cleanEclipse UP-TO-DATE
:eclipseClasspath
:eclipseJdt
:eclipseProject
:eclipse

BUILD SUCCESSFUL

Total time: 4.061 secs

2、构建Eclipse Web项目

构建一般的eclipse项目,只要在build.gradle文件中添加 'war' 'eclipse-wtp' plugin
	apply plugin: 'java'
	apply plugin: 'eclipse-wtp'
	apply plugin: 'war'
同样的,在项目根目录下执行eclipse构建命令 gradle cleanEclipse elipse
$ gradle cE e
:cleanEclipseClasspath
:cleanEclipseJdt
:cleanEclipseProject
:cleanEclipseWtpComponent UP-TO-DATE
:cleanEclipseWtpFacet UP-TO-DATE
:cleanEclipseWtp UP-TO-DATE
:cleanEclipse
:eclipseClasspath
:eclipseJdt
:eclipseProject
:eclipseWtpComponent
:eclipseWtpFacet
:eclipseWtp
:eclipse

BUILD SUCCESSFUL

Total time: 3.915 secs

四、Gradle Wrapper的使用

Gradle Wrapper是开始一个Gradle构建的首选方式。它包含了windows批处理以及OS X和Linux的Shell脚本。这些脚本允许我们在没有安装Gradle的系统上执行Gradle构建。
要实现这个功能,我们需要在我们的build.gradle文件中增加以下代码:
task wrapper(type: Wrapper) {
    gradleVersion = '2.3'   //设定Gradle 的版本号
}

#然后在项目根目录下执行 gradle tasks 命令就可以看到wrapper task 了
$ gradle tasks
:tasks
------------------------------------------------------------
Other tasks
-----------
wrapper

To see all tasks and more detail, run with --all.

BUILD SUCCESSFUL
在项目根目录下执行执行 gradle wrapper 来下载和初始化wrapper脚本:
$ gradle wrapper
:wrapper

BUILD SUCCESSFUL

Total time: 2.085 secs
#命令执行完后,我们可以看到增加了一些新文件:
└── 根目录
    └── gradlew
    └── gradlew.bat
    └── gradle
        └── wrapper
            └── gradle-wrapper.jar
            └── gradle-wrapper.properties
现在Gradle Wrapper已经可以用来构建系统了,在项目根目录下执行如下构建命令:
#和我们使用 gradle 构建时的命令相同, 使用 ./gradlew 替换 gradle 即可;
$ ./gradlew --version

------------------------------------------------------------
Gradle 2.3
------------------------------------------------------------

Build time:   2015-02-16 05:09:33 UTC
Build number: none
Revision:     586be72bf6e3df1ee7676d1f2a3afd9157341274

Groovy:       2.3.9
Ant:          Apache Ant(TM) version 1.9.3 compiled on December 23 2013
JVM:          1.7.0_80 (Oracle Corporation 24.80-b11)
OS:           Linux 4.2.3-200.fc22.x86_64 amd64

#使用 ./gradlew build 构建项目
$ ./gradlew build

........

BUILD SUCCESSFUL

参考文档

1.使用Gradle构建Java项目
2.Gradle User Guide
3.Gradle User Guide 中文版