构建基础
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
报告问题open_in_new
查看源代码open_in_new
构建系统是工程组织最重要的组成部分之一,因为每位开发者每天可能与该系统互动数十次或数百次。随着组织规模的扩大,开发者需要一个功能齐全的构建系统才能提高他们的工作效率。对于个人开发者而言,只编译代码非常简单,因此构建系统看起来可能显得过多。但在更大范围内,使用构建系统有助于管理共享依赖项,例如依赖于代码库的其他部分或外部资源(如库)。构建系统有助于确保在开始构建之前拥有构建代码所需的一切。如果将构建系统设置为帮助工程师分享资源和结果,构建系统也会加快速度。
本部分介绍了构建和构建系统的一些历史和基础知识,包括构建 Bazel 的设计决策。如果您熟悉基于工件的构建系统(例如 Bazel、Buck 和 Pants),则可以跳过本部分,但本部分简要介绍了为什么基于工件的构建系统非常擅长实现扩缩。
为什么要构建构建系统?
如果您之前未使用过构建系统,请从这里开始。本页介绍了为什么您应该使用构建系统,以及为什么当您的组织开始扩展到超过少数开发者后,编译器和构建脚本并不是最佳选择。
基于任务的构建系统
本页介绍了基于任务的构建系统(例如 Make、Maven 和 Gradle)及其一些挑战。
基于工件的构建系统
本页将介绍基于工件的构建系统,以解决基于任务的构建系统的痛点。
分布式 build
本页面介绍了分布式 build,即在本地机器之外执行的构建。这需要更强大的基础架构来共享资源和构建结果(这才是真正的神奇之处!)
依赖项管理
本页将介绍大规模依赖项的一些复杂问题以及应对这些复杂问题的策略。
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-06-28。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"没有我需要的信息"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"太复杂/步骤太多"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"内容需要更新"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻译问题"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"示例/代码问题"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"易于理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"解决了我的问题"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]