实际上,这是一个更普遍的问题。
我正在为gradle项目编写一个自定义插件,它引入了一个新任务。由于这是一个非常简单的任务,因此我不想编写新的任务类。为此,我使用项目中的“任务”方法来创建它:
project.task('myTask', dependsOn: 'build') << {
println 'Here I come!'
}
现在,我很困惑此方法调用的具体参数列表。小肠我会说是
task(String, Map, Closure)
。但是实际上,没有任何方法可以使此签名过载。只有task(Map, String, Closure)
方法。Groovy是否真的重新排列了实际参数,还是我在这里错过了一些东西?
最佳答案
使用的重载为task(Map, String)
。 (<<
是Task
的缩写运算符,是Task#doLast
的重载运算符。)Groovy编译器将已命名的参数替换为第一参数映射。
关于groovy - 任务方法的gradle参数顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25640339/