Bazel 標記一覽表

瀏覽 Bazel 的大量指令列標記清單可能相當困難。本頁將著重於說明您必須瞭解的最重要標記。

實用的一般選項

下列標記應在指令列中明確設定。

檢舉 說明

--config

您可以將 .bazelrc 檔案中的標記整理成設定,例如用於偵錯或發布版本的設定。您可以使用 --config=<group> 選取其他配置群組。

--keep_going

Bazel 應盡可能繼續執行建構和測試。根據預設,Bazel 會立即失敗。

--remote_download_outputs

使用遠端執行或快取 (磁碟和遠端) 時,您可以向 Bazel 發出信號,表示您要下載「所有」 (中繼) 建構構件,如下所示:
--remote_download_outputs=all
根據預設,Bazel 只會下載頂層構件,例如最終二進位檔,以及本機動作所需的中繼構件。

--stamp

將建構資訊 (使用者、時間戳記) 新增至二進位檔。

找出建構和測試問題

下列標記可協助您進一步瞭解 Bazel 建構或測試錯誤。

檢舉 說明

--announce_rc

顯示透過使用者定義、機器定義或專案定義的 .bazelrc 檔案隱含設定的標記。

--auto_output_filter

根據預設,Bazel 會嘗試避免記錄垃圾訊息,並只針對在指令線上要求的套件和子套件,列印編譯器警告和 Starlark 偵錯輸出內容。如要停用所有篩選功能,請設定 --auto_output_filter=none

--sandbox_debug

可讓您深入瞭解沙箱模式錯誤。如要進一步瞭解 Bazel 為何預設會將建構作業置入沙箱,以及哪些項目會置入沙箱,請參閱沙箱說明文件

--subcommands (-s)

無論是成功或失敗,都會顯示 Bazel 在建構期間執行的所有指令的完整清單

啟動

檢舉 說明

--bazelrc

您可以在 .bazelrc 檔案中指定預設的 Bazel 選項。如果有多個 .bazelrc 檔案,您可以新增 --bazelrc=<path to the .bazelrc file> 來選取要使用的 .bazelrc 檔案。

--host_jvm_args

限制 Bazel 伺服器使用的 RAM 用量。舉例來說,以下指令會將 Bazel 堆積大小限制為 3GB:
--host_jvm_args=-Xmx3g

--output_base

控制 Bazel 的輸出樹狀結構。Bazel 不會在原始碼樹狀結構中儲存建構輸出內容 (包括記錄檔)。而是使用專屬的輸出樹狀結構。

Bazel 測試

下列旗標與 Bazel 測試相關

檢舉 說明

--java_debug

讓 Java 測試在執行前等待偵錯工具連線。

--runs_per_test

執行測試的次數。舉例來說,如要執行 N 次測試,請新增 --runs_per_test=N。這對於偵錯不穩定的測試,以及查看修正內容是否會導致測試一律通過,都相當實用。

--test_filter

在重複執行單一測試方法時,這項旗標特別實用,例如當您所做的變更導致測試失敗時。您可以專注於失敗的特定測試,而不需要重新執行測試套件中的所有測試方法。這可讓您更快獲得意見回饋,並更有效率地進行偵錯。這個標記通常會與 --test_output=streamed 搭配使用,用於即時測試輸出。

--test_output

指定輸出模式。根據預設,Bazel 會在本機記錄檔中擷取測試輸出內容。當您對失敗的測試進行疊代時,通常會使用 --test_output=streamed 即時查看測試輸出內容。

Bazel 執行

下列標記與 Bazel 執行作業相關。

檢舉 說明

--run_under

變更可執行檔的叫用方式。例如 --run_under="strace -c" 通常用於偵錯。

使用者專屬的 bazelrc 選項

下列標記與使用者專屬的 .bazelrc 選項相關。

檢舉 說明

--disk_cache

路徑指向 Bazel 可讀取及寫入動作和動作輸出內容的目錄。如果目錄不存在,系統會建立該目錄。您可以在多個分支或工作區之間共用建構成果,並在指令中加入 --disk_cache=<path>,加快 Bazel 建構作業。

--jobs

要執行的並行工作數量。只有在使用遠端執行功能時,才需要執行這項操作,因為在這種情況下,遠端建構叢集會執行比本機核心更多的工作。

--local_resources

限制本機執行動作所需的 CPU 或 RAM 用量。

--sandbox_base

讓沙箱在這個路徑下方建立沙箱目錄。根據預設,Bazel 會執行本機動作沙箱,這會為建構作業增加一些額外負擔。

專案專屬的 bazelrc 選項

下列標記與專案專屬的 .bazelrc 選項相關。

檢舉 說明

--flaky_test_attempts

在任何測試失敗的情況下,重試各項測試的次數上限為指定次數。這在持續整合作業中特別實用。需要多次嘗試才能通過的測試,會在測試摘要中標示為「FLAKY」FLAKY

--remote_cache

快取端點的 URI。設定遠端快取是加快 Bazel 建構作業的好方法。可搭配本機磁碟快取使用。

--remote_download_regex

強制下載路徑符合此模式的遠端建構輸出內容,不受 --remote_download_outputs 設定影響。您可以重複使用這個旗標來指定多個模式。

--remote_executor

遠端執行端點的 HOSTHOST:PORT。如果您使用遠端執行服務,請傳遞這個值。您通常需要新增 --remote_instance_name=<name>

--remote_instance_name

在遠端執行 API 中以 instance_name 形式傳遞的值。

--show-timestamps

如果指定時間戳記,系統會在 Bazel 產生的每則訊息中加入時間戳記,指定訊息顯示的時間。這對 CI 系統來說非常實用,可讓您快速瞭解哪個步驟花費了多少時間。

--spawn_strategy

即使使用遠端執行作業,在本機執行某些建構動作可能會更快。這取決於建構叢集的容量、網路速度和網路延遲等因素。