gradle使用文档

1     基本介绍

1.1 前言

gradle是一个基于Apache AntApache Maven概念的项目自动化建构工具。它使用一种基于Groovy特定领域语言来声明项目设置,而不是传统的XML

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

其特点包括:

l  使用简单

l  支持多方式依赖管理

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

l  支持局部构建

l  支持多工程的构建

l  免费开源

 

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 新建一个空的java project工程

通过eclipse向导新建一个Java Project工程。工程如下:

 

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

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

package com.sina.landp;

 

public class HelloWorld {

 

   public static void main(String[] args) {

      System.out.println("Hello world!");

   }

}

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

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

apply plugin: 'java'

3.3 开始构建

在工程所在的目录下,打开cmd,运行gradle build命令,并执行。执行结果如下:

 

3.4 整理成果

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

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

 

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

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

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

 

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

OK,正如你看到的一样,gradle构建就这么简单。我们这里仅用了一行代码,就完成了一个java工程的基本构建。

4     gradle基本概念介绍

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

4.1 projects

一个Project应该指出最终要生成的内容,例如要生成一个Jar、要构建出一个war等等。为了实现最终的目的,我们要通过一个或多个任务来完成。任务即tasks。

4.2 tasks

一个task可以理解为构建的一个步骤,例如编译java文件为class。Task是原子操作。Task和ant非常相像。

5     常用的task介绍

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

5.1 编写自己的简单task

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

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

task hello{println 'Hello World'}

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

gradle hello

我们可以得到以下结果:

 

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

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

task hello << {println 'Hello World'}

执行结果和上面一样的。

5.2 增加task的任务依赖

修改build.gradle,内容改为:

task hello << {println 'Hello World'}

task intro (dependsOn: hello) <<{println 'intro runs after hello'}

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

 

5.3 使用task自带的api

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

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

task hello << {

    println 'Hello Earth' }

hello.doFirst {

    println 'Hello Venus' }

hello.doLast {

    println 'Hello Mars' }

hello << {

    println 'Hello Jupiter' }

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

 

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

5.4 构建java工程

通过以上几个简单例子,我们对task已经有些认识了。我们现在来看看把这些任务综合起来完成项目的构建。

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

apply plugin: 'java'

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

我们之前有说到,project就是多个task一起组合起来完成构建任务,并生成我们想要的内容。既然gradle帮我们已经引入了很多的task,那就意味着,我们只需要再添加一些我们需要的task,就可以完成我们自己的项目的构建过程。

确实是这样的。

5.4.1 添加依赖包

接下来,我们做一点更有意义和难度的事情。我们项目里要用到spring,现在需要搭建一个简单的spring工程。那么,第一件事,我们需要做的,就是把spring的jar下载下来。

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

apply plugin:'java'

 

repositories {

   mavenCentral()

}

 

dependencies {

    compile'org.springframework:spring-context:4.0.5.RELEASE'

}

同样地,在build.gradle所在目录下,执行gradlebuild命令。可以说是奇迹发生了吧,得到执行结果如下:

 

工程不但构建完成,还下载了我们需要的spring的jar包。此时,如果回到eclipse中,发现下载的jar并没有被引入到工程中。

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

apply plugin: 'eclipse'

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

 

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

5.4.2 修改java编译细节

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

修改build.gradle内容为:

apply plugin: 'java'

apply plugin: '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版本。

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

另外,以上两个属性,也是compleJava的属性。也可以写成:

compileJava {

   sourceCompatibility = 1.6

   targetCompatibility = 1.6

}

5.4.3 指定manifest文件及细节

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

jar {

   manifest {

               attributes 'Implementation-Title':'demo gradle Quickstart', 'Implementation-Version': 1.0

    }

}

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

 

5.4.4 执行单元测试

在工程中添加一个单元测试案例。如图所示:

 

HelloWorld.java文件内容调整为:

package com.sina.landp;

 

public class HelloWorld {

 

      publicstatic void main(String[] args) {

             System.out.println("Helloworld!");

      }

     

      publicString sayHello(String name){

             return"Hello " + name;

      }

}

HelloWorldTest.java文件内容如下:

package com.sina.landp;

 

import staticorg.junit.Assert.assertEquals;

 

import org.junit.Before;

import org.junit.Test;

 

public class HelloWorldTest {

      privateHelloWorld helloWorld;

     

      @Before

      publicvoid setUp(){

             helloWorld= new HelloWorld();

      }

 

      @Test

      publicvoid should_OK_when_call_sayHello_given_a_name() {

             Stringname = "Andy";

             Stringresp = helloWorld.sayHello(name);

            

             Stringexpected = "Hello Andy";

             assertEquals(expected,resp);

      }

 

}

当然,在我们新建”junit Test Case”时,eclipse就会要求我们添加junit的依赖包。此时,我们的HelloWorldTest可以正常运行。

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

 dependencies{

   compile 'org.springframework:spring-context:4.0.5.RELEASE'

   

   testCompile "junit:junit:4.11"

}

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

5.5 构建web工程

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

apply plugin: "war"

我们可以通过jetty快速地运行起来我们的工程。对jetty的配置,我们可以指定jetty服务端口号。

jettyRun {

   httpPort = 9898

}

另外,和jar类似,可以对war这个task做一些配置。例如,指定哪些jar不用包含在war里边。对应的配置如下:

