作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
includeBuild(...)
之间的主要区别是什么?和 implementation(project(...))
在 Gradle 构建系统中?阅读文档后,我无法真正看到用例差异:
最佳答案
复合构建 (通过使用 includeBuild
)是一种在自治 Gradle 项目之间创建依赖关系的方法。
项目导入 , 是一种在同一个 Gradle 项目中的两个模块之间创建依赖关系的方法。
复合构建 功能更强大,也意味着成为您传统上使用 buildSrc
在多个项目之间分解 gradle 配置的新方法技术。
我找到了 "Structuring Large Projects"文章比 "Composite Builds" 更容易阅读博士。
可以在 Gradle sample_structuring_software_projects 中找到一个演示复合构建强大功能的优秀示例项目。 .
项目依赖案例
树看起来像这样:
settings.gradle.kts
module1/build.gradle.kts
module2/build.gradle.kts
您在
module1/build.gradle.kts
中声明了一个依赖项像这样 :
dependencies{
implementation(project("com.domain:module2))
}
仅当两个项目都被声明为公共(public)根项目的子模块时,才会解决依赖关系。
settings.gradle.kts
像这样 :
rootProject.name = "rootProject"
include(":module1")
include(":module2")
复合构建案例
project1/build.gradle.kts
project1/settings.gradle.kts
project2/build.gradle.kts
project2/settings.gradle.kts
在
project1/settings.gradle.kts
:
rootProject.name = "project1"
includeBuild("project2") //No more ':' as it is not a module
在
project2/settings.gradle.kts
:
rootProject.name = "project2"
在
project1/build.gradle.kts
像这样 :
dependencies{
implementation(project("com.domain:project2"))
}
关于Gradle includeBuild vs 实现项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60464719/
includeBuild(...) 之间的主要区别是什么?和 implementation(project(...))在 Gradle 构建系统中?阅读文档后,我无法真正看到用例差异: https:/
我有 2 个项目,my-app 和 string-utils。 My-app 依赖于 string-utils。构建 my-app 时我得到: "Project with path ':string-
我是一名优秀的程序员,十分优秀!