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