从根多模块摇篮访问子模块的依赖关系构建(Access submodule dependencies

2019-10-20 02:21发布

有根的方式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构建了一堆不知道他们是一个多模块项目的一部分,也可以是多种不同的多模块proejcts的部分相关模块的。我计划是编程经过子模块的依赖关系,并添加相应的project依赖于每一个-希望做一些事情有点像彼得Niederweiser的弹性DEPS 。例如,但无需修改子项目构建文件在单模块项目好像摇篮是足够聪明的使用项目的依赖,以解决Maven的/常春藤依赖关系,如果它们重叠。)


ETA:如果有在顶级声明的代码块,所有子项目会在某个时间点运行,他们已经宣布了他们的依赖一种方式,有可能做到这一点。

Answer 1:

如果有在顶级声明的代码块,所有子项目会在某个时间点运行,他们已经宣布了他们的依赖后一种方式,有可能做到这一点。

evaluationDependsOnChildren()的伎俩。 之后孩子的项目进行了评估遵循这个方法调用的所有代码进行评估。



文章来源: Access submodule dependencies from root in multi-module Gradle build