Gradle使用文档.docx

上传人:b****8 文档编号:9493010 上传时间:2023-02-04 格式:DOCX 页数:14 大小:208.77KB
下载 相关 举报
Gradle使用文档.docx_第1页
第1页 / 共14页
Gradle使用文档.docx_第2页
第2页 / 共14页
Gradle使用文档.docx_第3页
第3页 / 共14页
Gradle使用文档.docx_第4页
第4页 / 共14页
Gradle使用文档.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

Gradle使用文档.docx

《Gradle使用文档.docx》由会员分享,可在线阅读,更多相关《Gradle使用文档.docx(14页珍藏版)》请在冰豆网上搜索。

Gradle使用文档.docx

Gradle使用文档

gradle使用文档

 

 

2014年7月

 

1基本介绍

1.1前言

gradle是一个基于ApacheAnt和ApacheMaven概念的项目自动化建构工具。

它使用一种基于Groovy的特定领域语言来声明项目设置,而不是传统的XML。

gradle能够完成构建、测试、发布和其他诸如软件打包、生成注释文档等等功能。

其特点包括:

●使用简单

●支持多方式依赖管理

●与ant、maven和ivy有良好的相容,支持轻松地从其他构建方式迁移到gradle上

●支持局部构建

●支持多工程的构建

●免费开源

2安装和使用

2.1下载

gradle的官方网站地址为:

http:

//www.gradle.org。

官方网站上面可以下载到各种版本,以及文档、和论坛等。

目前gradle的最新版本为2.0.

我们下载gradle的最新版本,下载官网上的gradle-2.0-all.zip。

2.2安装

gradle的安装方法很简单,将解压后的gradle的bin目录加到path目录即可。

如下图所示:

其中,gradle_home目录为我们解压gradle下载包的目录。

为了验证我们的gradle是否安装成功。

我们可以执行命令gradle–v加以验证。

如下图所示:

3开始一个例子

3.1新建一个空的javaproject工程

通过eclipse向导新建一个JavaProject工程。

工程如下:

3.2编写HelloWorld类和build.gradle,代码如下

新建一个com.sina.landp的package,然后在其下面新建一个HelloWorld类,代码如下:

packagecom.sina.landp;

