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

如何从Gradle的主目录在多项目构建中包含项目?,gradle,settings,project,multi-project,Gradle,Settings,Project,Multi Project,让我们有这个结构 我在子项目1中,如何编写我的设置.gradle文件,以将子项目1和子项目2作为根项目的子项目。我的设置.gradle文件在主目录中 我试过: include 'root:subproject1', 'root:subproject2' 但什么也没发生 来自Gradle文档: 如果从没有settings.Gradle文件的项目中执行Gradle,Gradle将执行以下操作: 它在名为master的目录中搜索settings.gradle,该目录与当前目录具有相同的嵌套级别

让我们有这个结构

我在子项目1中,如何编写我的设置.gradle文件,以将子项目1子项目2作为根项目的子项目。我的设置.gradle文件在主目录中

我试过:

include 'root:subproject1', 'root:subproject2'
但什么也没发生

来自Gradle文档:

如果从没有settings.Gradle文件的项目中执行Gradle,Gradle将执行以下操作:

  • 它在名为master的目录中搜索settings.gradle,该目录与当前目录具有相同的嵌套级别
  • 如果未找到任何settings.gradle,它将在父目录中搜索settings.gradle文件是否存在
  • 如果未找到任何设置.gradle文件,则生成将作为单个项目生成执行
  • 如果找到settings.gradle文件,gradle将检查当前项目是否属于在找到的settings.gradle文件中定义的多项目层次结构的一部分。如果不是,则生成将作为单个项目生成执行。否则将执行多项目构建
includeFlat
include
-ing项目,然后根据平面目录布局设置其
projectDir
的缩写


有关更多信息,请参阅中的“多项目构建”一章,以及完整Gradle发行版中的示例构建。

良好的项目结构

主目录的settings.gradle应具有以下include语句,以便将subproject1、subproject2作为多模块项目

rootProject.name = 'app-name'

includeFlat 'subproject1'
includeFlat 'subproject2'
  • 子项目1、子项目2模块中不需要有settings.gradle
  • version.gradle和settings.gradle只能在主模块下保存
  • 子项目1、子项目2可以将build.gradle与其项目的特定依赖项部分wrt关联起来。公共依赖关系可以在master的build.gradle下声明
  • 在master下有“gradle”和wrapper文件夹是很好的,这样就可以下载gradle的最新版本来构建多模块子项目。(例如:格拉德卢)

  • 好啊现在,只有当当前目录是主目录时,项目才可见。转到子项目1时,gradle projects命令显示没有子项目。根目录中是否应该有build.gradle文件?嗯,
    subproject1
    没有任何子项目。尝试
    gradle:projects
    rootProject.name = 'app-name'
    
    includeFlat 'subproject1'
    includeFlat 'subproject2'