war {

   baseName = 'depblog'

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

}

最后,我们可以通过gradle jettyRun来运行我们的web项目。

时间: 2024-10-02 19:10:29

gradle使用文档的相关文章

《Spring Boot官方指南》(一)Spring Boot 文档

Spring Boot文档 本章将对Spring Boot的文档接口做一个简短的描述,它可以成为你阅读本书的一个向导,如果确实不感兴趣,您也可以跳过. 1.关于本文档 Spring Boot文档有html,pdf和epub格式,您可以在这里下载到最新本地的文档.您可以免费下载并分享本文档,不需要任何声明和授权. 2.获取帮助 如果您在使用Spring Boot的过程中遇到任何问题,我们非常乐意为为您提供帮助! 试试这个链接,这里总结大部分人使用Spring Boot的过程中遇到的问题,没准有你需

Android官方入门文档[1]创建一个Android项目

Android官方入门文档[1]创建一个Android项目   创建一个Android项目   这节课教你1.创建与Android Studio中的一个项目2.创建使用命令行工具项目 你也应该阅读•管理项目 Creating an Android Project This lesson teaches you to1.Create a Project with Android Studio2.Create a Project with Command Line Tools You should

RxVolley使用文档 —— RxVolley = Volley + RxJava + OkHttp

RxVolley使用文档 -- RxVolley = Volley + RxJava + OkHttp 偶然有幸,看到这个框架,便深深的爱上了这个框架,赶紧转载一发到自己的博客上温故而知新,而且作者一开头,就来了这么一句: Retrofit? No, I like Volley. 看到这句,我嘴角勾起了一抹微笑,嘿嘿,我也很喜欢Volley呀,而网上二次封装的Volley库,感觉不是那么的尽人意,而自己封装的,也只够自己在项目中使用罢了!我们先来看下他的Github地址: Github:http

PHP遍历XML文档所有节点的方法

 这篇文章主要介绍了PHP遍历XML文档所有节点的方法,实例分析了php操作XML文件的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了PHP遍历XML文档所有节点的方法.分享给大家供大家参考.具体实现方法如下: 1. contact.xml代码: ? 1 2 3 4 5 6 7 8 9 10 11 12 <contact id="43956"> <personal> <name> <first>J</fir

win7系统电脑打印文档后出现隐藏的网站链接怎么去掉?

  win7系统电脑打印文档后出现隐藏的网站链接怎么去掉?         方法一: 1.按ALT+F9可将文档中的域代码全部显示出来(特有字会被链接替换); 2.然后编辑--替换,在查找内容中输入除{ }符号的其它字符(如果将符号{}一并拷贝过来的话会自动换为特有字),在"替换为"中输入特有字,"全部替换"即可. 方法二: 1.工具--选项,在"打印"选项卡中找到"打印文档的附加信息",取消勾选"域代码"

word文档-如何在360浏览器中直接 打开word文件 ?

问题描述 如何在360浏览器中直接 打开word文件 ? 在IE浏览器中可以.碰到WORD文档,自动就下载了!为什么? 解决方案 需要有浏览器插件,IE一般有OFFICE插件,所以可以直接打开 解决方案二: 因为360是非法流氓软件,它根本就是粗陋地用IE的内核拼凑了一个山寨的浏览器,做一个稍微有点用的软件功能只是它实施违法犯罪侵害用户计算机和数据的幌子而已. 解决方案三: 这个好像需要转换吧.吧word转成pdf格式的然后在线显示!

让你的WPS office文档美丽动人

文档有就像我们人类一样也需要梳妆打扮.一篇好的文档,不但要内容精彩.感人,同时也要具有华丽的外表,才能算是完美.因为我们打开文档时,首先映入我们眼帘的是文档的页面布局,其实才是文档的内容,所以,如果文档的页面设置合理,那么在一定程度上也能为文档锦上添花,使之更加"美丽动人". 那究竟怎样才能让我们的文档"美丽动人"呢?除去格式设置及文档背景外,页眉的设置也是一个也是相当重要的,通过页眉我们可以完成一些其它设置所无法完成的操作.比如说我们需要制作一个文档,而要求在页面

win7电脑上"我最近的文档"显示为空的原因

电脑总是会记录我们平常操作电脑打开的一些文档.一般来说我们浏览过的文档历史记录会在我最近的文档列表中看到,不过有时也会遇到最近的文档的列表显示为空,最近的文档浏览的历史记录都不存在了,那该怎么解决呢? 方法一: 1.在运行对话框中输入"regedit"打开注册表,然后依次展开定位到"HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer"项; 2.接着在窗口右侧中找到"

Win7环境下Excel文档乱码如何修护

  Win7环境下Excel文档损坏修复策略. 损坏的Excel文档 借用WPS软件打开Excel文档依然是不行 Excel文档乱码 一.自动修缮: Excel乱码修复工具 下载 ExcelFIX(Excel损坏修复) 下载 自动修复法: 此法适用于Excel XP程序运行出现故障关闭程序或断电导致的文件受损.重新运行Excel XP,它会自动弹出"文档恢复"窗口,并在该窗口中列出已自动恢复的所有文件.用鼠标选择要保留的文件,并单击指定文件名旁的箭头,根据需要选择"打开&qu