publicclassHelloWorld{

publicstaticvoidmain(String[]args){

System.out.println("Helloworld!

");

}

}

以上是一个java入门级的类。

再编写build.gradle在我们的工程目录下(如上图所示)。

代码如下:

applyplugin:

'java'

3.3开始构建

在工程所在的目录下,打开cmd,运行gradlebuild命令,并执行。

执行结果如下:

3.4整理成果

通过上面的执行日志,我们可以看到,我们的工程大致经过了编译、运行测试案例、构建这几个大过程。

同时,我们在工程的目录下,发现新生成了一个build的目录,目录内容如下:

根据目录名称,我们也能大概猜到里边存放的内容。

特别地,我们可以在libs目录下,找到demo-gradle.jar。

在reports目录下存放了一个html,我们用浏览器打开后,其内容如下:

正如其标题所示,该页面反映了我们的单元测试案例结果。

OK,正如你看到的一样,gradle构建就这么简单。

我们这里仅用了一行代码,就完成了一个java工程的基本构建。

4gradle基本概念介绍

gradle构建过程,逻辑上都基于两个基本的概念,projects和tasks。

4.1projects

一个Project应该指出最终要生成的内容,例如要生成一个Jar、要构建出一个war等等。

为了实现最终的目的,我们要通过一个或多个任务来完成。

任务即tasks。

4.2tasks

一个task可以理解为构建的一个步骤,例如编译java文件为class。

Task是原子操作。

Task和ant非常相像。

5常用的task介绍

我们现在尝试一些常用的task,并运行起来看看结果。

5.1编写自己的简单task

刚开始,我们还是来一个helloworld。

在我们自己的电脑的文件目录上,新建一个build.gradle的文件,文件内容为:

taskhello{println'HelloWorld'}

此时通过cmd到该文件所在的目录下,此时在cmd上执行命令:

gradlehello

我们可以得到以下结果:

很显然,我们的任务已经被正确调用并执行。

另外,gradle的task也支持这种写法:

taskhello<<{println'HelloWorld'}

执行结果和上面一样的。

5.2增加task的任务依赖

修改build.gradle,内容改为:

taskhello<<{println'HelloWorld'}

taskintro(dependsOn:

hello)<<{println'introrunsafterhello'}

运行gradleintro命令,得到执行结果如下:

5.3使用task自带的api

Task自带了一些api接口,我们可以申明这些接口要执行的内容,从而插入我们要额外执行的内容。

修改build.gradle文件内容如下:

taskhello<<{

println'HelloEarth'}

hello.doFirst{

println'HelloVenus'}

hello.doLast{

println'HelloMars'}

hello<<{

println'HelloJupiter'}

运行命令,得到以下执行结果:

注意doFirst中的内容首先被执行。

5.4构建java工程

通过以上几个简单例子,我们对task已经有些认识了。

我们现在来看看把这些任务综合起来完成项目的构建。

也许,我们还记得,在第三章的例子中,我们仅用了一行代码,即完成了对整个java工程的构建。

代码为:

applyplugin:

'java'

从其执行的日志,我们可以看到,其实,该行命令带来的结果是,gradle将一套完整的java构建工程的task全引入到了我们的构建过程中。

重点是,这些引入都是正确的。

我们之前有说到,project就是多个task一起组合起来完成构建任务,并生成我们想要的内容。

既然gradle帮我们已经引入了很多的task,那就意味着,我们只需要再添加一些我们需要的task,就可以完成我们自己的项目的构建过程。

确实是这样的。

5.4.1添加依赖包

接下来,我们做一点更有意义和难度的事情。

我们项目里要用到spring,现在需要搭建一个简单的spring工程。

那么,第一件事,我们需要做的,就是把spring的jar下载下来。

Ok,修改demo-gradle工程的build.gradle文件内容为:

applyplugin:

'java'

repositories{

mavenCentral()

}

dependencies{

compile'org.springframework:

spring-context:

4.0.5.RELEASE'

}

同样地,在build.gradle所在目录下,执行gradlebuild命令。

可以说是奇迹发生了吧,得到执行结果如下:

工程不但构建完成,还下载了我们需要的spring的jar包。

此时,如果回到eclipse中,发现下载的jar并没有被引入到工程中。

再在build.gradle中第二行添加一行:

applyplugin:

'eclipse'

之后,执行命令gradleeclipse,得到以下结果:

回到eclipse中,刷新工程,可以看到我们的jar已经被工程引用了。

5.4.2修改java编译细节

最常见的,就是我们要指定编译生成的jar基于jdk的版本。

修改build.gradle内容为:

applyplugin:

'java'

applyplugin:

'eclipse'

sourceCompatibility=1.6

targetCompatibility=1.6

repositories{

mavenCentral()

}

dependencies{

compile'org.springframework:

spring-context:

4.0.5.RELEASE'

}

以上两个属性的作用分别如下:

sourceCompatibility,指定编译java源代码的jdk版本;

targetCompatibility,指定生成的class文件的jdk版本。

添加后执行gradlebuild命令,也会是成功的。

另外,以上两个属性,也是compleJava的属性。

也可以写成:

compileJava{

sourceCompatibility=1.6

targetCompatibility=1.6

}

5.4.3指定manifest文件及细节

在build.gradle中添加以下内容:

jar{

manifest{

attributes'Implementation-Title':

'demogradleQuickstart','Implementation-Version':

1.0

}

}

执行完gradlebuild命令后,打开demo-gradle.jar中的manifest文件,其内容如下所示:

5.4.4执行单元测试

在工程中添加一个单元测试案例。

如图所示:

HelloWorld.java文件内容调整为:

packagecom.sina.landp;

publicclassHelloWorld{

publicstaticvoidmain(String[]args){

System.out.println("Helloworld!

");

}

publicStringsayHello(Stringname){

return"Hello"+name;

}

}

HelloWorldTest.java文件内容如下:

packagecom.sina.landp;

importstaticorg.junit.Assert.assertEquals;

importorg.junit.Before;

importorg.junit.Test;

publicclassHelloWorldTest{

privateHelloWorldhelloWorld;

@Before

publicvoidsetUp(){

helloWorld=newHelloWorld();

}

@Test

publicvoidshould_OK_when_call_sayHello_given_a_name(){

Stringname="Andy";

Stringresp=helloWorld.sayHello(name);

Stringexpected="HelloAndy";

assertEquals(expected,resp);

}

}

当然,在我们新建”junitTestCase”时,eclipse就会要求我们添加junit的依赖包。

此时,我们的HelloWorldTest可以正常运行。

为了使得gradle能正常运行,我们需要修改build.gradle文件内容如下:

dependencies{

compile'org.springframework:

spring-context:

4.0.5.RELEASE'

testCompile"junit:

junit:

4.11"

}

运行gradlebuild命令,可以看到成功执行。

5.5构建web工程

修改build.gradle文件,添加内容:

applyplugin:

"war"

我们可以通过jetty快速地运行起来我们的工程。

对jetty的配置,我们可以指定jetty服务端口号。

jettyRun{

httpPort=9898

}

另外,和jar类似,可以对war这个task做一些配置。

例如,指定哪些jar不用包含在war里边。

对应的配置如下:

war{

baseName='depblog'

rootSpec.exclude("**/xxx.jar")

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1