有没有办法在根build.gradle
访问子项目中声明的依赖项build.gradle
文件?我已经尝试了以下 -
subprojects.each { p ->
println "subproject: ${p.name}"
p.configurations.each { c ->
println " ${c}"
c.dependencies.each { d ->
println " ${d}"
}
}
}
但我猜是因为根
build.gradle
首先执行,子模块依赖声明还没有运行,因为我得到的是:subproject: foo
subproject: bar
subproject: baz
(我正在尝试编写一个多模块
build.gradle
来构建一堆相关模块,这些模块不知道它们是多模块项目的一部分,或者可以是许多不同的多模块项目的一部分。我的计划是以编程方式遍历子模块依赖项,并为每个依赖项添加相应的 project
依赖项——希望做一些类似于 Pieter Niederweiser 的 elastic-deps 示例但不必修改子项目构建文件的事情。在单个-module 项目似乎 Gradle 足够聪明,可以使用项目依赖项来解决 Maven/Ivy 依赖项,如果它们重叠的话。)预计到达时间:如果有一种方法可以在顶层声明所有子项目在声明其依赖项后的某个时间点将运行的代码块,那可能会这样做。
最佳答案
If there's a way to declare at the top level a block of code that all subprojects will run at some point after they've declared their dependencies, that might do it.
evaluationDependsOnChildren()
成功了。此方法调用之后的所有代码都将在评估子项目后评估。
关于gradle - 在多模块 Gradle 构建中从根访问子模块依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23481476/