Gradle Task创建

时间:2014-12-29 18:26:34

标签: groovy gradle

问题

在build.gradle脚本中,我得到了:

 task 'myTestStr', {}         // is the same as
 Project.task('myTestStr, {}) // <-- this

但我得不到什么:

task myTest(){} //invokes on the Project instance?

我正在学习Gradle和Groovy来自Java背景,所以我很确定我错过了一些解释这种魔法的groovy-ness。

其他详细信息

使用Intellij查找声明(Ctrl + b) myTest(){} 表示它调用TaskContainer#create(java.lang.String)

1 个答案:

答案 0 :(得分:1)

它调用完全相同。如果在方法声明中,闭包是最后一个参数,它可以在结束paren之后传递。

例如inject方法:

assert 1*1*2*3*4 == [1,2,3,4].inject(1) { acc, val -> acc * val }
assert 1*1*2*3*4 == [1,2,3,4].inject(1, { acc, val -> acc * val })