Gradle任务创建Task

举报
brucexiaogui 发表于 2021/11/25 22:37:18 2021/11/25
【摘要】 Gradle任务创建Task 1.Task创建 1.1.查看有多少个task任务 在Terminal 命令界面输入 gradle tasks 查看任务列表。 1.2.task创建 tas...

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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
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";

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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'
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

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'
    }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

文章来源: brucelong.blog.csdn.net,作者:Bruce小鬼,版权归原作者所有,如需转载,请联系作者。

原文链接:brucelong.blog.csdn.net/article/details/105918307

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。