什么是groovy语言中的gradle任务定义?

ben*_*ben 6 groovy gradle

我对gradle和groovy都是全新的,我很难找到有关以下实际上是什么的常规语言的信息

task myTask(dependsOn: 'compile') << {
   println 'I am not affected'
}
Run Code Online (Sandbox Code Playgroud)

AFAIK这个{...}部分是一个闭包,似乎传递给之前定义的任何东西<<.

task myTask()对构造函数的调用吗?

结肠看起来像参数是什么东西?

怎么<<办?它是一个被gradle超载的运算符还是标准的groovy?

Pet*_*ser 11

dependsOn: 'compile'是一个命名参数.<<是一个重载运算符,它向任务添加任务操作.(有关详细信息,请参阅Gradle用户指南.){ ... }是一个实现任务操作的闭包.myTask在语法上是一个嵌套的方法call(task(myTask(dependsOn: 'compile') << ...)),但是使用Groovy编译器插件(task('myTask', dependsOn: 'compile') << ...)将其重写为String .

  • 项目有一个方法: task(Map&lt;String,?&gt; args, String name),而不是 task(String name, Map&lt;String,?&gt; args) 。所以它应该是 task(dependsOn: 'compile', 'myTask') &lt;&lt; ... (2认同)