瀏覽 Bazel 的大量指令列標記清單可能相當困難。本頁將著重於您必須瞭解的最重要標記。
實用的一般選項
下列標記應在指令列中明確設定。
檢舉 | 說明 |
---|---|
|
您可以將 .bazelrc 檔案中的標記整理成設定,例如用於偵錯或發布版本的設定。您可以使用 --config=<group> 選取其他配置群組。 |
|
Bazel 應盡可能繼續執行建構和測試。根據預設,Bazel 會立即失敗。 |
|
使用遠端執行或快取 (磁碟和遠端) 時,您可以向 Bazel 發出信號,表示您要下載「所有」 (中繼) 建構構件,如下所示:--remote_download_outputs=all |
|
將建構資訊 (使用者、時間戳記) 新增至二進位檔。 |
找出建構和測試問題
下列標記可協助您進一步瞭解 Bazel 建構或測試錯誤。
檢舉 | 說明 |
---|---|
|
顯示透過使用者定義、機器定義或專案定義的 .bazelrc 檔案隱含設定的標記。 |
|
根據預設,Bazel 會嘗試避免記錄垃圾訊息,並只針對在指令線上要求的套件和子套件,列印編譯器警告和 Starlark 偵錯輸出內容。如要停用所有篩選功能,請設定 --auto_output_filter=none 。 |
|
可讓您深入瞭解沙箱錯誤。如要進一步瞭解 Bazel 為何預設將建構作業置入沙箱,以及哪些項目會置入沙箱,請參閱沙箱說明文件。 |
|
無論是成功或失敗,這項指令都會顯示 Bazel 在建構期間執行的所有指令的完整清單 |
啟動
檢舉 | 說明 |
---|---|
|
您可以在 .bazelrc 檔案中指定預設的 Bazel 選項。如果有多個 .bazelrc 檔案,您可以新增 --bazelrc=<path to
the .bazelrc file> 來選取要使用的 .bazelrc 檔案。
|
|
限制 Bazel 伺服器使用的 RAM 用量。舉例來說,以下指令會將 Bazel 堆積大小限制為 3GB:--host_jvm_args=-Xmx3g |
|
控制 Bazel 的輸出樹狀結構。Bazel 不會在原始碼樹狀結構中儲存建構輸出內容 (包括記錄檔)。而是使用專屬的輸出樹狀結構。 |
Bazel 測試
下列旗標與 Bazel 測試相關
檢舉 | 說明 |
---|---|
|
讓 Java 測試在執行前等待偵錯工具連線。 |
|
執行測試的次數。舉例來說,如要執行 N 次測試,請新增 --runs_per_test=N 。這對於偵錯不穩定的測試,以及查看修正內容是否會導致測試一律通過,都相當實用。 |
|
指定輸出模式。根據預設,Bazel 會在本機記錄檔中擷取測試輸出內容。在重複執行失敗的測試時,您通常會使用 --test_output=streamed 即時查看測試輸出內容。 |
Bazel 執行
下列標記與 Bazel 執行作業相關。
檢舉 | 說明 |
---|---|
|
變更可執行檔的叫用方式。例如 --run_under="strace -c" 通常用於偵錯。 |
使用者專屬的 bazelrc 選項
下列標記與使用者專屬的 .bazelrc 選項相關。
檢舉 | 說明 |
---|---|
|
路徑指向 Bazel 可讀取及寫入動作和動作輸出內容的目錄。如果目錄不存在,系統會建立該目錄。您可以在多個分支或工作區之間共用建構成果,並在指令中加入 --disk_cache=<path> ,加快 Bazel 建構作業。 |
|
要執行的並行工作數量。這項設定通常只需要在使用遠端執行功能時,遠端建構叢集執行的工作數量超過本機核心數量時才需要。 |
|
限制本機執行動作所需的 CPU 或 RAM 用量。 |
|
讓沙箱在這個路徑下方建立沙箱目錄。根據預設,Bazel 會執行本機動作沙箱,這會為建構作業增加一些額外負擔。 |
專案專屬的 bazelrc 選項
下列標記與專案專屬的 .bazelrc 選項相關。
檢舉 | 說明 |
---|---|
|
在任何測試失敗的情況下,重試各項測試的次數上限為指定次數。這項功能在持續整合作業中特別實用。需要多次嘗試才能通過的測試,會在測試摘要中標示為「FLAKY」。 |
|
快取端點的 URI。設定遠端快取是加快 Bazel 建構作業的絕佳方法。可與本機磁碟快取搭配使用。 |
|
強制下載路徑符合此模式的遠端建構輸出內容,不受 --remote_download_outputs 設定影響。您可以重複使用這個旗標來指定多個模式。 |
|
遠端執行端點的 HOST 或 HOST:PORT 。如果您使用遠端執行服務,請傳遞這個值。您通常需要新增 --remote_instance_name=<name> 。 |
|
在遠端執行 API 中以 instance_name 形式傳遞的值。 |
|
如果指定時間戳記,系統會在 Bazel 產生的每則訊息中加入時間戳記,指定訊息顯示的時間。這在 CI 系統上非常實用,可讓您快速瞭解哪個步驟花費了多少時間。 |
|
即使使用遠端執行作業,在本機執行某些建構動作可能會更快。這取決於多項因素,例如建構叢集的容量、網路速度和網路延遲。 |