深入了解 Tasks - 定义 tasks

优质
小牛编辑
139浏览
2023-12-01

我们已经在第 6 章学习了定义任务的形式 (keyword 形式). 当然也会有一些定义形式的变化来适应某些特殊的情况. 比如下面的例子中任务名被括号括起来了. 这是因为之前定义简单任务的形式 (keyword 形式) 在表达式里是不起作用的.

例子 15.1. 定义 tasks

build.gradle

  1. task(hello) << {
  2. println "hello"
  3. }
  4. task(copy, type: Copy) {
  5. from(file('srcDir'))
  6. into(buildDir)
  7. }

你也可以使用 strings 来定义任务的名字:

例子 15.2. 例子 tasks - 使用 strings 来定义任务的名字

build.gradle

  1. task('hello') <<
  2. {
  3. println "hello"
  4. }
  5. task('copy', type: Copy) {
  6. from(file('srcDir'))
  7. into(buildDir)
  8. }

还有另外一种语法形式来定义任务, 更加直观:

例子 15.3. 另外一种语法形式

build.gradle

  1. tasks.create(name: 'hello') << {
  2. println "hello"
  3. }
  4. tasks.create(name: 'copy', type: Copy) {
  5. from(file('srcDir'))
  6. into(buildDir)
  7. }

这里实际上我们把任务加入到 tasks collection 中. 可以看一看 TaskContainer 来深入了解下.