10.22 Google自家多語言跨平臺建置系統Bazel釋出第一個正式版本

開源建置與測試工具Bazel終於發佈了1.0版本,Bazel原本為Google內部使用的工具,在2015年的時候對外釋出Alpha版本,經過了多年開發終於發佈了第一個正式版本。Bazel是類似於Make、Maven和Gradle等建置工具,使用高階人類可讀的建構語言,具有跨平臺跨語言的特性,並提供高度可擴展性。

Bazel採用了高階建置語言,以抽象、人類可讀的語言,描述項目建置屬性,Google提到,與其他工具不同的是,Bazel的運作利用了函數庫、腳本和資料集的概念,開發者不需要對編譯器或是連結器,撰寫複雜的個別呼叫。Bazel建置的速度很快,因為Bazel會緩存之前已經完成的工作,並追蹤檔案屬性和建置命令的改變,未來當項目需要重新建置的時候,Bazel僅會重建更改的部分,開發者還可以使用高度平行化與漸增編譯功能,進一步加速項目編譯的速度。

Google自家多語言跨平臺建置系統Bazel釋出第一個正式版本

支持多平臺與多語言讓Bazel成為一個非常靈活的工具,Bazel可以用同一個項目,為多個平臺包括桌面、服務器和移動裝置,建置二進位檔案以及可部署的套件,Bazel支持Java、C++、Android、iOS以及Go等各種語言平臺,而作業系統則支持Linux、macOS和Windows,無論是哪一種目標語言與平臺組合,開發者都可以用單一命令來建置和測試整項目個原始碼樹。

Google將Bazel設計成高度可擴展的架構,即便處理超過10萬個原始碼檔案,Bazel仍然能維持極高地效率,對於採用持續整合的企業,Bazel可同時處理多個代碼儲存庫,或是單一但龐大的儲存庫,能支持數萬使用者基礎,Bazel還可以進行分佈式遠端執行以及緩存服務。

1.0版本主要有三個更新,第一是開始使用語意版本控制,每個重大版本更新中間至少間隔三個月,每個月都會有次要版本更新,第二則是提供長期支持版本,第三則是更全面支持Angular、Android、Java以及C++,新增功能包括遠端執行與緩存、標準套件管理器以及第三方相依項目。

目前Google的多項大型開源項目包括Angular和TensorFlow都已經使用Bazel,使用者報告切換使用Bazel之後,測試時間減少3倍,且建置速度提高了10倍。


分享到:


相關文章: