【发布时间】:2012-12-17 12:56:06
【问题描述】:
根据此页面, http://gradle.org/docs/current/dsl/org.gradle.api.plugins.ExtensionAware.html
Gradle 中的很多领域对象都支持扩展,这意味着可以通过以下方式设置扩展属性
ext.key = value,或者其他方式
页面说配置和依赖是扩展感知的,他们应该是,但他们不是, 我看不到。
两个证据:
首先,这段代码 sn-p 应该在依赖对象上设置一个属性
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。
所以我错过了一些要点吗?或者这个功能目前还没有实现。 我认为这是一个重要的功能。
【问题讨论】: