📜  Gradle-多项目构建

📅  最后修改于: 2020-10-16 02:44:30             🧑  作者: Mango


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 :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子项目有特殊需要,则根uiutil子项目也可以拥有自己的build.gradle文件,而根项目的常规配置尚未应用这些文件。

例如,ui项目通常与核心项目有依赖关系。因此,ui项目需要其自己的build.gradle文件来指定此依赖性。

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

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