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

添加評論