Gradle 中的多项目构建

17 Mar 2025 | 4 分钟阅读

Gradle 支持多项目构建,以快速开发项目。它有助于模块化项目。它允许我们专注于一个大型项目的一个模块。Gradle 负责处理项目中其他部分产生的依赖关系。

多项目构建由一个根项目和一个或多个子项目组成。

跨项目配置

每个子项目都能够完全独立于其他子项目进行自我配置,因此子项目共享共同的特征。最好在项目之间共享配置,以便相同的配置可以影响许多子项目。

配置和执行

在 Gradle 中,配置意味着执行项目的 'build.gradle' 文件。 默认情况下,配置在执行任何任务之前完成。 当请求项目的单个任务时,首先配置多项目构建。 当项目被配置时,它在访问和更新 Gradle 项目的任何模块时变得更加灵活。

创建一个多项目

让我们创建一个包含其子项目并构建 Gradle 项目的项目。

考虑以下项目结构,其中根项目名称为 Multi_project,子项目名称为 sub_project

创建一个新的根目录,在该目录中我们要创建一个多项目。 使用以下命令创建新目录

创建一个 Gradle 构建; Multi_Project 目录。 要创建 Gradle 构建,请运行 gradle init 命令。 init 命令包含 wrapper 命令本身,因此它将在根项目中创建 build.gradlesetting.gradle 文件。

以下是创建 Gradle 项目的过程

当我们执行 init 命令时,它会询问我们要生成的项目类型。 它提供了四种类型的项目选项。 它们如下所示

  1. 基本功能
  2. 应用
  3. Gradle 插件

选择所需的选项并按 Enter 键继续。

接下来,它会询问我们所需的构建脚本 DSL。 DSL 有两个选项可用

  1. Groovy
  2. Kotlin

选择必要的 DSL 并按 ENTER 键继续。

现在它会询问我们项目名称; 我们可以提供任何项目名称,如果未提供,默认情况下,它将以目录名称作为项目名称。

按 ENTER 键继续。 考虑以下输出

Multi-Project Build in Gradle

现在创建多项目树结构,如下所示

Multi_project/

build.gradle

setting.gradle

Sub_project/

build.gradle

setting.gradle

考虑下图

Multi-Project Build in Gradle

现在要创建多项目构建,请在根项目构建脚本中添加以下代码片段 (即,build.gradle)。

将子项目包含到根项目中。 为此,请在 setting.gradle 中添加以下语句

使用以下命令执行它

输出

Multi-Project Build in Gradle

在 Gradle 中,可以从多项目构建的构建脚本访问任何项目。 Gradle 的项目 API 提供了一个名为 project() 的方法; 它将路径作为参数并返回当前路径的项目的对象。 当项目构建从构建脚本配置时,它被称为跨项目配置。 这是使用配置注入实现的。

考虑另一种情况。 在子项目 sub_project 下还有另一个名为 Demo 的子项目。 Gradle 项目的树结构如下所示

Multi_project/

build.gradle

setting.gradle

Sub_project/

build.gradle

setting.gradle

Demo/

build.gradle

setting.gradle

我们可以从根项目中执行所有子项目。 为此,请重写根项目的构建脚本。 将以下代码片段添加到根项目的 build.gradle 文件中

将子项目包含到根项目中。 为此,请在 setting.gradle 中添加以下语句

使用以下命令执行它;

输出

Multi-Project Build in Gradle

仅访问子项目

Gradle 项目 API 也提供了一个用于仅访问子项目的属性。

定义通用行为

我们可以定义项目和子项目的通用行为。 为此,请按如下方式重写根项目构建脚本

使用以下命令执行它

输出

Multi-Project Build in Gradle

添加特定行为

我们可以在通用行为的基础上添加特定行为。 通常,我们将项目特定的行为放置在要添加特定功能的项目的构建脚本中。 为此,我们必须更新该特定项目的构建脚本。 要将特定行为添加到子项目,请按如下方式更新构建脚本

使用以下命令执行它

输出

Multi-Project Build in Gradle