lan*_*ava 5 dependencies gradle directed-acyclic-graphs
考虑以下构建脚本,其中
addToMyConfig增加了一个依赖于配置命名myConfiguseMyConfig消耗myConfig Configuration并强制其resolve()。
configurations {
myConfig
}
task addToMyConfig {
doLast {
println "Doing some work"
dependencies {
myConfig 'log4j:log4j:1.2.17'
}
}
}
task useMyConfig {
doLast {
println "myConfig = $configurations.myConfig.files"
}
}
Run Code Online (Sandbox Code Playgroud)
问题:是否有一种方法可以解决addToMyConfig每次configurations.myConfig解决问题,而无需添加依赖项useMyConfig取决于的任务addToMyConfig?
我想说:
configurations.myConfig.builtBy addToMyConfig
Run Code Online (Sandbox Code Playgroud)
** 我不想说 **
useMyConfig.dependsOn addToMyConfig
Run Code Online (Sandbox Code Playgroud)
我想避免,useMyConfig.dependsOn addToMyConfig因为可能有很多任务需要消耗configurations.myConfig
注意:如果ConfigurableFileCollection.builtBy(Object ... tasks)方法仅存在于Configuration接口上(配置扩展FileCollection),它将解决我的问题。
您真的需要使用依赖项task来填充吗configuration?
Configuration#withDependencies可用于在解析期间添加依赖项。像这样:
configurations {
myConfig
}
configurations.myConfig.withDependencies {deps ->
println "Resolving dependencies"
dependencies {
myConfig "log4j:log4j:1.2.17"
}
}
task useMyConfig {
doLast {
println "myConfig = $configurations.myConfig.files"
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
605 次 |
| 最近记录: |