码迷,mamicode.com
首页 > 其他好文 > 详细

gradle版本构建基础

时间:2015-04-01 17:22:37      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:

构建脚本的基础知识:

Gradle里的任何东西都是基于这两个基础概念:projects,tasks

1:gradle命令会在当前目录中查找一个叫build.gradle的文件.我们称这个build.gradle文件为一个构建脚本。这个脚本定义了一个project和它的tasks。

1 task hello{
2   doLast{
3           println Hello world!
4         }
5 }

 gradle -q  hello的输出:Hello world!  这个构建脚本定义了一个独立的task,叫做hello,并且加入了一个action.当你运行gradlehello,Gradle执行叫做hello的task,也就是执行了你所提供的action.这个action是一个包含了一些Groovy代码的闭包。

-q是干什么的?
-q.代表quite模式.它不会生成Gradle的日志信息(logmessages),所以用户只能看到tasks的输出.它使得的输出更加清晰.你并不一定需要加入这个选项.

有一种比我们之前定义的hello任务更简明的方法:

1 task hello <<{
2         println Helloworld!
3 }

 

它定义了一个叫做hello 的任务, 这个任务是一个可以执行的闭包. 我们将使用这种方式来定义这本指南里所有的任务.

 

构建脚本代码:

在Gradle任务里使用Groovy

1 task upper << {
2    String someString = luochuang
3    println "Original: " + someString;
4    println "Upper case:" + someString.toUpperCase();
5 }

 

Original: luochuang
Upper case:LUOCHUANG

 

 

任务依赖:

就像你所猜想的那样,你可以声明任务之间的依赖关系.

1 task hello << {
2    println Hello World!
3 }
4 
5 task intro(dependsOn: hello) << {
6   println "i am gradle"
7 }

 

Hello World!
i am gradle

动态任务:

1 4.times {counter ->
2    task "task$counter" << {
3    printf "I‘m task number $counter"
4  }
5 }

 

这里动态的创建了task0,task1,task2,task3

 

使用已经存在的任务:

当任务创建之后,它可以通过API来访问.这个和Ant不一样.举个例子,你可以创建额外的依赖.

1 4.times {counter ->
2    task "task$counter" << {
3    println "I‘m task number $counter"
4  }
5 }
6 task0.dependsOn task2, task3

 

 1 task hello << {
 2    println hello world
 3 }
 4 
 5 hello.doFirst{
 6    printlnhello venus
 7 }
 8 
 9 hello.doLast{
10    println hello mars
11 }
12 
13 hello << {
14   println hello jupiter
15 }

 

hello venus
hello world
hello mars
hello jupiter

doFirst和doLast可以被执行许多次.他们分别可以在任务动作列表的开始和结束加入动作.当任务执行的时候,在动作列表里的动作将被按顺序执行.这里第四个行为中<<操作符是doLast的简单别称.

短标记法:

正如同你已经在之前的示例里看到,有一个短标记$可以访问一个存在的任务.也就是说每个任务都可以作为构建脚本的属性:

1 task hello << {
2   println(hello world!)
3 }
4 
5 hello.doLast{
6    printlnGreeting from the $hello.name task.
7 }

这里的name是任务的默认属性,代表当前任务的名称,这里是hello.这使得代码易于读取,特别是当使用了由插件(如编译)提供的任务时尤其如此.

自定义任务属性

gradle允许在的脚本中定义一个或者是多个默认的任务:

 1 defaultTasks clean,run
 2 
 3 task clean << {
 4   println Default Cleaning!
 5 }
 6 
 7 task run << {
 8   println Default Running!
 9 }
10 
11 task other << {
12   println "i‘m not a default task!"
13 }

 

Default Cleaning!
Default Running!

等价于gradle clean run.在一个多项目构建中,每一个子项目都可以有它特别的默认任务.如果一个子项目没有特别的默认任务,父项目的默认任务将会被执行.

gradle版本构建基础

标签:

原文地址:http://www.cnblogs.com/luochuanghero/p/4383939.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!