Bazel 7 发布:全新模块化依赖管理、无字节构建与多目标构建性能提升
![](/theme/default/default/images/main/eye-open.png)
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
![](/theme/default/default/images/main/icon-jing.png)
在 BazelCon 23 上,Bazel 7 的发布引进了多个新功能。这些包括模块化外部依赖管理系统 Bzlmod、无字节构建模式(BwoB)的优化以及基于 Project Skymeld 的构建性能改善。
Bzlmod 取代了旧的 WORKSPACE 机制,它允许定义模块和版本依赖,构建依赖图,运行扩展并定义 repos。Bzlmod 现为默认选项,而 Bazel 7 依然兼容之前的系统,但鼓励开发者在 Bazel 8 出现前迁移到新系统。
BwoB 模式通过仅下载必要的中间文件子集,减少了远程构建过程中的数据传输。此优化对于网络连接较差的环境特别有帮助,现已成为默认选项。
Skymeld 通过消除分析和执行阶段之间的障碍,允许目标独立完成分析后立即执行,从而提高了多目标构建的速度。
针对 Android 和 C++ 规则,Bazel 7 默认启用了基于平台的工具链解析,简化了工具链解析 API,避免了需要语言特定标志。Android 项目应放弃 --fat_apk_cpu 标志,转而使用 --android_platforms。
作者 Sergio De Simone 是资深软件工程师,在多个项目和公司有丰富经验,目前在 BigML, Inc. 负责 iOS 和 macOS 的开发。
原文链接:https://www.infoq.com/news/2023/12/bazel-7-released/
声明:本文为 InfoQ 翻译整理,未经许可禁止转载。
想要了解更多内容?
![](/theme/default/default/images/main/icon-jing.png)
![](https://cdn.easycorp.cn/rongpm/upload/202312/f_39217d624bb2b42ce8f6322ebd7e573a.png)
![](https://cdn.easycorp.cn/rongpm/upload/202312/f_39217d624bb2b42ce8f6322ebd7e573a.png)