如何枚举具有文件位置的多模块Gradle项目中的所有模块?

时间:2018-08-06 16:13:55

标签: java gradle

我真的很想能够枚举我的多模块Gradle项目中的项目,最好是使用相对文件名。 即

./ gradlew列表项目

  • :foo ./foo
  • :nested-foo ./foo/nested
  • :bar ./bar

等 到目前为止,没有什么可以进行谷歌搜索。 有谁知道如何做到这一点? 请注意,我不需要

2 个答案:

答案 0 :(得分:0)

看看Project interface,它包含您所需要的全部内容。

尤其是:

  • getAllProjects()检索包含根项目的Set<Project>getSubprojects()检索不包含根项目的集合
  • getProjectDir()将为您提供该项目的绝对路径
  • 并与根项目中的relativePath(Object path)结合使用,可使您相对化路径。

做您需要做的代码应该放在自定义任务中。

答案 1 :(得分:0)

我自己需要这样的东西;这是一个工作代码段,它将所有以“:client:”开头的子项目添加到当前项目的依赖项中:

dependencies {
    getProject()
        .getRootProject()
        .getSubprojects()
        .findAll { it.getPath().startsWith(':client:') }
        .forEach { compile project (it.getPath()) }
}