このページによると、 http: //gradle.org/docs/current/dsl/org.gradle.api.plugins.ExtensionAware.html
Gradle の多くのドメイン オブジェクトは拡張機能に対応しています。つまり
ext.key = value
、 やその他の方法で拡張プロパティを設定できます。
このページには、Configuration と Dependency は拡張機能を認識していると書かれており、そうあるべきですが、そうではなく、わかりません。
2 つの証拠:
まず、このコード スニペットは、依存関係オブジェクトにプロパティを設定する必要があります。
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 ではありません。
それで、私はいくつかのポイントを逃していますか?または、この機能はまだ実装されていません。これは重要な機能だと思います。