根据这个页面, http ://gradle.org/docs/current/dsl/org.gradle.api.plugins.ExtensionAware.html
Gradle 中的很多领域对象都支持扩展,这意味着可以通过
ext.key = value
或其他方式在其上设置扩展属性
该页面说配置和依赖是扩展感知的,它们应该是,但它们不是,我看不到。
两个证据:
首先,这个代码片段应该在依赖对象上设置一个属性
dependencies {
testCompile(group: 'junit', name: 'junit', version: '4.9') {
provided = true
ext.provided = true
}
}
但我无法从其他地方获得价值。
task test { task ->
task.project.configurations.testCompile.each {
println it
println it.provided
println it.ext.provided
println it.hasProperty('provided')
}
}
什么都没有出现。
虽然当我设置时provided=true
,Gradle 警告我动态属性已被弃用,但请使用扩展属性,顺便说一下,动态属性似乎也不起作用。
其次,根据 Gradle 的源代码,Configuration 和 Dependency 对象不是 ExtensionAware。
所以我错过了一些观点吗?或者这个功能目前还没有实现。我认为这是一个重要的特点。