构建基础知识

报告问题 查看源代码

构建系统是工程组织最重要的部分之一,因为每个开发者每天可能与其互动数十次或数百次。随着组织的规模不断扩大,构建功能完备的构建系统对于实现开发者工作效率来说必不可少。对于个人开发者来说,直接编译代码非常简单,因此构建系统似乎过于频繁。但在更大的范围内,构建构建系统有助于管理共享依赖项,例如,依赖于代码库的其他部分,或外部资源(如库)。构建系统有助于确保您在开始构建代码之前具备构建代码所需的一切。构建系统在设置后可以加快速度,帮助工程师共享资源和结果。

本部分将介绍构建和构建系统的一些历史记录和基础知识,包括有关构建 Bazel 的设计决策。如果您熟悉基于工件的构建系统(例如 Bazel、Buck 和 Pants),可以跳过此部分。不过,阅读本部分的帮助文章将有助于了解基于工件的构建系统在实现规模优势方面的优势。

  • 为什么要使用构建系统?

    如果您之前未使用过构建系统,请从这里着手。本页面将介绍为何应使用构建系统,以及为何您的组织开始扩展到少数开发者后,编译器和构建脚本并不是最佳选择。

  • 基于任务的构建系统

    本页面介绍了基于任务的构建系统(例如 Make、Maven 和 Gradle)及其面临的一些挑战。

  • 基于工件的构建系统

    本页面讨论了基于工件的构建系统,以响应基于任务的构建系统的痛点。

  • 分布式 build

    本页面介绍分布式构建或在本地计算机之外执行的构建。这需要更强大的基础架构来共享资源和构建结果(这里才是真正的巫师所在!)

  • 依赖项管理

    本页将介绍大规模依赖依赖项的一些复杂功能,以及应对这些复杂功能的策略。