Bazel 標記一覽表

回報問題 查看來源 Nightly · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

Bazel 的指令列標記清單非常龐大,瀏覽起來可能很吃力。本頁著重說明您需要瞭解的最重要標記。

實用的一般選項

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

檢舉 說明

--config

您可以將 .bazelrc 檔案中的標記整理成各種設定,例如偵錯或發布建構的設定。如要選取其他配置群組,請按一下 --config=<group>

--keep_going

Bazel 應盡可能繼續執行建構和測試作業。 根據預設,Bazel 會急切地失敗。

--remote_download_outputs

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

--stamp

Adds build info (user, timestamp) to binaries.

找出建構和測試問題

下列標記有助於深入瞭解 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 堆積大小限制為 3 GB:
--host_jvm_args=-Xmx3g

--output_base

控制 Bazel 的輸出樹狀結構。Bazel 不會在來源樹狀結構中儲存建構輸出內容,包括記錄檔。而是會使用不同的輸出樹狀結構。

Bazel 測試

下列旗標與 Bazel 測試相關

檢舉 說明

--java_debug

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

--runs_per_test

執行測試的次數。舉例來說,如要執行 N 次測試,請新增 --runs_per_test=N。這項功能有助於偵錯不穩定的測試,並查看修正項目是否能讓測試持續通過。

--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

如果測試失敗,系統會重試測試,次數上限為指定次數。這在持續整合時特別實用。如果測試需要多次嘗試才能通過,測試摘要中會標示為「不穩定」

--remote_cache

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

--remote_download_regex

強制下載路徑符合這個模式的遠端建構輸出內容,無論 --remote_download_outputs 設定為何。重複使用這個旗標即可指定多個模式。

--remote_executor

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

--remote_instance_name

要以 instance_name 形式傳遞的值,適用於遠端執行 API。

--show-timestamps

如果指定,系統會為 Bazel 產生的每則訊息加上時間戳記,指出訊息顯示的時間。在 CI 系統上,這項功能有助於快速瞭解每個步驟耗費的時間。

--spawn_strategy

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