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

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 构建脚本中的如下代码 :

task Hello {
    
    
    // 任务主体内容
    println 'Hello World!'
}

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

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 函数原型如下 :

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-

猜你喜欢

转载自blog.csdn.net/han1202012/article/details/126939053