Bazel 是開放原始碼的建構與測試工具,與 Make、Maven 和 Gradle 類似。 使用人類可讀的高階建構語言。Bazel 支援多種語言的專案,並為多個平台建構輸出內容。Bazel 支援 多個存放區以及大量使用者來進行大型程式碼集。
優點
Bazel 提供以下優點:
高階建構語言。Bazel 使用人類可讀的抽象化機制 概略說明專案的建構屬性 語意層級與其他工具不同的是,Bazel 是根據「概念」運作 程式庫、二進位檔、指令碼和資料集等項目, 將個別呼叫寫入到編譯器等工具的複雜度 連結器。
Bazel 速度快且穩定可靠。Bazel 會快取所有先前完成的工作 會追蹤檔案內容和建構指令的變更。這樣一來 才會知道何時需要重建內容 並且僅重新建構該物件如要進一步加快建構作業,您可以設定專案以高度平行和漸進的方式進行建構。
Bazel 是多平台Bazel 可在 Linux、macOS 和 Windows 上執行。Bazel 可從同一專案為多個平台 (包括電腦、伺服器和行動裝置) 建構二進位檔和可部署的套件。
Bazel 可擴充規模。Bazel 在處理建構作業時 來源檔案。它可與多個存放區和數萬個使用者群組搭配使用。
Bazel 是可擴充的。有許多語言是 您可以擴充 Bazel 以支援任何其他語言, 這個架構的重點在於
使用 Bazel
如要使用 Bazel 建構或測試專案,通常會執行下列操作:
設定 Bazel。下載並安裝 Bazel。
設定專案工作區,這是 Bazel 用來尋找建構輸入內容和
BUILD
檔案,以及儲存建構輸出內容的目錄。撰寫
BUILD
檔案,告訴 Bazel 要建構什麼內容,以及如何建構。如要編寫
BUILD
檔案,您可以使用 Starlark 是網域專屬的語言。(參閱範例) 請按這裡)。建構目標可指定 Bazel 將建構的一組輸入構件 Bazel 會使用建構規則建構容器 設定建構規則
建構規則指定 Bazel 要使用的建構工具,例如編譯器和 及其設定Bazel 提供多項建構規則,涵蓋支援平台上支援語言中最常見的構件類型。
透過指令列執行 Bazel。Bazel 會將輸出內容放置在工作區中
除了建構之外,您也可以使用 Bazel 執行 測試及查詢建構內容 追蹤程式碼中的依附元件
Bazel 建構程序
執行建構或測試時,Bazel 會執行以下操作:
Bazel 會快取先前所有的建構工作,因此 Bazel 可以找出並重複使用快取過的快取 並且只針對已變更的內容重新建構或重新測試。如要進一步確保正確性,您可以設定 Bazel 透過沙箱密封執行建構和測試,盡可能減少偏差並提高可重現性。
動作圖
動作圖表代表建構構件、構件之間的關係,以及 Bazel 將執行的建構動作。有了這張圖表,Bazel 就能追蹤檔案內容變更,以及建構或測試指令等動作的變更,並瞭解先前執行過哪些建構作業。您也可以透過這張圖表,輕鬆追蹤程式碼中的依附元件。
入門教學課程
如要開始使用 Bazel,請參閱「入門」或直接前往 Bazel 教學課程: