Bazel 7 正式发布

十二月 12, 2023

Google 现已发布 Bazel 7。Bazel 是 Google 的开源构建系统,适用于快速准确地进行构建。它为构建客户端和服务器软件提供内置支持,包括适用于 Android 和 iOS 平台的客户端应用程序。它还提供了一个可扩展的框架,以便用户开发自己的构建规则。Bazel 可构建 Google 几乎所有的产品,包括 Google 搜索、GMail 和 Google 文档。

Bazel 7 有哪些新功能?

Bazel 7 是长期支持 (LTS) 轨道上的最新重要版本。它包括:

Bzlmod:Bzlmod 是 Bazel 新的模组化外部依赖性管理系统,该系统现在默认为启用状态(即 --enable_bzlmod 默认为 true)。如果您的项目没有 MODULE.bazel 文件,Bazel 会为您建立一个空文件。旧的 Workspace 机制将继续与新的 Bzlmod 管理系统一起运作。进一步了解自 Bazel 6 以来发生的变化,以及 Bazel 8 和 Bazel 9 即将推出的内容。

无字节构建 (BwoB):现在,在远程执行的构建中,无字节构建默认为启用状态(即 --remote_download_outputs 默认为 toplevel)。Bazel 将不再尝试从远程服务器下载任何中间输出,仅下载请求的顶级目标的输出。这大大提高了远程构建性能。进一步了解 BwoB。

合并分析和执行 (Skymeld):Skymeld 项目旨在消除分析和执行阶段之间的界限,并允许在分析完成后立即独立执行目标,从而提高多目标构建性能。

适用于 Android 和 C++ 的基于平台的工具链解析:此变更有助于简化所有规则集的工具链解析 API,无需使用针对特定语言的标记。它还将与其他规则集相同的工具链解析逻辑应用于 Android 和 C++ 规则,从而消除了技术负担。为 Android 开发人员提供的完整详细资料请参阅 Android 平台公告

后续计划?

请参阅 Bazel 7 的完整版本说明,同时欢迎关注我们共同开发 Bazel 8 的过程:

如有任何疑问或反馈,或想分享您构建的内容,请联络 product@bazel.build。我们期待您的来信!