请注意,我们看到的用于为构建脚本添加自定义功能的唯一选项是通过临时任务;我们还可以看到类型化任务如何通过重复使用常用功能变的简单,我们现在将了解如何编写自己的任务类型.
在gradle中创建自定义任务类型非常简单,让我们从定义任务类开始,此外由于gradle脚本只是groovy,因此我们可以在构建脚本中定义一个类,通常来说,我们会始终扩展提供任务界面基本知识的默任务类,如我们已经通过MyTask 类扩展了 DefaultTask.
class MyTask extends DefaultTask {}
它只需要定义一个自定义任务类型,当然由于我们没有为任务提供任何附加功能,因此其功能与在构建脚本中定义临时任务相同,我们需要通过某种方式告诉gradle我们希望任务在执行时所做的工作,幸运的是gradle让这件事也变得十分简单,要向任务类型添加操作,只需定义一个已添加任务注释的方法,让我们从只是简单地将字符串打印到控制台的操作开始.
class HelloTask extends DefaultTask {
@TaskAction
void doAction() {
println 'Hello World'
}
}
如下,现在我们已经定义一任务类型并为其提供了一个操作,现在我们可以在构建脚本中创建此任务类型的实例,就像我们处理任何其它任务类型一样
task hello(type: HelloTask)
当然,我们也可以为我们自定义的任务类型添加一些自己的属性,
class HelloNameTask extends DefaultTask {
String firstName
@TaskAction
void doAction() {
println "Hello, $firstName"
}
}
上面我们已经定义好了任务类型,下面我们在构建脚本中创建其实例
task helloName(type: HelloNameTask) {
firstName = 'Jeremy'
}