Bazel 是與 Make、Maven 和 Gradle 類似的開放原始碼建構和測試工具。採用人類可讀的高階建構語言。Bazel 支援多種語言的專案,可用來建構多個平台的輸出內容。Bazel 支援多個存放區和大量使用者的大型程式碼集。
優點
Bazel 提供以下優點:
高階建構語言。Bazel 會使用人類可讀的抽象語言,以高度語意層級描述專案的建構屬性。Bazel 與其他工具不同,會根據程式庫、二進位檔、指令碼和資料集的概念運作,讓您不必將個別呼叫寫入編譯器和連結器等工具。
Bazel 又快又可靠Bazel 會快取先前執行的所有工作,並追蹤檔案內容與建構指令的變更。如此一來,Bazel 就能知道有什麼需要重建,並且只進行重新建構。如要進一步加快建構速度,您可以設定專案,以高度平行且漸進式的方式建構。
Bazel 適用於多平台Bazel 可在 Linux、macOS 和 Windows 上執行。Bazel 可針對同一個專案為多個平台 (包括電腦、伺服器和行動裝置) 建構二進位檔和可部署套件。
Bazel 能靈活調度資源Bazel 在處理具有超過 10 萬個來源檔案的建構作業時,會維持靈活性。可以支援數萬個存放區和使用者群。
也能擴充 Bazel支援許多語言,您可以擴充 Bazel 以支援任何其他語言或架構。
使用 Bazel
如要使用 Bazel 建構或測試專案,您通常會執行下列操作:
設定 Bazel。下載並安裝 Bazel。
編寫
BUILD
檔案,指示 Bazel 要建構什麼內容以及建構方法。您可以使用網域專屬語言 Starlark 宣告建構目標,藉此編寫
BUILD
檔案。(請參閱這裡的範例)。建構目標會指定 Bazel 將建構的輸入構件及其依附元件、使用建構規則 Bazel 進行建構,以及設定建構規則的選項。
建構規則會指定 Bazel 使用的建構工具和連結器等建構工具,以及相關設定。Bazel 隨附許多建構規則,涵蓋支援平台上支援的語言中最常見的構件類型。
從指令列執行 Bazel。Bazel 會將輸出內容存放在工作區中。
除了建構外,您也可以使用 Bazel 執行測試及查詢建構作業,以便追蹤程式碼中的依附元件。
Bazel 建構程序
執行建構作業或測試時,Bazel 會執行以下操作:
由於系統會快取所有先前的建構工作,因此 Bazel 可以識別並重複使用快取的成果,並且只重新建構或重新測試已變更的項目。如要進一步強制執行正確性,您可以設定 Bazel 以完全透過沙箱機制執行建構作業和測試、盡量減少偏差問題,並最大化可重現性。
動作圖表
動作圖代表建構構件、構件之間的關係,以及 Bazel 將執行的建構動作。藉由這個圖表,Bazel 可以追蹤檔案內容變更以及動作 (例如建構或測試指令) 的變更,並且知道先前已完成建構工作。這個圖表也能讓您輕鬆在程式碼中追蹤依附元件。
入門教學課程
如要開始使用 Bazel,請參閱入門指南或直接跳到 Bazel 教學課程: