gradle-task的使用
新建一个gradle-Java项目
工程创建
默认的 build.gradle 文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
plugins {
id 'java'
}
group 'fluffy.mo'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
}
|
创建task
build.gradle 添加以下示例task
1
2
3
4
5
6
7
8
9
10
11
12
13
|
task t01 {
group("sample-learn")
println("sample-011")
}
tasks.create(name: 't02', group: "sample-learn") {
println("sample-022")
}
task("t03", {
group("sample-learn")
println("sample-033")
})
|
运行gradle t01
后结果
1
2
3
4
|
> Configure project :
sample-011
sample-022
sample-033
|
task 依赖执行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
task mydepOn_01 {
group("sample-learn")
dependsOn("mydepOn_02")
println("mydepOn-部署阶段-01")
doLast {
println("mydepOn-执行阶段-01")
}
}
task mydepOn_03 {
group("sample-learn")
println("mydepOn-部署阶段-03")
doLast {
println("mydepOn-执行阶段-03")
}
}
task mydepOn_02 {
group("sample-learn")
println("mydepOn-部署阶段-02")
doLast {
println("mydepOn-执行阶段-02")
}
}
mydepOn_02.dependsOn(mydepOn_03)
|
执行任务 mydepOn_02 后结果
1
2
3
4
5
6
7
8
9
10
|
> Configure project :
mydepOn-部署阶段-01
mydepOn-部署阶段-03
mydepOn-部署阶段-02
> Task :mydepOn_03
mydepOn-执行阶段-03
> Task :mydepOn_02
mydepOn-执行阶段-02
|
由运行结果上看
任务 mydepOn_02 依赖 mydepOn_03, 所以 mydepOn_03先执行,没啥毛病 。
但 部署序号的打印是咋回事??
task的两个运行阶段
上面两小节的运行结果 > Configure project :
这段可知:
gradle在执行task时,会先装载所有的task,并且顺序执行所有task的 部署阶段的代码
然后再调用指定task名称的 所有闭包任务
一个工程对象中, 可以有多个task 。
一个task中, 可以有多个闭包任务。
下面演示闭包任务的 执行顺序问题
task - doFirst、doLast
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
task mylast {
group("sample-learn")
/**
* 该示例执行结果 证明 -- doLast添加的闭包靠后执行
* > Task :mylast
* mylast-执行阶段-前面-01
* mylast-执行阶段-前面-02
* mylast-执行阶段01
* mylast-执行阶段02
*/
println("mylast-部署阶段")
doLast {
println("mylast-执行阶段01")
}
doLast {
println("mylast-执行阶段02")
}
doFirst {
println("mylast-执行阶段-前面-02")
}
doFirst {
println("mylast-执行阶段-前面-01")
}
}
|
执行任务 mylast 后结果
1
2
3
4
5
6
7
8
|
> Configure project :
mylast-部署阶段
> Task :mylast
mylast-执行阶段-前面-01
mylast-执行阶段-前面-02
mylast-执行阶段01
mylast-执行阶段02
|
文章作者
duansheli
上次更新
2019-12-25
(325c7b3)