Gradle任務創建Task

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'
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章