Gradle任務創建Task
1.Task創建
1.1.查看有多少個task任務
- 在Terminal 命令界面輸入 gradle tasks 查看任務列表。
1.2.task創建
task創建有兩種方式,一種是用task重載方法創建。另一種是用task容器創建。
在gradle中一個project中多個task是通過task容器來管理,task容器就是一個task管理類。
- 在Terminal控制檯直接輸入 gradle task名稱 即可執行指定的task任務
//通過task函數創建
//task方法傳遞兩個參數一個是task名稱,一個是閉包
task (mytask {
println 'my first task'
})
//task方法創建task去掉括號簡化形式
task mytask{
println 'my first task'
}
//通過TaskContainer容器創建Task
this.tasks.create(name:'task2'){
println 'task2'
}
1.3.task配置
1.3.1.Task兩種配置方式
task配置有兩種方式一種方式是在創建task時就配置task信息。另一種是在task的閉包中設置task信息。
//在創建task時候就對task進行配置
task mytask(group: 'com.bruce',description: 'task1'){
println 'my first task'
}
//通過TaskContainer容器創建Task
//在task閉包中配置task
this.tasks.create(name:'task2'){
setGroup('com.bruce')
setDescription('task2')
println 'task2'
}
1.3.2.Task可配置信息查看
- 進入Task類中查看有哪些屬性,這些屬性就是爲task提供的可配置信息。
public interface Task extends java.lang.Comparable<org.gradle.api.Task>, org.gradle.api.plugins.ExtensionAware {
java.lang.String TASK_NAME = "name";
java.lang.String TASK_DESCRIPTION = "description";
java.lang.String TASK_GROUP = "group";
java.lang.String TASK_TYPE = "type";
java.lang.String TASK_DEPENDS_ON = "dependsOn";
java.lang.String TASK_OVERWRITE = "overwrite";
java.lang.String TASK_ACTION = "action";
@org.gradle.api.Incubating
java.lang.String TASK_CONSTRUCTOR_ARGS = "constructorArgs";
2.Task執行
2.1.Task執行流程
Gradle執行分爲三個階段,初始化、配置、執行階段。那麼task默認是在配置階段執行。我們可以通過配置讓他在執行階段執行。
2.2.dofirst和dolast方法
在dofirst和dolast方法中執行的task任務都會運行在Gradle的執行階段。
- dofirst 方法:在執行task任務前先執行
- dolast 方法:在執行task任務後再執行
task mytask(group: 'com.bruce',description: 'task1'){
println 'my first task'
doFirst { println 'mytask dofirst:'+group}
doLast { println 'mystsk dolast'+ group}
}
//任務名稱調用doFirst
mytask.doFirst {
println 'dofirst'
}
//任務名稱調用doLast
mytask.doLast {
println 'dolast'
}
2.3.Task依賴
task taska{
doFirst {
println 'task A'
}
}
task taskb{
doFirst {
println 'task B'
}
}
//在task中定義依賴的task
task taskC(dependsOn:[taska,taskb]){
doFirst {
println 'task C'
}
}