如何在Gradle的主目录中包含多项目构建中的项目?

时间:2014-07-18 14:15:17

标签: gradle settings project multi-project

让我们有这种结构

enter image description here

我在子项目1 中如何编写 settings.gradle 文件,将子项目1 子项目2 作为子项目包含在内根项目。我的 settings.gradle 文件位于目录中?

我试过了:

include 'root:subproject1', 'root:subproject2'

但没有发生任何事情。

来自Gradle doc:

如果您在没有settings.gradle文件的项目中执行Gradle,Gradle会执行以下操作:

  • 它在名为 master 的目录中搜索settings.gradle,该目录与当前目录具有相同的嵌套级别。
  • 如果未找到 settings.gradle ,则会在父目录中搜索是否存在settings.gradle文件。
  • 如果找不到 settings.gradle 文件,则构建将作为单个项目构建执行。
  • 如果找到 settings.gradle 文件,Gradle会检查当前项目是否是找到的settings.gradle文件中定义的多项目层次结构的一部分。如果没有,则构建将作为单个项目构建执行。否则,将执行多项目构建。

2 个答案:

答案 0 :(得分:6)

includeFlat 'subproject1', 'subproject2'

includeFlatinclude项目的缩写形式,然后将projectDir设置为适合平面目录布局。

有关详细信息,请参阅"多项目构建" Gradle User Guide中的章节,样本以完整的Gradle分布构建。

答案 1 :(得分:0)

良好的项目结构。

master 目录的settings.gradle 应该有以下include 语句,才能将subproject1、subproject2 作为多模块项目。

rootProject.name = 'app-name'

includeFlat 'subproject1'
includeFlat 'subproject2'
  1. subproject1、subproject2 模块中无需设置 settings.gradle。
  2. version.gradle 和 settings.gradle 最好只保存在 master 模块下。
  3. subproject1, subproject2 可以将 build.gradle 与特定的依赖项部分写入他们的项目。常见的依赖可以在master的build.gradle下声明。
  4. master 下有一个带有 wrapper 文件夹的“gradle”很好,这样可以下载最新版本的 Gradle 来构建多模块子项目。 (例如:gradlew)