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 Niederweiserelastic-deps示例的事情,而不必修改子项目的构建文件。在单模块项目中,Gradle看起来很聪明如果项目依赖项重叠,则足以使用项目依赖项来解决Maven / Ivy依赖项。)

ETA:如果有一种方法可以在顶层声明所有子项目将在声明依赖项后的某个时刻运行的代码块,则可以这样做。

最佳答案


evaluationDependsOnChildren()可以解决问题。在评估子项目之后,将评估此方法调用之后的所有代码。

关于gradle - 在多模块Gradle构建中从根访问子模块依赖项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23481476/

10-13 06:15
查看更多