gradle Task 详解

news/2024/5/20 1:02:06 标签: gradle

Task定义和配置

查看工程下所有的task,使用如下命令

gradle tasks

定义一个task

task创建的源码

参数分别是 task 名称,和一个 closure。groovy语法的closure可以写在小括号外面,小括号可以省略

task的源码

public interface Task extends Comparable<Task>, ExtensionAware {
    String TASK_NAME = "name";
    String TASK_DESCRIPTION = "description";
    String TASK_GROUP = "group";
    String TASK_TYPE = "type";
	// 指定当前task的依赖的其他task
    String TASK_DEPENDS_ON = "dependsOn";
	// 重写 task
    String TASK_OVERWRITE = "overwrite";
	// 配置 task 任务逻辑
    String TASK_ACTION = "action";
	// 构造参数
    String TASK_CONSTRUCTOR_ARGS = "constructorArgs";
}

语法

task 自定义task名称

示例

task mytask {
    println "hello task."
}

执行自定义task

./gradle mytask


定义task也可以使用上面源码中的 TaskContainer 方式创建一个task

示例

this.tasks.create('mytask2') {
    println "hello task2."
}

给 task 添加分组

示例

// 给 自定义task 添加group 和 desc
// 示例一
task mytask1(group: "testGroup", description: "is am a test") {
    println "hello task1."
}
// 示例二
task mytask2 {
    setGroup("testGroup")
    setDescription("is am a test")
}

 添加分组的 task,在idea gradle项中会放在一个新组中,没有分组的自定义task会放在 other 中


Task的执行阶段

关于gradle的阶段请查看:gradle生命周期

配置阶段

普通定义的task都是在配置阶段都会被执行。

执行阶段

执行阶段就是特意使用了 gradle xxx 的方式指定某一个task执行。taks才会执行。其他命令task不会执行。

执行阶段的task,在配置阶段不会被执行。只有task才能在执行阶段被执行。使用如下两个函数,让 task 在gradle 执行阶段执行

  • doFirst:在task之前添加逻辑
  • doLast:在task之后添加逻辑

示例

// 示例一
task testTask(group: "testGroup", description: "is am a test") {
    doFirst {
        println "hello doFirst. " + group
    }

}
// 示例二
testTask.doLast {
    println "hello doLast. " + description
}


http://www.niftyadmin.cn/n/280072.html

相关文章

c++11上篇

c11 1.C11简介2.列表初始化2.1 &#xff5b;&#xff5d;初始化2.2 std::initializer_list 3.变量类型推导3.1 auto3.2 decltype3.3 nullptr 4.范围for循环5.final与override6.智能指针7.新增加容器---静态数组array、forward_list以及unordered系列8.默认成员函数控制9.右值引…

C++——类和对象[中]

0.关注博主有更多知识 C知识合集 目录 1.类的默认成员函数 2.构造函数和析构函数基础 3.构造函数进阶 4.析构函数进阶 5.拷贝构造函数 6.运算符重载 7.日期类 7.1输入&输出&友元函数 8.赋值运算符重载 9.const成员函数 9.1日期类完整代码 10.取地址重载 …

基于ChatGLM-6B的 双语开源对话模型

ChatGLM-6B 是一个开源的对话语言模型,支持中英双语,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署,INT4 量化级别下最低只需 6GB 显存。 ChatGLM-6B 针对中文问答和对话进行了优化,使用了和 ChatGPT…

自动控制原理笔记-频率响应法-频率特性的概念

目录 频率响应法&#xff1a; 频率特性的概念&#xff1a; 一、频率特性的定义&#xff1a; 二、频率特性的求法: 三、频率特性的物理意义: 四、频率特性的图形表示方法: 频率响应法&#xff1a; 基本思想&#xff1a;通过开环频率特性的图形对系统进行分析。 主要优点&…

Java中提升接口性能的一些方法

目录 1.使用线程池并行执行2.数据库优化2.1 小表关联大表2.2 反三大范式操作2.3 增加索引2.4 减小事务粒度2.5 读写分离、分库分表 3.拥抱缓存3.1 Redis3.2 内存缓存 4.锁和异步4.1 减小锁的粒度4.2 分布式锁 1.使用线程池并行执行 假如有一个接口的逻辑如下&#xff1a; 接口…

前端小白是如何利用chatgt用一周时间从做一款微信小程序的

前端小白是如何利用chatgt用一周时间从0做一款微信小程序的 随着chatgpt的大火&#xff0c;真的是在工作上给各行各业的人带来了极大的便利&#xff0c;本人是一个java程序员&#xff0c;其实我自己是一直想开发一款属于自己的小程序的&#xff0c;但是迫于对前端知识的贫瘠&a…

第十四届蓝桥杯. 接龙数列(线性DP)

对于一个长度为 K 的整数数列&#xff1a;A1,A2,...,AK&#xff0c;我们称之为接龙数列当且仅当 A i 的首位数字恰好等于 A i−1 的末位数字 (2≤i≤K)。 例如 12,23,35,56,61,11 是接龙数列&#xff1b;12,23,34,56 不是接龙数列&#xff0c;因为 56 的首位数字不等于 34 的末…

maven-gpg-plugin gpg禁用交互式输入密码 免密码输入 设置默认密码 关闭pinentry-qt输入 passphrase

一、问题描述 在使用maven-gpg-plugin打包jar时,默认情况下&#xff0c;每次都会弹出对话框要你输入密码&#xff1a; 这就有点烦&#xff0c;有啥办法可以设置默认方法没&#xff1f;网上找了一圈&#xff0c;通过搜索关键词“passphrase”&#xff0c;找到了一些教程&#x…