Gradle Cheat Sheet (3): Task Configuration

  类似于Groovy的封包可以有委托对象,Gradle编译脚本委托给了一个project对象,Gradle DSL中的所有关键词都是这个project对象的属性或方法。

1. 声明任务

  project对象有task()方法用于声明任务,它接受一个任务名称和一个配置封包作为参数。下面声明一个名为“myTask1”的任务:

  因为整个Gradle编译脚本都委托给了project,可以省略project:

  更进一步地,Groovy可以省略参数的括号:

  甚至可以省略双引号:

这里Gradle使用了AST Transformations对Groovy的语法进行了扩展,详见这里

2. 设置描述和分组

  可以通过description和group设置任务的描述和分组:

3. 添加动作

3.1. 在声明任务后添加动作

  任务最重要的属性是它所要执行的动作列表,可以使用 doLast 把一个闭包添加到动作列表的末尾:

  可以通过 doFirst 把一个闭包添加到动作列表的开头:

  也可以使用 leftShift 或 << 加入动作到列表末尾:

  执行myTask4:

输出为:

3.2. 在声明任务时添加动作

  可以在声明任务时给出任务所要执行的动作:

3.3. 在声明任务时给出配置闭包

  可以在声明任务时给出配置闭包,提供所要执行的动作:

理解这个配置闭包要注意两点:

  1. 它的委托是task对象,如果在里面配置group属性,实际配置的是task.group。
  2. task对象的属性具有同名的setter方法,所以配置属性时可以省略等号(相当于以省略括参数号的形式调用了setter方法)。需要注意的是,在把集合赋给属性时,必须要带等号或括号。

4. 配置任务属性的其他方法

  部分任务属性还可以通过如下方法配置:

但不是所有属性都支持这种方法,详见这里。配置任务属性的位置一般从可读性的角度来选择,但如果要给任务配置type,就一定要在这里配置。

 

本部分的完整代码可以在这里找到。