Groovy如何支持在Gradle配置脚本块中添加配置

时间:2016-05-28 16:22:01

标签: gradle groovy

Gradle documentation中,当您在build.gradle文件中使用configurations块时,传递的闭包会委托给ConfigurationContainer对象。下面给出了截断形式的示例用法:

configurations {
  //adding a configuration:
  myConfiguration
}

我习惯于在闭包内调用委托给对象的方法调用,但这里myConfiguration只是一个单词,我知道在Groovy中,没有参数的方法必须有括号,所以这可以不是方法调用。不知怎的,通过把这个单词放在我看来它应该是无效的Groovy,myConfiguration的新配置被添加到委托给ConfigurationContainer

这是如何工作的?

1 个答案:

答案 0 :(得分:0)

Project.configurations(Closure)调用 ConfigurationContainer.configure(Closure),它创建命名项并将其添加到容器中,因为它们在闭包中声明。由于 ConfigurationContainer 扩展 NamedDomainObjectContainer ,因此添加到It的每个项都应具有名称。在提供的代码示例中,仅声明了名称,因此使用默认字段值创建并添加myConfiguration项。如果需要配置项目(更改其属性),则配置将如下所示:

   configurations {
     myConfiguration {
        transitive = false
     }
   }

更多信息/见解https://gist.github.com/tlberglund/3132622