Gradle学习笔记(二)

来源:互联网 发布:中医理疗器材淘宝网 编辑:程序博客网 时间:2024/06/05 02:47

示例一:tutorial\excludeTasks

代码:

task compile << {    println 'compiling source'}task compileTest(dependsOn: compile) << {    println 'compiling unit tests'}task test(dependsOn: [compile, compileTest]) << {    println 'running unit tests'}task dist(dependsOn: [compile, test]) << {    println 'building the distribution'}

看着这几个任务,是不是有点晕?我是这感觉!上述代码其实是人物之间有一个相互依赖的关系,一个任务可以依赖一个task,也可以依赖多个。task依赖的语法可以看做这样:

 task NameA(dependsOn:NameB)//单任务依赖 task NameD(dependsOn:[NameA,NameB,NameC]) //多任务依赖

如何看这个任务的任务结构呢?执行命令

gradle tasks  --all

看结果:

tasks - Displays the tasks runnable from root project 'excludeTasks'.Other tasks-----------dist    compile    compileTest    testBUILD SUCCESSFULTotal time: 3.838 secs

示例二:tutorial\defaultTasks

代码:

defaultTasks 'clean', 'run'task clean << {    println 'Default Cleaning!'}task run << {    println 'Default Running!'}task other << {    println "I'm not a default task!"}

由于在文件开头,使用了属性defaultTasks,指定了默认的任务,所以在执行时,可以这么执行

gradle

不需要指定特定的任务,即可运行默认的任务,默认是按默认任务的列表顺序执行的。defaultTasks是Project的属性,可以从api里找到file:///D:/Java/Gradle/gradle-2.8/docs/dsl/org.gradle.api.Project.html#org.gradle.api.Project:defaultTasks

示例三:tutorial\disableTask

代码:

task disableMe << {    println 'This should not be printed if the task is disabled.'}disableMe.enabled = false

如果执行上面的任务,我们会得到什么结果呢?

>gradle disableMe:disableMe SKIPPEDBUILD SUCCESSFUL

很可惜,什么都没有!原因是给task加了个属性,直接跳过了!task有多少属性呢?我的sdk在这里
file:///D:/Java/Gradle/gradle-2.8/docs/dsl/org.gradle.api.Task.html,关于属性enabled,有这样一个解释:

boolean enabledReturns if this task is enabled or not.

返回类型为boolean,设置该task能否执行。在任务块里,可以直接调用task的属性

任务四:tutorial\count

代码:

task count << {    4.times { print "$it " }}

分析:该任务count 调用了一个默认方法,times{}, 进行遍历, $it ,注意it是代表整数,如果是整数,不能用其他代码!这个it在gradle里为整数型! 这里有个困惑,在查找api中没有找到这个方法的位置,如果您知道,希望您给予知道,不胜感激!
补充一点关于times的使用心得:
下面是我自己随意写的gradle,对times的使用进行了扩展,代码如下:

task dd << {5.times{dddddd -> println("ddddddddd:"+dddddd)println("aaaaaaaaaaaaaaaaaaaaaaaaaaaaa:$dddddd")}}

其中,dd为任务名,dddddd是我随意起的遍历次数的变量名, 使用”->“ 进行了变量的声明,而且只能声明一次,符号”->”是必须的! 这个地方我是根据代码改写的,没有找到理论基础,如果您知道,希望您给予知道,不胜感激!*

任务五:tutorial\lazyDependsOn

代码:
下面的代码作用是延时依赖,或者叫懒依赖,就是先确定依赖任务,不管该任务存不存在。如果不存在,后面再进行创建!

task taskX(dependsOn: 'taskY') << {    println 'taskX'}task taskY << {    println 'taskY'}

分析: 创建这种依赖,所依赖的任务名先确定,使用''单引号来包裹这个任务名,这个任务可以在引用后面再进行创建!!!

0 0
原创粉丝点击