假设有一个项目,它由3个模块组成:model、repository、web;
三个模块之间的依赖关系是:web -> repository -> model
1. Settings
settings文件声明了所需的配置来实例化项目的层次结构。在默认情况下,这个文件被命名为 settings.gradle,并且和根项目的build.gradle文件放在一起。
1.1 settings文件
下面的清单显示了 settings 文件的内容。若想使每个子项目都成为构建的一-部分,则可以调用带有项目路径参数的 include 方法。
settings.gradle
// 将给定的子项目添加到构建中,传给include方法的参数是项目路径,不是文件路径
include 'model'
// 将项目的字符串数组传给方法调用,而不是为每个单独的子项目调用include方法
include 'repository', 'web'
1.2 settings api
Gradle组装构建之前,它会创建- - 个Settings类型的实例。Settings 接口是settings文件的直接表示。它的主要作用是添加Project实例参与多项目构建。
除了组装多项目构建之外,你可以在build.gradle脚本中做任何事情,因为你可以直接访问Gradle和Project接口。下图显示了Settings接口的相关方法及其联系。
1.3 settings 执行
2. 配置子项目
2.1 Project API
为了声明特定的项目构建代码,使用了project方法。至少必须提供项目路径(例如,:model)。
很多时候,你想要为所有的项目或只有子项目定义一些公 共的行为。为实现这些用例,Project API提供了两个专门的方法: allprojects和subprojects.假设你想要把Java插件应用到所有子项目中,因为你需要编译Java源代码。你可以通过在subprojects闭包参数中定义代码来实现。
在多项目构建中项目的默认执行顺序是基于