持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第6天,点击查看活动详情
我们都知道了,Task 是gradle 中的最小执行单元。在Task 中,gradle 还为我们提供了一些默认的属性来为我们的开发提供便利,如:description、group、dependsOn、inputs、outputs 等等。
我们可以根据自己的需求,在定义Task 的时候对这些属性进行赋值,如:
task testTask(dependsOn: testTask2){
description = 'Hello World'
doLast{
// todo
}
}
另外需要说明的一点就是,我们不必关心Task 的配置代码的放置位置,因为gradle 在执行一个Task之前,会首先配置这个Task的Property,在配置完成之后,才会去执行这个Task的执行代码块。
另外,我们着重讲述一下Task 的dependsOn 属性。dependsOn 看名字就可以知道,它是用来表述依赖关系的。我们就是通过Task的dependsOn 属性来指定Task 之间的依赖关系的。
依赖关系可以在声明Task 的时候指定,也可以在task 声明完成之后再指定,示例代码如下:
// 创建Task 时,通过dependsOn 属性声明Task之间的依赖关系
task testTask(dependsOn: testTask2){
doLast{
// todo
}
}
// 创建Task 完成之后再声明task 之间的依赖关系
testTask2.dependsOn testTask3
通过上述代码,我们不难看出,三个task 之间的依赖关系是testTask 依赖testTask2,testTask2 依赖testTask3。被依赖的Task 会先执行。
最后我们要说明的是,我们可以为一个task添加多个动作(action)。对于我们构建出的脚本,在运行的时候,添加的这些动作会按顺序执行。这里我们需要注意的是,先添加的doFirst 动作会后执行,而先添加的doLast动作先执行。示例代码如下:
task testTask {
doFirst {
println "testTask doFirst"
}
doLast {
println "testTask doLast"
}
}
testTask.doFirst { println "second added" }
testTask.doFirst { println "first added" }
testTask.doLast { println "last but one added" }
testTask.doLast { println "Last added" }
执行gradle testTask 命令之后,输出的结果为:
first added
second added
testTask doFirst
testTask doLast
last but one added
last added
总结
这篇文章我们讲了Task 的属性的配置方法,着重说明了dependsOn 属性的两种使用方法。另外,在文章最后,我们说明了为task 添加action 的执行顺序的注意事项,希望读者可以有所收获。