Gradle自定义一个task

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()
}

最终目录结构如下:

Gradle自定义一个task_第1张图片
QQ截图20160623110839.png

编译之后变成下面的样式:

Gradle自定义一个task_第2张图片
QQ截图20160623111254.png

** 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的复杂度来选择使用哪种方式。

你可能感兴趣的:(Gradle自定义一个task)