gradle 此任务参考

gradle this tasks reference

我想将一些额外的代码移动到闭包中并在任务范围内调用它,如何做?

我有类似的东西,效果很好

task AwesomeTest(type: Test) {
   filter {
      setIncludePatterns(filtered as String[])
   }
}

但想要类似的东西(当然下面的例子不起作用)

task AwesomeTest(type: Test) {
   extraFilter (this)
}

ext.extraFilter = { task ->
   task.filter {
      setIncludePatterns(filtered as String[])
   }
}

有什么想法吗?

this指的是projectTask 的实例作为第一个参数传递给闭包。您需要为其命名或使用 it。给你:

apply plugin: 'java'

ext.extraFilter = { task ->         
   configure(task) {
      filter {
         setIncludePatterns('*')
      }
   }
}

task AwesomeTest(type: Test) { t ->
   extraFilter(t)
}