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