Gradle - 多项目构建

Gradle 可以轻松处理最小和最大的项目。 小型项目有一个构建文件和一个源代码树。 很容易消化和理解一个被拆分成更小的、相互依赖的模块的项目。 Gradle 完美支持多项目构建的场景。


多项目构建的结构

此类构建有各种形状和大小,但它们确实具有一些共同特征,如下所示−

  • 项目根目录或主目录中的 settings.gradle 文件。

  • 根目录或主目录中的 build.gradle 文件。

  • 具有自己的 *.gradle 构建文件的子目录(某些多项目构建可能会省略子项目构建脚本)。

要列出构建文件中的所有项目,可以使用以下命令。

C:\> gradle -q projects

输出

您将收到以下输出 −

------------------------------------------------------------
Root project
------------------------------------------------------------

Root project 'projectReports'
+--- Project ':api' - The shared API for the application
\--- Project ':webapp' - The Web application implementation

To see a list of the tasks of a project, run gradle <project-path>:tasks
For example, try running gradle :api:tasks

报告显示每个项目的描述(如果指定)。 您可以使用以下命令来指定描述。 将其粘贴到 build.gradle 文件中。

description = 'The shared API for the application'

通用构建配置

在 root_project 的 build.gradle 文件中,通用配置可以应用于所有项目或仅应用于子项目。


allprojects {
   group = 'com.example.gradle'
   version = '0.1.0'
}

subprojects {
   apply plugin: 'java'
   apply plugin: 'eclipse'
}

这为所有项目指定了一个通用的 com.example.gradle 组和 0.1.0 版本。 subprojects 闭包将通用配置应用于所有子项目,但不应用于根项目,就像 allprojects 闭包一样。


配置和依赖

核心 uiutil 子项目也可以有自己的build.gradle文件,如果它们有特定的需求,而这些需求尚未被 根项目的一般配置。

例如,ui 项目通常依赖于核心项目。 所以 ui 项目需要自己的build.gradle文件来指定这个依赖。

dependencies {
   compile project(':core')
   compile 'log4j:log4j:1.2.17'
}

项目依赖是用项目方法指定的。