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

Bazel採用了高階建置語言,以抽象、人類可讀的語言,描述專案建置屬性,Google提到,與其他工具不同的是,Bazel的運作利用了函式庫、腳本和資料集的概念,開發者不需要對編譯器或是連結器,撰寫複雜的個別呼叫。Bazel建置的速度很快,因為Bazel會快取之前已經完成的工作,並追蹤檔案內容和建置命令的改變,未來當專案需要重新建置的時候,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倍。


Advertisement

更多 iThome相關內容