您的位置:首页 > 其它

Gradle理解

2015-10-29 20:40 316 查看
http://cloudbbs.org/forum.php?mod=viewthread&tid=14451

什么是Gradle

Gradle是一个类似Maven和Ant的构建系统,使用Groovy编写构建脚本,能很方便的进行依赖管理和多项目的构建。Gradle集Ant的灵活与强大以及Maven的依赖管理功能和惯例于一身,是一种更高效的构建工具。

与Maven和Ant等基于XML的构建工具相比,Gradle由于使用基于Groovy语言的DSL语法编写构建脚本,使得脚本清晰易懂,同时也变得更加便于维护(如果熟悉Groovy语言的话)。

Gradle示例

下面以一个简单的Java项目为例,演示在Intellij IDEA下Gradle的用法。首先创建一个build.gradle文件,通过gradle来生成IDEA的项目文件,build.gradle内容如下:

Java代码

apply plugin: 'idea'

apply plugin: 'java'

这就创建了一个初始的Gradle构建文件。该文件表明项目使用java插件,java插件会自动引入一些task,来完成java相关常用的操作,如编译,测试,打包等。例外,因为这个示例程序会使用Intellij IDEA作为开发工具,故引入了idea插件,idea插件引入了一个task为idea, 执行该task将创建我们的IDEA工程文件:

Java代码

gradle idea

打开工程文件后,我们就有了一个空白java项目。下面我们来创建项目的目录结构。按照gradle的惯例,项目代码应位于src/main/java下。测试代码应位于src/test/java下。创建完毕后的项目的目录结构如下:



下面我们添加一个Calculator以及相应的测试代码,Calculator代码如下:

Java代码

package org.dytes.github.gradle;

public class Calculator
{

public Integer add(int a, int b)
{

return a + b;

}

}

CalculatorTest类内容如下:

Java代码

package org.dytes.github.gradle;

import org.junit.Assert;

import org.junit.Test;

import static org.hamcrest.core.Is.is;

public class CalculatorTest
{

@Test

public void add_should_return_sum()
{

Calculator c = new Calculator();

int ret = c.add(1, 2);

Assert.assertThat(ret, is(3));

}

}

Main类内容如下:

Java代码

package org.dytes.github.gradle;

public class Main
{

public static void main(String[]
args) {

Calculator c = new Calculator();

System.out.println("1 + 2 =" + c.add(1, 2));

}

}

完成之后,项目的目录结构如下:



针对此项目,我们可以编写build文件如下,来完成编译,测试以及打包的工作:

Java代码

apply plugin: 'idea'

apply plugin: 'java'

repositories {

mavenCentral()

}

dependencies {

testCompile(

'junit:junit:4.11',

"org.hamcrest:hamcrest-core:1.3"

)

}

task createJar(type: org.gradle.api.tasks.bundling.Jar, dependsOn:["test"]) {

version = 0.1

archiveName = "GradleDemo-${version}.jar"

manifest{

attributes("Main-Class": "org.dytes.github.gradle.Main")

}

from(sourceSets.main.output.classesDir)

}

在上述build脚本中,repositories指定了测试代码编译所依赖的包可以从maven central repository获取。dependencies指定了测试代码在编译时所依赖的包。另外,该build文件中,创建了一个打jar包的task,设置当前版本为0.1,将编译的class文件打包至GradleDemo-0.1.jar,按照惯例该task将项目内容打包至build/libs目录下。

通过运行 gradle tasks可以查看当前构建脚本内所有的task列表。执行gradle createJar即可按照设定完成相应的编译,测试和打包工作了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: