回報問題 查看來源 Nightly · 8.3 · 8.2 · 8.1 · 8.0 · 7.6
Bazel 的指令列標記清單非常龐大,瀏覽起來可能很吃力。本頁著重說明您需要瞭解的最重要標記。
實用的一般選項
下列標記應在指令列中明確設定。
檢舉 | 說明 |
---|---|
|
您可以將 .bazelrc 檔案中的標記整理成各種設定,例如偵錯或發布建構的設定。如要選取其他配置群組,請按一下 --config=<group> 。
|
|
Bazel 應盡可能繼續執行建構和測試作業。 根據預設,Bazel 會急切地失敗。 |
|
使用遠端執行或快取 (磁碟和遠端),您可以向 Bazel 發出信號,表示您要下載所有 (中繼) 建構構件,方法如下:
--remote_download_outputs=all |
|
Adds build info (user, timestamp) to binaries. |
找出建構和測試問題
下列標記有助於深入瞭解 Bazel 建構或測試錯誤。
檢舉 | 說明 |
---|---|
|
顯示透過使用者定義、機器定義或專案定義的 .bazelrc 檔案隱含設定的標記。 |
|
根據預設,Bazel 會嘗試防止記錄檔垃圾訊息,且只會列印在指令列上要求的套件和子套件的編譯器警告和 Starlark 偵錯輸出內容。如要停用所有篩選功能,請設定 --auto_output_filter=none 。
|
|
可深入瞭解沙箱錯誤。如要進一步瞭解 Bazel 預設會對建構作業進行沙箱處理的原因,以及沙箱處理的內容,請參閱沙箱處理說明文件。 |
|
顯示 Bazel 在建構期間執行的所有指令完整清單,無論建構成功或失敗 |
啟動
檢舉 | 說明 |
---|---|
|
您可以在 .bazelrc 檔案中指定預設的 Bazel 選項。如果有多個 .bazelrc 檔案,您可以新增 --bazelrc=<path to
the .bazelrc file> ,選取要使用的 .bazelrc 檔案。
|
|
限制 Bazel 伺服器使用的 RAM 用量。
舉例來說,下列指令會將 Bazel 堆積大小限制為 3 GB:
--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 選項有關。
檢舉 | 說明 |
---|---|
|
如果測試失敗,系統會重試測試,次數上限為指定次數。這在持續整合時特別實用。如果測試需要多次嘗試才能通過,測試摘要中會標示為「不穩定」。 |
|
快取端點的 URI。設定遠端快取是加快 Bazel 建構作業的好方法。可與本機磁碟快取合併使用。 |
|
強制下載路徑符合這個模式的遠端建構輸出內容,無論 --remote_download_outputs 設定為何。重複使用這個旗標即可指定多個模式。 |
|
HOST 或 HOST:PORT 遠端執行端點。如果您使用遠端執行服務,請傳遞這個值。您通常需要新增 --remote_instance_name=<name> 。
|
|
要以 instance_name 形式傳遞的值,適用於遠端執行 API。
|
|
如果指定,系統會為 Bazel 產生的每則訊息加上時間戳記,指出訊息顯示的時間。在 CI 系統上,這項功能有助於快速瞭解每個步驟耗費的時間。 |
|
即使使用遠端執行,在本機執行某些建構動作可能還是比較快。這取決於建構叢集的容量、網路速度和網路延遲等因素。 |