前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >11--Gradle进阶 - Gradle任务的定义方式、指定任务的属性

11--Gradle进阶 - Gradle任务的定义方式、指定任务的属性

作者头像
Devops海洋的渔夫
发布2023-09-01 08:53:09
1160
发布2023-09-01 08:53:09
举报
文章被收录于专栏:Devops专栏Devops专栏

11--Gradle进阶 - Gradle任务的定义方式、指定任务的属性

前言

在前面的篇章中,我们写了不少 task 任务,但是任务完整的定义方式,指定哪些任务属性 没有一个归纳的总结。

本篇章我们来熟悉一下。

任务定义方式

任务定义方式,总体分为两大类:

  • 一种是通过 Project 中的task()方法
  • 另一种是通过tasks 对象的 create 或者register 方法。
代码语言:javascript
复制
// 1.通过 Project 中的task()方法定义:
task('taskA', {
    //任务名称,闭包都作为参数println "taskA..."
    println "taskA...."
})

task('taskB') {
    //闭包作为最后一个参数可以直接从括号中拿出来println "taskB..."
    println "taskB...."
}

task taskC {
    //groovy语法支持省略方法括号:上面三种本质是一种println "taskC..."
    println "taskC...."
}

// 2.通过tasks 对象的 create 或者 register 方法
// 2.1 action属性可以设置为闭包task(map,"D");
def map = new HashMap<String, Object>();
map.put("action", { println "taskD.." })

// 2.2 通过 tasks 对象 create 定义任务
tasks.create('taskE') {
    //使用tasks的create方法println "taskE.."
    println "taskE..."
}

// 2.2 通过 tasks 对象 register 定义任务
tasks.register('taskF') { 
    //注:register执行的是延迟创建。也即只有当task被需要使用的时候才会被创建。
    println "taskF...."
}

定义任务的属性

当然:我们也可以在定义任务的同时指定任务的属性,具体属性有:

img

在定义任务时也可以给任务分配属性:

定义任务的时候可以直接指定任务属性,也可以给已有的任务动态分配属性:

代码语言:javascript
复制
//3. 定义任务的属性
//①.Z是任务名,前面通过具名参数给map的属性赋值,以参数方式指定任务的属性信息
task(group: "lijw", description: "this is task Z", "taskZ")

//②.H是任务名,定义任务的同时,在内部直接指定属性信息
task("taskH") {
    group("lijw")
    description("this is the task H")
}

//③.Y是任务名,给已有的任务 在外部直接指定属性信息
task "taskY" {}
taskY.group = "lijw"

//案例:给已有的clean任务重新指定组信息为 lijw 组
clean.group("lijw")

可以在 idea 中看到: 上面自定义的那几个任务和 gradle 自带的 clean 任务已经跑到:lijw 组了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-06-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 海洋的渔夫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 11--Gradle进阶 - Gradle任务的定义方式、指定任务的属性
    • 前言
      • 任务定义方式
        • 定义任务的属性
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档