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 版本。该 子项目 关闭应用公共配置为所有子项目,而不是根项目,像 allprojects 关闭呢。

项目特定的配置和依赖项

如果核心 uiutil 子项目有特定的需求,那么它们也可以拥有自己的 build.gradle 文件,这些需求尚未由根项目的常规配置应用。

例如,ui项目通常对核心项目有依赖性。所以ui项目需要自己的 build.gradle 文件来指定这种依赖关系。

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

项目依赖关系是通过项目方法指定的。