0、关于定义一个task的方式,可以参考gradle文档14章和17章
1、根据官方描述,总共有三种方式自定义一个task
1.1 task直接写在build.gradle文件中,这个比较简单,这里不介绍
1.2 task写在buildSrc项目中,操作步骤如下:
** 1.2.1 创建项目结构 **
在项目的根目录下面新建一个文件夹,名为buildSrc,然后依次新建子目录
src/main/groovy,然后可以建自己的包名,这里以demo.gradle.task为例,依次新建
子目录demo/gradle/task,然后在buildSrc根目录下面新建build.gradle文件,里面写入:
apply plugin: 'groovy'
dependencies {
compile gradleApi()
compile localGroovy()
}
最终目录结构如下:
编译之后变成下面的样式:
** 1.2.2 编写task**
在demo.gradle.task包中,新建一个task类,名为HelloGradleTask.groovy,
注意在sayHello方法上的那个@TaskAction注解的作用。
package demo.gradle.task
import org.gradle.api.DefaultTask
import org.gradle.api.tasks.TaskAction
class HelloGradleTask extends DefaultTask{
@TaskAction // 加上这个action的作用是当执行这个task的时候会自动执行这个方法
void sayHello(){
println "Hello Gradle Custom Task"
}
}
** 1.2.3 使用task**
在项目中的build.gradle中添加如下脚本:
task myCustomTask(type : demo.gradle.task.HelloGradleTask){
println("########## custom task ###########")
}
重新编译项目,在项目下面就会多了一个名为myCustomTask的task,执行task,
会打印########## custom task ###########和"Hello Gradle Custom Task"
两句话。
1.3 作为一个独立项目建立task,这个官方文档有详细文档,这里不介绍了。
以上,为自定义task的所有方式。总的来说,如果只是自己项目中要使用,
第一二钟方式就满足了,然后根据task的复杂度来选择使用哪种方式。