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即可按照设定完成相应的编译,测试和打包工作了。
什么是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即可按照设定完成相应的编译,测试和打包工作了。
相关文章推荐
- 简单的javascript时钟
- NOIP提高组 20151029模拟
- lucene教程
- 优先队列(最小堆)
- SVN配置 - 钩子(Hooks)提交后自动同步
- Spring框架简单DI注入操作
- IP/TCP/UDP中Checksum的计算
- multithreading--线程不安全的案例,及其采用synchronized的解决办法
- iOS:新浪微博OAuth认证
- Matlab将图像拼接成视频
- MobileVLC with HTTP stream
- SQL常用语句
- javascript实现的简单扩大横条
- hive service的启动及关闭
- 【Qt多线程之线程的等待和唤醒】QWaitCondition
- 如果使用ImageLoder加载图片
- 单例设计模式
- C#—构造函数和析构函数
- 在equals中使用getClass进行类型判断
- Centos6.6 yum安装docker