发布 Bazel 1.0 构建系统

由...所提交 发布开放式组装工具 巴泽尔1.0,由 Google 的工程师开发,用于组装公司的大部分内部项目。版本 1.0 标志着向语义版本控制的过渡,并且还因引入大量破坏向后兼容性的更改而引人注目。项目代码 分发者 在 Apache 2.0 下获得许可。

Bazel 通过运行必要的编译器和测试来构建项目。该构建系统是从头开始设计的,旨在以最佳方式构建 Google 项目,包括非常大的项目以及包含多种编程语言代码、需要大量测试并且针对多个平台构建的项目。它支持用 Java、C++、Objective-C、Python、Rust、Go 和许多其他语言构建和测试代码,以及为 Android 和 iOS 构建移动应用程序。支持针对不同平台和架构使用单个程序集文件;例如,一个未经更改的程序集文件既可以用于服务器系统,也可以用于移动设备。

Bazel 的显着特点包括装配过程的高速、可靠性和可重复性。为了实现高构建速度,Bazel 在构建过程中积极使用缓存和并行化技术。 BUILD 文件必须完全定义所有依赖关系,在此基础上做出在更改后重建组件的决策(仅重建更改的文件)并并行化组装过程。工具还确保可重复组装,即在开发人员的机器上构建项目的结果将与在第三方系统(例如持续集成服务器)上构建的结果完全相同。

与 Make 和 Ninja 不同,Bazel 使用更高级别的方法来构建汇编规则,其中不是定义命令到正在构建的文件的绑定,而是使用更抽象的现成块,例如“在C++”、“用 C++ 构建库”或“运行 C++ 测试”,以及识别目标和构建平台。在 BUILD 文本文件中,项目组件被描述为一堆库、可执行文件和测试,而没有在单个文件和编译器调用命令级别进行详细说明。附加功能是通过连接扩展的机制来实现的。

来源: opennet.ru

添加评论