前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Android Gradle 插件】自定义 Gradle 任务 ③ ( Gradle 自定义任务创建方法 Project#task 函数 | Task#doFirst 函数用法 )

【Android Gradle 插件】自定义 Gradle 任务 ③ ( Gradle 自定义任务创建方法 Project#task 函数 | Task#doFirst 函数用法 )

作者头像
韩曙亮
发布2023-03-30 17:04:31
5390
发布2023-03-30 17:04:31
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

Android Plugin DSL Reference 参考文档 :

一、Gradle 自定义任务创建方法 Project#task 函数


org.gradle.api.Project 配置 ( build.gradle 根配置 ) 文档 : https://docs.gradle.org/current/javadoc/org/gradle/api/Project.html

org.gradle.api.Task 配置 ( Gradle 任务类型 ) 文档 : https://docs.gradle.org/current/javadoc/org/gradle/api/Task.html

在 build.gradle 中自定义 Gradle 任务调用的是 org.gradle.api.Project 中的 task 方法 , 在 build.gradle 构建脚本中的如下代码 :

代码语言:javascript
复制
task Hello {
    // 任务主体内容
    println 'Hello World!'
}

上面的 Project # task 函数原型如下 :

代码语言:javascript
复制
Task task​(String name,
          Closure configureClosure)
          
Creates a Task with the given name and adds it to this project. 
Before the task is returned, the given closure is executed to configure the task.
创建具有给定名称的Task并将其添加到此项目。
在返回任务之前,将执行给定的闭包来配置任务。

After the task is added to the project, it is made available as a property of the project, 
so that you can reference the task by name in your build file. See here for more details
将任务添加到项目中后,它将作为项目的属性可用,
以便可以在构建文件中按名称引用任务。有关详细信息,请参阅此处

Parameters:
name - The name of the task to be created. 
       要创建的任务名称
configureClosure - The closure to use to configure the created task. 
                   配置要创建任务的闭包
Returns:
The newly created task object. 最新创建的任务对象.
Throws:
InvalidUserDataException - If a task with the given name already exists in this project.
                           如果该名称已经被占用则抛出异常.

文档地址 : https://docs.gradle.org/current/javadoc/org/gradle/api/Project.html#task-java.lang.String-groovy.lang.Closure-

由以上返回值可知 , 创建的任务对象是 Task 接口类型 , 该接口类的文档如下 :

org.gradle.api.Task 配置 ( Gradle 任务类型 ) 文档 : https://docs.gradle.org/current/javadoc/org/gradle/api/Task.html

二、Task#doFirst 函数用法


org.gradle.api.Task 配置 ( Gradle 任务类型 ) 文档 : https://docs.gradle.org/current/javadoc/org/gradle/api/Task.html

在自定义 Gradle 任务中 , 可以实现 Task 接口的 doFirst 函数 , 其作用是在 任务执行后 最先执行的内容 , 任务中可以执行多个 Task#doFirst 函数 , 按照先后顺序执行 , 先定义的后执行 , 后定义的先执行 ;

Task#doFirst 函数原型如下 :

代码语言:javascript
复制
Task doFirst​(Closure action)

Adds the given closure to the beginning of this task's action list. 
The closure is passed this task as a parameter when executed.
将给定的闭包添加到此任务的操作列表的开头。
闭包在执行时作为参数传递给此任务。

Parameters:
action - The action closure to execute.
         要执行的操作闭包。
Returns:
This task.

文档位置 : https://docs.gradle.org/current/javadoc/org/gradle/api/Task.html#doFirst-groovy.lang.Closure-

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、Gradle 自定义任务创建方法 Project#task 函数
  • 二、Task#doFirst 函数用法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档