在Gradle documentation中,当您在build.gradle文件中使用configurations
块时,传递的闭包会委托给ConfigurationContainer
对象。下面给出了截断形式的示例用法:
configurations {
//adding a configuration:
myConfiguration
}
我习惯于在闭包内调用委托给对象的方法调用,但这里myConfiguration
只是一个单词,我知道在Groovy中,没有参数的方法必须有括号,所以这可以不是方法调用。不知怎的,通过把这个单词放在我看来它应该是无效的Groovy,myConfiguration
的新配置被添加到委托给ConfigurationContainer
。
这是如何工作的?
答案 0 :(得分:0)
Project.configurations(Closure)调用 ConfigurationContainer.configure(Closure),它创建命名项并将其添加到容器中,因为它们在闭包中声明。由于 ConfigurationContainer 扩展 NamedDomainObjectContainer ,因此添加到It的每个项都应具有名称。在提供的代码示例中,仅声明了名称,因此使用默认字段值创建并添加myConfiguration项。如果需要配置项目(更改其属性),则配置将如下所示:
configurations {
myConfiguration {
transitive = false
}
}