复合构建(通过使用includeBuild
) 是一种在自治 Gradle 项目之间创建依赖关系的方法。
项目导入,是一种在同一 Gradle 项目中的两个模块之间创建依赖关系的方法。
复合构建功能更强大,也意味着成为传统上使用 gradle 配置在多个项目之间进行分解的新方法buildSrc
技术。
我找到了这个《构建大型项目》 https://docs.gradle.org/current/userguide/structuring_software_products.html#defining_custom_project_types_as_convention_plugins文章比“复合构建” https://docs.gradle.org/current/userguide/composite_builds.html doc.
在 Gradle 中可以找到一个展示 Composite Builds 强大功能的优秀示例项目样本结构软件项目 https://docs.gradle.org/current/samples/sample_structuring_software_projects.html.
项目依赖案例
这棵树看起来像这样:
settings.gradle.kts
module1/build.gradle.kts
module2/build.gradle.kts
并且您正在声明依赖项module1/build.gradle.kts
像这样:
dependencies {
implementation(project("com.domain:module2"))
}
仅当两个项目都声明为公共根项目的子模块时,依赖关系才会得到解决。
这意味着你有根settings.gradle.kts
像这样:
rootProject.name = "rootProject"
include(":module1")
include(":module2")
复合材料建造案例
这些项目不需要有共同的“伞”根项目。
每个项目都是一个完全独立的项目。
一个项目可以简单地声明对另一个项目的依赖关系(甚至目标项目都不知道这一点)。
Tree:
project1/build.gradle.kts
project1/settings.gradle.kts
project2/build.gradle.kts
project2/settings.gradle.kts
In project1/settings.gradle.kts
:
rootProject.name = "project1"
includeBuild("../project2") //No more ':' as it is not a module
In project2/settings.gradle.kts
:
rootProject.name = "project2"
In project1/build.gradle.kts
像这样:
dependencies {
implementation("com.domain:project2")
}