指令列參考資料

bazel [<startup options>] <command> [<args>]
bazel [<startup options>] <command> [<args>] -- [<target patterns>]
如要瞭解目標模式語法,請參閱使用手冊

選項語法

選項可透過不同方式傳送至 Bazel。需要值的選項可以透過等號或空格來傳遞:

--<option>=<value>
--<option> <value>
有些選項僅包含單一字元的簡短格式;在這種情況下,短格式必須以一個破折號和空格傳送。
-<short_form> <value>

布林值選項可啟用,如下所示:

--<option>
--<option>=[true|yes|1]
停用,如下所示:
--no<option>
--<option>=[false|no|0]

Tristate 選項通常會預設為自動,您可以按照下列步驟強制啟用:

--<option>=[true|yes|1]
或強制停用:
--no<option>
--<option>=[false|no|0]

指令

analyze-profile 分析建構設定檔資料。
aquery 分析指定目標並查詢動作圖。
build 建立指定目標。
canonicalize-flags 以標準化方式呈現餅乾選項清單。
clean 移除輸出檔案,並且可選擇停止伺服器。
coverage 產生指定測試目標的程式碼涵蓋率報表。
cquery 使用設定來載入、分析及查詢指定的目標。
dump 轉儲 Bazel 伺服器程序的內部狀態。
fetch 擷取目標必備的外部存放區。
help 列印指令或索引的說明。
info 顯示 Bazel 伺服器的執行階段資訊。
license 列印這個軟體的授權。
mobile-install 在行動裝置上安裝目標。
mod 查詢 Bzlmod 外部依附元件圖表
print_action 列印編譯檔案所需的指令列引數。
query 這個外掛程式能執行依附關係圖查詢。
run 執行指定目標。
shutdown 停止 Bazel 伺服器。
sync 同步處理工作區檔案中指定的所有存放區
test 建構並執行指定的測試目標。
vendor 將外部存放區擷取到由 標記 --vendor_dir 指定的特定資料夾。
version 列印 Oracle 的版本資訊。

開機選項

這些選項會顯示在指令之前,並由用戶端剖析:
--[no]autodetect_server_javabase預設值:「true」
傳遞 --noautodetect_server_javabase 時,Bazel 不會改回使用本機 JDK 來執行 bazel 伺服器。
標記:affects_outputsloses_incremental_state
--[no]batch 預設值:「false」
如果已設定,Bazel 將以沒有伺服器的用戶端程序的形式執行,而非以標準用戶端/伺服器模式執行。此伺服器已不適用,日後將會移除。如果您不想繼續使用伺服器,建議您明確關閉伺服器。
標記:loses_incremental_statebazel_internal_configurationdeprecated
--[no]batch_cpu_scheduling 預設值:「false」
僅限 Linux;請使用 Blaze 的「批次」 CPU 排程。這項政策對非互動式工作負載來說十分實用,但不希望降低執行個體的值。請參閱「man 2 sched_setscheduler」。如果設為 false,代表 Bazel 不會執行系統呼叫。
標記:host_machine_resource_optimizations
--bazelrc=<path> 預設:查看說明
使用者 .bazelrc 檔案的位置,內含 Bazel 選項的預設值。/dev/null 表示將忽略所有後續的 `--bazelrc`。這有助於停用使用者 rc 檔案的搜尋功能,例如在發布子版本中。您也可以多次指定這個選項。例如使用 `--bazelrc=x.rc --bazelrc=y.rc --bazelrc=/dev/null --bazelrc=z.rc`、1) x.rc 和 y.rc 可讀取。2) 因為先前的 /dev/null 而忽略 z.rc。 如未指定,Bazel 會在以下兩個位置使用找到的第一個 .bazelrc 檔案:工作區目錄和使用者的主目錄。注意:指令列選項一律會取代 bazelrc 中的任何選項。
標記:changes_inputs
--[no]block_for_lock預設值:「true」
如果傳遞 --noblock_for_lock,Bazel 不會等待執行中的指令執行,而是立即結束。
標記:eagerness_to_exit
--[no]client_debug 預設值:「false」
如果為 true,將用戶端的偵錯資訊記錄為 stderr。變更這個選項不會導致伺服器重新啟動。
標記:affects_outputsbazel_monitoring
--connect_timeout_secs=<an integer> 預設值:「30」
每次用戶端嘗試連線至伺服器時,等待的時間長度
標記: bazel_internal_configuration
--digest_function=<hash function> 預設:查看說明
計算檔案摘要時使用的雜湊函式。
標記:loses_incremental_statebazel_internal_configuration
--[no]expand_configs_in_place預設值:「true」
變更 --config 旗標的展開,改為直接完成,而不是在一般弧形選項和指令列指定選項之間的固定點展開中。
標記:no_opdeprecated
--failure_detail_out=<path> 預設:查看說明
如果已設定,就會指定伺服器在伺服器發生錯誤時寫入 failed_detail protobuf 訊息的位置,且無法像平常一樣透過 gRPC 回報。否則,位置就會是 ${OUTPUT_BASE}/failure_detail.rawproto。
標記:affects_outputsloses_incremental_state
--[no]home_rc預設值:「true」
是否要在 $HOME/.bazelrc 尋找首頁 bazelrc 檔案
標記: changes_inputs
--[no]idle_server_tasks預設值:「true」
在伺服器處於閒置狀態時執行 System.gc()
標記:loses_incremental_statehost_machine_resource_optimizations
--[no]ignore_all_rc_files 預設值:「false」
無論其他 rc 修改旗標的值為何,都會停用所有 rc 檔案,即使啟動選項清單之後才顯示這些標記也一樣。
標記:changes_inputs
--io_nice_level={-1,0,1,2,3,4,5,6,7} 預設值:「-1」
僅在 Linux 上;使用 sys_ioprio_set 系統呼叫,將 IO 排程設為介於 0 到 7 之間,以獲得最佳 IO 排程。0 代表最高優先順序,7 代表最低。預計排程器只會在優先順序為 4 時執行。如果設為負值,Bazel 就不會執行系統呼叫。
標記:host_machine_resource_optimizations
--local_startup_timeout_secs=<an integer> 預設值:「120」
用戶端等待連線至伺服器的時間長度上限
標記: bazel_internal_configuration
--macos_qos_class=<a string> 預設值:「default」
設定 macOS 伺服器上的 QoS 服務類別。這個標記不會影響所有其他平台,但支援確保 rc 檔案可以在不進行變更的情況下共用。可能的值包括:使用者互動、使用者啟動、預設、公用程式和背景。
標記:host_machine_resource_optimizations
--max_idle_secs=<integer> 預設值:「10800」
建構伺服器在等待前等待閒置狀態的秒數。0 表示伺服器永遠不會關閉。這只會在伺服器啟動時讀取,變更這個選項不會導致伺服器重新啟動。
標記:eagerness_to_exitloses_incremental_state
--output_base=<path> 預設:查看說明
如果已設定,會指定要寫入所有建構輸出內容的輸出位置。否則位置將會是 ${OUTPUT_ROOT}/_blaze_${USER}/${MD5_OF_WORKSPACE_ROOT}。注意:如果您針對這個值指定下一個 Bazel 叫用的選項,就會啟動新的 Bazel 伺服器。Bazel 在每個指定的輸出基礎中只會啟動一個伺服器。一般來說,每個工作區會有一個輸出基礎。不過,如果採用這個選項,每個工作區可能會有多個輸出基礎,因此會在同一部機器上為同一個用戶端同時執行多個建構作業。如要瞭解如何關閉 Bazel 伺服器,請參閱「bazel 協助關閉」一節。
標記:affects_outputsloses_incremental_state
--output_user_root=<path> 預設:查看說明
編寫所有建構輸出內容的使用者專屬目錄。根據預設,這是 $USER 的函式,但只要指定常數,即可在協作使用者之間共用建構輸出內容。
標記:affects_outputsloses_incremental_state
--[no]preemptible 預設值:「false」
如果為 true,則在啟動其他指令時可能會遭到先佔。
標記:eagerness_to_exit
--server_jvm_out=<path> 預設:查看說明
伺服器 JVM 輸出內容的寫入位置。如未設定,則會預設為 output_base 中的位置。
標記:affects_outputsloses_incremental_state
--[no]shutdown_on_low_sys_mem 預設值:「false」
如果已設定 max_idle_secs,且建構伺服器已閒置一段時間,請在系統可用 RAM 不足時關閉伺服器。僅限 Linux。
標記:eagerness_to_exitloses_incremental_state
--[no]system_rc預設值:「true」
是否要尋找整個系統層級的 bazelrc。
標記:changes_inputs
--[no]unlimit_coredumps 預設值:「false」
將軟體核心傾印限制提高至硬性限制,以在常見情況下提供伺服器 (包括 JVM) 和用戶端的核心傾印。請在 bazelrc 中將這個旗標保留一次,然後忘記留意,這樣才能在實際遇到觸發這類條件時取得核心傾印。
標記:bazel_internal_configuration
--[no]watchfs 預設值:「false」
如果為 true,bazel 會嘗試使用作業系統的檔案監控服務來偵測本機變更,而不是掃描每個檔案的變更。
標記:deprecated
如果設為 True,系統會在 Windows 上建立真正的符號連結,而不是複製檔案。必須使用 Windows 開發人員模式,且 Windows 10 版本 1703 或以上版本。
標記:bazel_internal_configuration
--[no]workspace_rc預設值:「true」
是否要在 $workspace/.bazelrc 中尋找工作區 Bazelrc 檔案
標記: changes_inputs
其他選項未分類:
會累積 --host_jvm_args=<jvm_arg> 個用途
傳遞至執行 Blaze 的 JVM 的旗標。
--host_jvm_debug
新增一些額外的 JVM 啟動旗標,讓 JVM 在啟動期間等待,直到您從符合 JDWP 規範的偵錯工具 (例如 Eclipse) 連線至通訊埠 5005 為止。
擴展至:
  --host_jvm_args=-Xdebug
  --host_jvm_args=-Xrunjdwp:transport=dt_socket,server=y,address=5005
--server_javabase=<jvm path> 預設值:「」
用來執行 Bazel 的 JVM 路徑。

所有指令的通用選項

控制建構執行作業的選項:
--experimental_ui_max_stdouterr_bytes=<an integer in (-1)-1073741819 range> 預設值:「1048576」
將列印至控制台的 stdout / stderr 檔案大小上限。-1 表示無限制。
標記:execution
如果設為 True,系統會允許上傳至遠端或磁碟快取的符號連結。
標記:executionincompatible_change
如果設為 True,Bazel 將一律上傳符號連結,例如遠端或磁碟快取。否則,系統不會將相對符號連結 (僅限這些符號) 上傳為指向目標的檔案或目錄。
標記:executionincompatible_change
設定動作執行工具鍊的選項:
--[no]incompatible_enable_proto_toolchain_resolution 預設值:「false」
如果為 true,proto lang 規則會定義 rules_proto、rules_java、rules_cc 存放區中的工具鍊。
標記:loading_and_analysisincompatible_change
可讓使用者設定預定輸出內容,且影響其值 (而非存在) 的選項:
--bep_maximum_open_remote_upload_files=<an integer> 預設值:「-1」
上傳 BEP 構件時允許的開啟檔案數量上限。
標記:affects_outputs
--remote_download_all
將所有遠端輸出內容下載至本機電腦。這個標記是 --remote_download_outputs=all 的別名。
展開至:
  --remote_download_outputs=all

標記: affects_outputs
--remote_download_minimal
系統不會將任何遠端建構輸出內容下載至本機電腦。這個標記是 --remote_download_outputs=minimal 的別名。
展開至:
  --remote_download_outputs=minimal

標記: affects_outputs
--remote_download_outputs=<all, minimal or toplevel> 預設值:「頂層」
如果設為「minimal」,系統不會將遠端建構輸出內容下載至本機電腦,但本機動作所需的輸出內容除外。如果設為「頂層」時的行為與「最小」相同,差別只在於該設定也會將頂層目標的輸出內容下載到本機電腦。如果網路頻寬有瓶頸,這兩種選項都能大幅縮短建構時間。
標記:affects_outputs
建立符號連結,而不是將遠端建構輸出內容下載到本機電腦。符號連結的目標可使用範本字串的形式指定。這個範本字串可能包含 {hash} 和 {size_bytes},可分別擴充為物件的雜湊值和大小 (以位元組為單位)。舉例來說,這些符號連結可能指向 FUSE 檔案系統,而該系統可隨選從 CAS 載入物件。
標記:affects_outputs
--remote_download_toplevel
只將頂層目標的遠端輸出內容下載至本機電腦。這個標記是 --remote_download_outputs=toplevel 的別名。
展開至:
  --remote_download_outputs=toplevel

標記: affects_outputs
會累積 --repo_env=<a 'name=value' assignment with an optional value part> 個用途
指定僅適用於存放區規則的其他環境變數。請注意,存放區規則仍會看到完整環境,但這樣一來,即使不再使動作圖表失效,也能透過選項將設定資訊傳送至存放區。
標記:action_command_lines
會影響 Bazel 強制執行有效建構輸入內容 (規則定義、旗標組合等) 的選項:
--[no]check_bzl_visibility預設值:「true」
如果停用這項政策,.bzl 載入瀏覽權限錯誤會降至警告。
標記:build_file_semantics
這個選項會影響 Starlark 語言的語意,或是 BUILD 檔案、.bzl 檔案或 WORKSPACE 檔案使用的建構 API。
--[no]enable_bzlmod預設值:「true」
如果為 true,則會啟用 Bzlmod 依附元件管理系統,優先使用 WORKSPACE。詳情請參閱 https://bazel.build/docs/bzlmod。
標記:loading_and_analysis
--[no]enable_workspace預設值:「true」
如果為 true,系統會針對外部依附元件啟用舊版 WORKSPACE 系統。詳情請參閱 https://bazel.build/external/overview。
標記:loading_and_analysis
--[no]experimental_action_resource_set預設值:「true」
如果設為 True,ctx.actions.run() 和 ctx.actions.run_shell() 會接受本機執行所需的 resource_set 參數。否則記憶體用量會預設為 250 MB,CPU 則是 1 個 CPU。
標記:executionbuild_file_semanticsexperimental
--[no]experimental_bzl_visibility預設值:「true」
如果啟用此功能,系統會新增「visibility()」函式,以便 .bzl 檔案在頂層評估期間呼叫,以便設定其瀏覽權限,以便用於 load() 陳述式。
標記:loading_and_analysisexperimental
--[no]experimental_cc_shared_library 預設值:「false」
如果設為 True,即可使用 cc_shared_library 規則所需的規則屬性和 Starlark API 方法
標記: build_file_semanticsloading_and_analysisexperimental
--[no]experimental_disable_external_package 預設值:「false」
如果設為 True,系統就不會再提供自動產生的 //外部套件。Bazel 仍無法剖析「外部/BUILD」檔案,但 glob 可以從未命名的套件傳入外部/。
標記:loading_and_analysisloses_incremental_stateexperimental
--[no]experimental_enable_android_migration_apis 預設值:「false」
如果設為 True,系統會啟用必要的 API,以便支援 Android Starlark 遷移作業。
標記:build_file_semantics
--[no]experimental_enable_first_class_macros 預設值:「false」
如果設為 True,系統會啟用「macro()」建構來定義第一類巨集。
標記:build_file_semantics
--[no]experimental_enable_scl_dialect 預設值:「false」
如果設為 True,.scl 檔案可能會用於 load() 陳述式。
標記:build_file_semantics
--[no]experimental_google_legacy_api 預設值:「false」
如果設為 True,就會顯示一些與 Google 舊版程式碼相關的 Starlark 建構 API 實驗性項目。
標記:loading_and_analysisexperimental
--[no]experimental_isolated_extension_usages 預設值:「false」
如果為 true,則在 <a href="https://bazel.build/rules/lib/globals/module#use_extension"><code>use_extension</code></a> 函式中啟用<code>isolate</code> 參數。
標記:loading_and_analysis
--[no]experimental_java_library_export 預設值:「false」
如果啟用,表示可使用 Experimental_java_library_export_do_not_use 模組。
標記:loading_and_analysisincompatible_change
--[no]experimental_platforms_api 預設值:「false」
如果設為 true,多個平台相關 Starlark API 適合用於偵錯。
標記:loading_and_analysisexperimental
--[no]experimental_repo_remote_exec 預設值:「false」
如果設為 True,repo_rule 將取得部分遠端執行功能。
標記:build_file_semanticsloading_and_analysisexperimental
--[no]experimental_sibling_repository_layout 預設值:「false」
如果設為 True,系統會將非主要存放區當做執行根目錄中主要存放區的符號連結。也就是說,所有存放區都是 $output_base/execution_root 目錄的直接子項。這會造成為實際頂層「外部」目錄釋出 $output_base/execution_root/__main__/external 的副作用。
標記:action_command_linesbazel_internal_configurationloading_and_analysisloses_incremental_stateexperimental
--[no]incompatible_allow_tags_propagation預設值:「true」
如果設為 True,系統會將標記從目標傳播至動作的執行要求;否則,系統不會推送標記。詳情請參閱 https://github.com/bazelbuild/bazel/issues/8830。
標記:build_file_semanticsexperimental
--[no]incompatible_always_check_depset_elements預設值:「true」
檢查所有建構函式中,新增至解碼的元素是否有效。元素不可變動,但以往 depset(direct=...) 建構函式忘記檢查。在 depset 元素中使用元組而非清單。詳情請參閱 https://github.com/bazelbuild/bazel/issues/10313。
標記:build_file_semanticsincompatible_change
如果設為 True,Bazel 就不會再從 links_context.library_to_link 傳回清單,改為傳回 depset。
標記:loading_and_analysisincompatible_change
--[no]incompatible_disable_objc_library_transition預設值:「true」
停用 objc_library 的自訂轉場效果,並改為沿用頂層目標
標記: build_file_semanticsincompatible_change
--[no]incompatible_disable_starlark_host_transitions 預設值:「false」
如果設為 True,規則屬性就無法設定「cfg = "host"」。規則則應改為設定「cfg = exec」。
標記:loading_and_analysisincompatible_change
--[no]incompatible_disable_target_default_provider_fields 預設值:「false」
如果設為 True,使用者就無法透過欄位語法在「目標」物件中存取提供者。請改用提供者金鑰語法。舉例來說,請使用「ctx.attr.dep[MyInfo]」,取代透過「ctx.attr.dep.my_info」從規則實作函式內存取「my_info」。詳情請參閱 https://github.com/bazelbuild/bazel/issues/9014。
標記:build_file_semanticsincompatible_change
--[no]incompatible_disable_target_provider_fields 預設值:「false」
如果設為 True,系統會停止透過欄位語法使用預設提供者的功能。請改用提供者金鑰語法。例如,不要使用「ctx.attr.dep.files」存取「files」,請使用「ctx.attr.dep[DefaultInfo].files」存取「ctx.attr.dep[DefaultInfo].files」,詳情請參閱 https://github.com/bazelbuild/bazel/issues/9014。
標記:build_file_semanticsincompatible_change
--[no]incompatible_disallow_empty_glob 預設值:「false」
如果設為 True,glob() 的「allow_empty」引數預設值為 False。
標記:build_file_semanticsincompatible_change
--[no]incompatible_disallow_struct_provider_syntax 預設值:「false」
如果設為 True,規則實作函式可能無法傳回結構。而是必須改為傳回提供者執行個體的清單。
標記:build_file_semanticsincompatible_change
--[no]incompatible_enable_deprecated_label_apis預設值:「true」
啟用後,即可使用某些已淘汰的 API (native.repository_name、Label.workspace_name、Label.relative)。
標記:loading_and_analysis
--[no]incompatible_existing_rules_immutable_view預設值:「true」
如果設為 True, native.existing_rule 和 native.existing_rules 都會傳回輕度不可變動的檢視畫面物件,而非可變動索引。
標記:build_file_semanticsloading_and_analysisincompatible_change
--[no]incompatible_fail_on_unknown_attributes預設值:「true」
如果啟用這個選項,含有不明屬性設為「無」的目標就會失敗。
標記:loading_and_analysisincompatible_change
--[no]incompatible_fix_package_group_reporoot_syntax預設值:「true」
在 package_group 的「packages」屬性中,變更「//...」值的含義,以參照目前存放區中的所有套件,而不是任何存放區中的所有套件。您可以使用特殊值「public」取代「//...」,藉此取得舊行為。如要使用這個標記,您必須一併啟用 --incompatible_package_group_has_public_syntax。
標記:build_file_semanticsincompatible_change
--[no]incompatible_java_common_parameters預設值:「true」
如果設為 True,系統會移除所有 Pack_sources 和 host_javabase 中的 output_jar 和 host_javabase 參數。
標記:build_file_semanticsincompatible_change
--[no]incompatible_merge_fixed_and_default_shell_env預設值:「true」
如果啟用這個選項,凡是同時指定「env」和「use_default_shell_env = True」的 ctx.actions.run 和 ctx.actions.run_shell 動作,都會使用從預設殼層環境取得的值 (覆寫傳遞至 env 的值)。如果停用這項政策,系統會完全忽略「env」的值。
標記:loading_and_analysisincompatible_change
--[no]incompatible_no_attr_license預設值:「true」
如果設為 True,系統會停用「attr.license」函式。
標記:build_file_semanticsincompatible_change
--[no]incompatible_no_implicit_file_export 預設值:「false」
如果已設定 (已使用) 來源檔案,除非明確匯出,否則系統會將檔案視為私人檔案。請參閱 https://github.com/bazelbuild/proposals/blob/master/designs/2019-10-24-file-visibility.md
標記:build_file_semanticsincompatible_change
--[no]incompatible_no_rule_outputs_param 預設值:「false」
如果設為 True,系統會停用 Star() 函式的「outputs」參數。
標記:build_file_semanticsincompatible_change
--[no]incompatible_package_group_has_public_syntax預設值:「true」
在 package_group 的「packages」屬性中,允許寫入「public」或「private」來分別參照所有套件,或是沒有套件。
標記:build_file_semanticsincompatible_change
--[no]incompatible_require_linker_input_cc_api預設值:「true」
如果設為 True,建立規則「create_linking_context」時,會需要使用 linker_inputs,而非 libraries_to_link。系統會一併停用舊版 link_context 的 getter,改為能使用 linker_inputs。
標記:build_file_semanticsloading_and_analysisincompatible_change
--[no]incompatible_run_shell_command_string預設值:「true」
如果設為 True, actions.run_shell 的指令參數只會接受字串
標記:build_file_semanticsincompatible_change
--[no]incompatible_stop_exporting_build_file_path 預設值:「false」
如果設為 True,就無法使用已淘汰的 ctx.build_file_path。您可以改用 ctx.label.package +「/BUILD」。
標記:loading_and_analysisincompatible_change
--[no]incompatible_stop_exporting_language_modules 預設值:「false」
如果啟用這項設定,使用者的 .bzl 檔案中將無法使用特定語言特定模組 (例如「cc_common」),並且只能透過各自的規則存放區呼叫。
標記:loading_and_analysisincompatible_change
--[no]incompatible_struct_has_no_methods預設值:「true」
停用 struct 的 to_json 和 to_proto 方法,這會對結構欄位命名空間造成負面影響。如果是 JSON,請改用 json.encode 或 json.encode_indent,在 textproto 中則使用 proto.encode_text。
標記:build_file_semanticsincompatible_change
--[no]incompatible_top_level_aspects_require_providers 預設值:「false」
如果設為 True,頂層部分將遵循其必要供應商,且只會在頂層目標執行,而頂層目標必須符合規定的提供者要求提供者的頂層目標。
標記:loading_and_analysisincompatible_change
--[no]incompatible_unambiguous_label_stringification預設值:「true」
如果為 true,Bazel 會以字串形式將 @//foo:bar 標籤變成 @//foo:bar,而不是 //foo:bar。這只會影響 str()、% 運算子等的行為;repr() 的行為維持不變。詳情請參閱 https://github.com/bazelbuild/bazel/issues/15916。
標記:loading_and_analysisincompatible_change
--[no]incompatible_use_cc_configure_from_rules_cc 預設值:「false」
如果設為「是」,Bazel 將不會再允許使用 @bazel_tools 的 cc_configure。如需詳細資訊和遷移操作說明,請前往 https://github.com/bazelbuild/bazel/issues/10134。
標記:loading_and_analysisincompatible_change
--max_computation_steps=<a long integer> 預設值:「0」
BUILD 檔案可執行的 Starlark 運算步驟數量上限 (零表示無限制)。
標記:build_file_semantics
--nested_set_depth_limit=<an integer> 預設值:「3500」
內部圖表上限 (又稱為 NestedSet),超出此上限,depset() 建構函式就會失敗。
標記:loading_and_analysis
會觸發建構時間最佳化的選項:
--[no]heuristically_drop_nodes 預設值:「false」
如果設為 True,Blaze 會在相關的 File 和 DirectoryListing 節點完成後移除 FileState 和 DirectoryListingState 節點,以節省記憶體。預期未來需要這些節點的情況比較不會發生。如果是,計畫會重新評估。
標記:loses_incremental_state
--[no]incompatible_do_not_split_linking_cmdline預設值:「true」
設為 True 時,Bazel 不會再修改用於連結的指令列標記,也不會決定要將哪些標記傳送至參數檔案,哪些則不會。詳情請參閱 https://github.com/bazelbuild/bazel/issues/7670。
標記:loading_and_analysisincompatible_change
--[no]keep_state_after_build預設值:「true」
如果設為 False,Blaze 會在建構完成時捨棄這個建構作業的記憶體內狀態。後續版本不會有任何相關增幅。
標記:loses_incremental_state
--[no]track_incremental_state預設值:「true」
如果設為 false,Blaze 不會保留允許在漸進式建構作業中作廢及重新評估的資料,以便節省這個版本的記憶體。後續版本不會有任何相關增幅。通常在將這個選項設為 false 時,會改為指定 --batch。
標記: loses_incremental_state
影響記錄詳細程度、格式或位置的選項:
--[no]announce_rc 預設值:「false」
是否要發布弧形選項。
標記:affects_outputs
--[no]attempt_to_print_relative_paths 預設值:「false」
輸出郵件的位置部分時,請嘗試使用相對於工作區目錄或 --package_path 指定其中一個目錄的路徑。
標記:terminal_output
--bes_backend=<a string> 預設值:「」
以 [SCHEME://]HOST[:PORT] 格式指定建構事件服務 (BES) 後端端點。預設設定為停用 BES 上傳功能。支援的配置為 grpc 和 grpcs (已啟用 TLS 的 grpc)。如未提供配置,Bazel 會假設使用 gpc。
標記:affects_outputs
--[no]bes_check_preceding_lifecycle_events 預設值:「false」
在 PublishBuildToolEventStreamRequest 上設定 check_preceding_lifecycle_events_代表,這會指示 BES 檢查先前是否收到 InvocationBegined 和 BuildEnqueued 事件,與目前工具事件相符。
標記:affects_outputs
會累積 --bes_header=<a 'name=value' assignment> 個用途
以 NAME=VALUE 表單中指定標頭,並會納入 BES 要求中。只要多次指定旗標,即可傳遞多個標頭。系統會將相同名稱的多個值轉換為以半形逗號分隔的清單。
標記:affects_outputs
--bes_instance_name=<a string> 預設:查看說明
指定 BES 將保留已上傳 BEP 的執行個體名稱。預設值為空值。
標記:affects_outputs
會累積 --bes_keywords=<comma-separated list of options> 個用途
指定要新增至 BES 的預設關鍵字組合通知關鍵字 (「command_name=<command_name> ", "protocol_name=BEP」)。預設值為無。
標記:affects_outputs
--[no]bes_lifecycle_events預設值:「true」
指定是否要發布 BES 生命週期事件。(預設為「true」)。
標記:affects_outputs
--bes_oom_finish_upload_timeout=<An immutable length of time.> 預設值:「10 分鐘」
指定 OOM 上傳 BES/BEP 時應等待多久。這個標記可在 JVM 嚴重 GC 輾轉現象時終止,且無法在任何使用者執行緒上進行。
標記:bazel_monitoring
--bes_outerr_buffer_size=<an integer> 預設值:「10240」
指定要在 BEP 處理的 stdout 或 stderr 大小上限,直到其回報為進度事件。即使個別寫入作業的值大於 --bes_outerr_chunk_size 也無法超過指定值,系統仍會在單一事件中回報。
標記:affects_outputs
--bes_outerr_chunk_size=<an integer> 預設值:「1048576」
指定要在單一訊息中傳送至 BEP 的 stdout 或 stderr 大小上限。
標記:affects_outputs
--bes_proxy=<a string> 預設:查看說明
透過 Proxy 連線至建構事件服務。目前這個旗標只能用來設定 Unix 網域通訊端 (unix:/path/to/socket),
--bes_results_url=<a string> 預設值:「」
指定基準網址,可讓使用者查看串流至 BES 後端的資訊。Bazel 會將叫用 ID 附加的網址輸出到終端機。
標記:terminal_output
會累積 --bes_system_keywords=<comma-separated list of options> 個用途
指定要直接加入的通知關鍵字清單,但不含「user_keyword=」前置字元,因為由 --bes_keyword 提供的關鍵字不含「user_keyword=」前置字元。適合在呼叫 PublishLifecycleEvent 來設定 --bes_lifecycle_events=false 並包含關鍵字的 Build 服務運算子。使用此旗標的建構服務運算子應防止使用者覆寫標記值。
標記:affects_outputs
--bes_timeout=<An immutable length of time.> 預設值:「0s」
指定建構和測試完成後,BES/BEP 上傳作業應等待多久時間。有效的逾時值是自然數字,後面接著單位:天 (d)、小時 (h)、分鐘 (m)、秒 (s) 和毫秒 (ms)。預設值為「0」,表示未設定逾時。
標記:affects_outputs
--bes_upload_mode=<wait_for_upload_complete, nowait_for_upload_complete or fully_async> 預設值:「wait_for_upload_complete」
指定建構事件服務的上傳作業是否應封鎖建構完成作業,或應立即結束叫用,並在背景完成上傳作業。可為「wait_for_upload_complete」(預設)、「nowait_for_upload_complete」或「full_async」。
標記:eagerness_to_exit
--build_event_binary_file=<a string> 預設值:「」
如果非空白,請將以變數分隔的二進位表示法寫入該檔案。這個選項暗示 --bes_upload_mode=wait_for_upload_complete。
標記:affects_outputs
--[no]build_event_binary_file_path_conversion預設值:「true」
盡可能將建構事件通訊協定中二進位檔案表示法的路徑轉換為更全球有效的 URI;如果停用這項設定,file:// uri 配置一律會使用
標記: affects_outputs
--build_event_binary_file_upload_mode=<wait_for_upload_complete, nowait_for_upload_complete or fully_async> 預設值:「wait_for_upload_complete」
指定 --build_event_binary_file 的建構事件服務上傳作業是否應封鎖建構完成作業,或應立即結束叫用並在背景中完成上傳作業。可為「wait_for_upload_complete」(預設)、「nowait_for_upload_complete」或「full_async」。
標記:eagerness_to_exit
--build_event_json_file=<a string> 預設值:「」
如果不是空白,請將建構事件通訊協定的 JSON 序列化作業寫入該檔案。這個選項暗示 --bes_upload_mode=wait_for_upload_complete。
標記:affects_outputs
--[no]build_event_json_file_path_conversion預設值:「true」
盡可能將建構事件通訊協定中 JSON 檔案表示法的路徑轉換為更全球有效的 URI;如果停用,系統一律會使用 file:// uri scheme。
標記: affects_outputs
--build_event_json_file_upload_mode=<wait_for_upload_complete, nowait_for_upload_complete or fully_async> 預設值:「wait_for_upload_complete」
指定 --build_event_json_file 的建構事件服務上傳作業是否應封鎖建構完成,或應立即結束叫用並在背景中完成上傳作業。可為「wait_for_upload_complete」(預設)、「nowait_for_upload_complete」或「full_async」。
標記:eagerness_to_exit
--build_event_max_named_set_of_file_entries=<an integer> 預設值:「5000」
單一 name_set_of_files 事件的項目數量上限;小於 2 的值會遭到忽略,且不會執行事件分割作業。這個做法的用途是限制建構事件通訊協定中的事件大小上限,但無法直接控制事件大小。總事件大小是組合結構、檔案和 URI 長度的函式,而這些檔案和 URI 長度則視雜湊函式而定。
標記:affects_outputs
--[no]build_event_publish_all_actions 預設值:「false」
是否要發布所有動作。
標記:affects_outputs
--build_event_text_file=<a string> 預設值:「」
如果非空白,請將建構事件通訊協定的文字表示法寫入該檔案
標記: affects_outputs
--[no]build_event_text_file_path_conversion預設值:「true」
盡可能將建構事件通訊協定的文字檔案表示法中,轉換為全球有效的 URI;如果停用這項設定,系統一律會使用 file:// uri 配置。
標記: affects_outputs
--build_event_text_file_upload_mode=<wait_for_upload_complete, nowait_for_upload_complete or fully_async> 預設值:「wait_for_upload_complete」
指定 --build_event_text_file 的建構事件服務上傳作業是否應封鎖建構完成作業,還是應立即結束叫用並在背景中完成上傳作業。可為「wait_for_upload_complete」(預設)、「nowait_for_upload_complete」或「full_async」。
標記:eagerness_to_exit
--build_event_upload_max_retries=<an integer> 預設值:「4」
Bazel 重試上傳建構事件的次數上限。
標記:bazel_internal_configuration
--[no]experimental_announce_profile_path 預設值:「false」
如果已啟用,就會將 JSON 設定檔路徑新增至記錄。
標記:bazel_monitoring
--[no]experimental_bep_target_summary 預設值:「false」
是否要發布 TargetSummary 事件。
--[no]experimental_build_event_expand_filesets 預設值:「false」
如果為 true,請在顯示輸出檔案時展開 BEP 內的檔案集。
標記:affects_outputs
如果為 true,則在顯示輸出檔案時,會完整解析 BEP 中的相對檔案集符號連結。必須使用 --experimental_build_event_expand_filesets。
標記:affects_outputs
--experimental_build_event_upload_retry_minimum_delay=<An immutable length of time.> 預設值:「1s」
初始,在 BEP 上傳失敗時,指數輪詢重試的最短延遲時間。(指數:1.6)
標記: bazel_internal_configuration
--experimental_build_event_upload_strategy=<a string> 預設:查看說明
選取如何上傳建構事件通訊協定中參照的構件。
標記:affects_outputs
--[no]experimental_collect_load_average_in_profiler預設值:「true」
如果啟用,分析器會收集系統的整體負載平均值。
標記:bazel_monitoring
--[no]experimental_collect_pressure_stall_indicators 預設值:「false」
啟用後,分析器會收集 Linux PSI 資料。
標記:bazel_monitoring
--[no]experimental_collect_resource_estimation 預設值:「false」
如果啟用,分析器會收集本機動作的 CPU 和記憶體用量預估資料。
標記:bazel_monitoring
--[no]experimental_collect_system_network_usage 預設值:「false」
如果啟用,分析器會收集系統的網路用量。
標記:bazel_monitoring
--[no]experimental_collect_worker_data_in_profiler 預設值:「false」
如果啟用,分析器會收集工作站的匯總資源資料。
標記:bazel_monitoring
會累積 --experimental_profile_additional_tasks=<phase, action, action_check, action_lock, action_release, action_update, action_complete, bzlmod, info, create_package, remote_execution, local_execution, scanner, local_parse, upload_time, remote_process_time, remote_queue, remote_setup, fetch, local_process_time, vfs_stat, vfs_dir, vfs_readlink, vfs_md5, vfs_xattr, vfs_delete, vfs_open, vfs_read, vfs_write, vfs_glob, vfs_vmfs_stat, vfs_vmfs_dir, vfs_vmfs_read, wait, thread_name, thread_sort_index, skyframe_eval, skyfunction, critical_path, critical_path_component, handle_gc_notification, action_counts, action_cache_counts, local_cpu_usage, system_cpu_usage, cpu_usage_estimation, local_memory_usage, system_memory_usage, memory_usage_estimation, system_network_up_usage, system_network_down_usage, workers_memory_usage, system_load_average, starlark_parser, starlark_user_fn, starlark_builtin_fn, starlark_user_compiled_fn, starlark_repository_fn, action_fs_staging, remote_cache_check, remote_download, remote_network, filesystem_traversal, worker_execution, worker_setup, worker_borrow, worker_working, worker_copying_outputs, credential_helper, pressure_stall_full_io, pressure_stall_full_memory, pressure_stall_some_io, pressure_stall_some_memory, pressure_stall_some_cpu, conflict_check, dynamic_lock, repository_fetch or unknown> 個用途
指定要納入設定檔的其他設定檔工作。
標記:bazel_monitoring
--[no]experimental_profile_include_primary_output 預設值:「false」
在動作事件 (包含動作主要輸出的執行路徑) 中加入額外的「out」屬性。
標記:bazel_monitoring
--[no]experimental_profile_include_target_label 預設值:「false」
在動作事件的 JSON 設定檔資料中加入目標標籤。
標記:bazel_monitoring
--[no]experimental_run_bep_event_include_residue 預設值:「false」
是否要在可能包含主體的執行建構事件中加入指令列留存。根據預設,殘留設定不會納入可能包含殘存的執行指令建構事件中。
標記:affects_outputs
--[no]experimental_stream_log_file_uploads 預設值:「false」
將記錄檔上傳檔案直接串流至遠端儲存空間,而非將記錄檔寫入磁碟。
標記:affects_outputs
--experimental_workspace_rules_log_file=<a path> 預設:查看說明
將特定 Workspace 規則事件記錄到這個檔案中,做為分隔的 WorkspaceEvent proto。
--[no]generate_json_trace_profile 預設值:「auto」
啟用後,Bazel 會剖析該建構,並將 JSON 格式設定檔寫入輸出基礎的檔案。將設定檔載入 chrome://tracing,即可查看設定檔。根據預設,Bazel 會針對所有類似建構的指令和查詢寫入設定檔。
標記:bazel_monitoring
--[no]heap_dump_on_oom 預設值:「false」
是否要在擲回 OOM 時手動輸出記憶體快照資料 (包括達到 --gc_thrashing_limits 而手動輸出的 OOM)。傾印將寫入 <output_base>/<invocation_id>.heapdump.hprof。這個選項可以有效取代 -XX:+HeapDumpOnOutOfMemoryError,這對於手動 OOM 沒有影響。
標記:bazel_monitoring
--[no]legacy_important_outputs預設值:「true」
請使用這個選項,略過 TargetComplete 事件中舊版 important_outputs 時產生的情況。如要使用 Bazel 與 ResultStore 進行整合作業,就必須使用 important_outputs。
標記:affects_outputs
--logging=<0 <= an integer <= 6> 預設值:「3」
記錄層級。
標記:affects_outputs
--memory_profile=<a path> 預設:查看說明
如果已設定,系統會在階段結束時將記憶體用量資料寫入指定檔案,並在建構作業結束時將穩定的堆積寫入主要執行個體記錄檔。
標記:bazel_monitoring
--memory_profile_stable_heap_parameters=<integers, separated by a comma expected in pairs> 預設值:「1,0」
調整記憶體設定檔在建構結束時對穩定堆積的運算作業。必須是整數的偶數,並以半形逗號分隔。每一個組合的第一個整數都是要執行的 GC 數量。每組組合中的第二個整數是 GC 之間等待的秒數。例如:2,4,4,0 個 GC 帶有暫停 4 秒,接著有 4 個 GC (停頓 0 秒)
標記: bazel_monitoring
--profile=<a path> 預設:查看說明
如果已設定,系統會剖析 Bazel,並將資料寫入指定檔案。使用 bazel analyze-profile 分析剖析設定檔。
標記:bazel_monitoring
--[no]record_full_profiler_data 預設值:「false」
根據預設,Bazel 分析器只會記錄快速但大量事件 (例如註明檔案) 的匯總資料。如果啟用此選項,分析器會記錄每個事件,進而產生更精確的剖析資料,但達到 LARGE 成效。只有在同時使用 --profile 的情況下,這個選項才會生效。
標記:bazel_monitoring
--remote_print_execution_messages=<failure, success or all> 預設值:「failure」
選擇何時列印遠端執行訊息。有效值為「failure」,僅限失敗時列印;「成功」可只在成功時列印,「all」則代表一律列印。
標記:terminal_output
--[no]slim_profile預設值:「true」
如果設定檔太大,系統會合併事件,縮減 JSON 設定檔的大小。
標記:bazel_monitoring
--starlark_cpu_profile=<a string> 預設值:「」
會將所有 Starlark 執行緒的 CPU 用量剖析設定檔寫入指定檔案。
標記:bazel_monitoring
--tool_tag=<a string> 預設值:「」
此 Bazel 叫用的目標工具名稱。
標記:affects_outputsbazel_monitoring
會累積 --ui_event_filters=<Convert list of comma separated event kind to list of filters> 個用途
指定 UI 中顯示的事件。您可以在預設事件的前面加上 +/- 來新增或移除事件,也可以使用直接指派功能覆寫預設值。支援的事件種類組合包括 INFO、DEBUG、ERROR 等。
標記: terminal_output
遠端快取和執行選項:
--experimental_circuit_breaker_strategy=<failure> 預設:查看說明
指定斷路器要使用的策略。可用的策略包括「失敗」。選項的值無效時,行為與未設定選項的行為相同。
標記:execution
--[no]experimental_guard_against_concurrent_changes 預設值:「false」
如果關閉這項功能,系統就會在將動作輸入至遠端快取之前,停用檢查動作輸入檔案的時間。在某些情況下,Linux kernel 會延遲寫入檔案,可能會造成偽陽性結果。
--[no]experimental_remote_cache_async 預設值:「false」
如果為 true,遠端快取 I/O 會在背景發生,而不是做為生成內容的一部分。
--experimental_remote_cache_compression_threshold=<an integer> 預設值:「0」
使用 zstd 壓縮/解壓縮所需的最小 blob 大小。除非已設定 --remote_cache_compression,否則沒有任何效果。
--[no]experimental_remote_cache_lease_extension 預設值:「false」
如果設為 True,Bazel 將定期將「FindMissingBlobs」呼叫傳送至遠端快取,藉此在建構期間擴充遠端動作的輸出內容。頻率會以「--experimental_remote_cache_ttl」的值為基礎。
--experimental_remote_cache_ttl=<An immutable length of time.> 預設值:「3h」
不久前,遠端快取中 blob 的保證最短存留時間,都是透過 ActionResult 或 FindMissingBlobs 參照。Bazel 會根據 blob 的存留時間執行多項最佳化作業,例如不會在漸進式建構作業中重複呼叫 GetActionResult。這項設定值應略低於實際存留時間,因為伺服器傳回摘要的時間,與 Bazel 接收摘要的時間斷言。
標記:execution
--experimental_remote_capture_corrupted_outputs=<a path> 預設:查看說明
將擷取損毀輸出內容的目錄路徑。
--[no]experimental_remote_discard_merkle_trees預設值:「true」
如果設為 True,在呼叫 GetActionResult() 和 Execute() 時,系統會捨棄輸入根層級 Merkle 樹狀結構的記憶體內副本和相關輸入對應。這麼做可大幅降低記憶體用量,但必須讓 Bazel 在遠端快取失敗及重試時重新運算這些副本。
--experimental_remote_downloader=<a string> 預設:查看說明
用來當做遠端下載 Proxy 的 Remote Asset API 端點 URI。支援的結構定義為 grpc、grpcs (已啟用 TLS 的 grpc) 和 Unix (本機 UNIX 通訊端)。如未提供結構定義,Bazel 會預設使用控制台。詳情請參閱:https://github.com/bazelbuild/remote-apis/blob/master/build/bazel/remote/asset/v1/remote_asset.proto
--[no]experimental_remote_downloader_local_fallback 預設值:「false」
如果遠端下載工具發生錯誤,是否要改回使用本機下載工具。
--[no]experimental_remote_execution_keepalive 預設值:「false」
是否要針對遠端執行呼叫使用保持運作。
--experimental_remote_failure_rate_threshold=<an integer in 0-100 range> 預設值:「10」
設定特定時間範圍內的失敗率百分比 (以百分比表示),系統會在該時間範圍內停止呼叫遠端快取/執行工具。預設值為 10。設為 0 表示無限制。
標記:execution
--experimental_remote_failure_window_interval=<An immutable length of time.> 預設值:「60 秒」
計算遠端要求失敗率的間隔。如果設為零或負數值,系統會計算失敗時間長度的整個執行期間。以下的單位可以使用:天 (d)、小時 (h)、分鐘 (m)、秒 (s) 和毫秒 (ms)。如果省略單位,系統會將值解讀為「秒」。
標記:execution
--[no]experimental_remote_mark_tool_inputs 預設值:「false」
如果設為 True,Bazel 會將輸入內容標示為遠端執行程式的工具輸入內容。可用於實作遠端永久工作站。
--[no]experimental_remote_merkle_tree_cache 預設值:「false」
如果設為 True,系統會回憶 Merkle 樹狀結構的計算結果,以加快遠端快取命中檢查速度。快取的記憶體腳印由 --experimental_remote_merkle_tree_cache_size 控制。
--experimental_remote_merkle_tree_cache_size=<a long integer> 預設值:「1000」
要改善遠端快取命中檢查速度的 Merkle 樹狀圖數量。即使快取會根據 Java 處理軟體參照的方式自動縮減,但若設定過高,可能會發生記憶體不足錯誤。如果設為 0,快取大小就沒有上限。最佳價值會因專案大小而異。預設值為 1000。
--experimental_remote_output_service=<a string> 預設:查看說明
遠端輸出服務端點的 HOST 或 HOST:PORT。支援的結構定義為 grpc、grpcs (已啟用 TLS 的 grpc) 和 Unix (本機 UNIX 通訊端)。如未提供結構定義,Bazel 會預設使用控制台。如要停用 TLS,請指定 grpc:// 或 Unix:結構定義。
--experimental_remote_output_service_output_path_prefix=<a string> 預設值:「」
系統會放置 --experimental_remote_output_service 管理的輸出目錄內容所在路徑。建構作業使用的實際輸出目錄將是此路徑的子系,並由輸出服務決定。
--[no]experimental_remote_require_cached 預設值:「false」
如果設為 True,系統會強制快取所有可遠端執行的動作,否則建構作業會失敗。這可用於解決非確定性問題,因為這項方法可讓您檢查應快取的動作,是否真的能快取,而不會不小心將新結果插入快取。
--experimental_remote_scrubbing_config=<Converts to a Scrubber> 預設:查看說明
可使用提供的設定檔啟用遠端快取金鑰拖曳功能,設定檔必須是文字格式的通訊協定緩衝區 (請參閱 src/main/protobuf/remote_scrubbing.proto)。 這項功能旨在協助在不同平台上執行但鎖定相同平台的操作,共用遠端/磁碟快取。使用時請格外小心,如果設定不當,可能會導致意外分享快取項目,並導致建構作業不正確。 拖曳不會影響動作的執行方式,只會為了擷取或儲存動作結果,計算其遠端/磁碟快取金鑰的方式。拖曳的動作與遠端執行不相容,而且一律會在本機執行。修改清除設定不會使本機檔案系統或內部快取中的輸出內容失效;需要簡潔的版本才能重新執行受影響的動作。 為成功使用這項功能,建議您設定自訂的 --host_platform 搭配 --experimental_platform_in_output_dir (將輸出前置字元正規化) 和 --incompatible_strict_action_env (將環境變數正規化)。
--[no]incompatible_remote_build_event_upload_respect_no_cache 預設值:「false」
已淘汰,免操作。請改用 --remote_build_event_upload=minimal。
--[no]incompatible_remote_downloader_send_all_headers預設值:「true」
是否要將含有多個值標頭的所有值 (而非第一個) 傳送至遠端下載工具。
標記:incompatible_change
--[no]incompatible_remote_output_paths_relative_to_input_root 預設值:「false」
如果設為 True,輸出路徑是相對於輸入根目錄,而非工作目錄。
標記:incompatible_change
--[no]incompatible_remote_results_ignore_disk預設值:「true」
免人工管理
標記: incompatible_change
--[no]remote_accept_cached預設值:「true」
是否要接受遠端快取動作結果。
--remote_build_event_upload=<all or minimal> 預設值:「minimal」
如果設為「all」,BEP 參照的所有本機輸出內容都會上傳至遠端快取。如果設為「minimal」,BEP 參照的本機輸出不會上傳到遠端快取,除了 BEP 消費者的重要檔案 (例如測試記錄檔和時間設定檔) 之外,系統一律會為檔案 URI 使用 bytestream:// 配置,即使遠端快取中找不到這些檔案的 URI 也是如此。 預設為「minimal」。
--remote_bytestream_uri_prefix=<a string> 預設:查看說明
在寫入建構事件串流的 bytestream:// URI 中使用的主機名稱和執行個體名稱。這個選項可以在透過 Proxy 執行建構作業時設定,這會導致 --remote_executor 和 --remote_instance_name 的值不再對應至遠端執行服務的標準名稱。如未設定,系統會預設為「${hostname}/${instance_name}」。
--remote_cache=<a string> 預設:查看說明
快取端點的 URI。支援的結構定義包括 http、https、grpc、grpcs (已啟用 TLS 的 Grpc) 和 Unix (本機 UNIX 通訊端)。如未提供結構定義,Bazel 會預設使用控制台。如要停用 TLS,請指定 grpc://、http:// 或 Unix: 結構定義。詳情請參閱 https://bazel.build/remote/caching
--[no]remote_cache_compression 預設值:「false」
啟用後,當快取 blob 的大小至少達 --experimental_remote_cache_compression_threshold 時,使用 zstd 壓縮/解壓縮快取 blob。
會累積 --remote_cache_header=<a 'name=value' assignment> 個用途
指定會納入快取要求中的標頭:--remote_cache_header=Name=Value。只要多次指定旗標,即可傳遞多個標頭。系統會將相同名稱的多個值轉換為以半形逗號分隔的清單。
會累積 --remote_default_exec_properties=<a 'name=value' assignment> 個用途
在執行平台尚未設定 exec_properties 的情況下,設定做為遠端執行平台的預設執行屬性。
標記:affects_outputs
--remote_default_platform_properties=<a string> 預設值:「」
設定遠端執行 API 的預設平台屬性 (如果執行平台尚未設定 Remote_execution_properties)。如果選擇將主機平台當做遠端執行的執行平台,系統也會使用這個值。
會累積 --remote_download_regex=<a valid Java regular expression> 個用途
強制下載符合此模式的路徑 (無論 --remote_download_outputs 除外)。重複這個標記即可指定多個模式。
標記:affects_outputs
會累積 --remote_downloader_header=<a 'name=value' assignment> 個用途
指定會納入遠端下載程式要求的標頭:--remote_downloader_header=Name=Value。只要多次指定旗標,即可傳遞多個標頭。系統會將相同名稱的多個值轉換為以半形逗號分隔的清單。
會累積 --remote_exec_header=<a 'name=value' assignment> 個用途
指定會納入執行要求中的標頭:--remote_exec_header=Name=Value。只要多次指定旗標,即可傳遞多個標頭。系統會將相同名稱的多個值轉換為以半形逗號分隔的清單。
--remote_execution_priority=<an integer> 預設值:「0」
遠端執行動作的相對優先順序。特定優先順序值的語意視伺服器而定。
--remote_executor=<a string> 預設:查看說明
遠端執行端點的 HOST 或 HOST:PORT。支援的結構定義為 grpc、grpcs (已啟用 TLS 的 grpc) 和 Unix (本機 UNIX 通訊端)。如未提供結構定義,Bazel 會預設使用控制台。如要停用 TLS,請指定 grpc:// 或 Unix:結構定義。
--remote_grpc_log=<a path> 預設:查看說明
如有指定,請提供檔案路徑,用於記錄 gRPC 呼叫相關詳細資料。這個記錄包含一系列的序列化 com.google.devtools.build.lib.remote.logging.RemoteExecutionLog.LogEntry protobufs,且每個訊息開頭會加上 varint,表示下列序列化 protobuf 訊息的大小,由 LogEntry.writeDelimitedTo(OutputStream 方法所執行) 表示。
會累積 --remote_header=<a 'name=value' assignment> 個用途
指定會納入要求中的標頭:--remote_header=Name=Value。只要多次指定旗標,即可傳遞多個標頭。系統會將相同名稱的多個值轉換為以半形逗號分隔的清單。
--remote_instance_name=<a string> 預設值:「」
要在遠端執行 API 中做為 instance_name 傳遞的值。
--[no]remote_local_fallback 預設值:「false」
如果遠端執行失敗,是否要改回使用獨立的本機執行策略。
--remote_local_fallback_strategy=<a string> 預設值:「local」
免人工管理,已淘汰。詳情請參閱 https://github.com/bazelbuild/bazel/issues/7480。
--remote_max_connections=<an integer> 預設值:「100」
限制遠端快取/執行程式的並行連線數量上限。預設值為 100。設為 0 表示無限制。如果是 HTTP 遠端快取,一個 TCP 連線一次可以處理一個要求,因此 Bazel 最多可同時處理 --remote_max_connections 並行要求。以 gRPC 遠端快取/執行工具來說,一個 gRPC 管道通常可以處理超過 100 項並行要求,因此 Bazel 就能處理「--remote_max_connections * 100」的並行要求。
標記:host_machine_resource_optimizations
--remote_proxy=<a string> 預設:查看說明
透過 Proxy 連線至遠端快取。目前這個旗標只能用來設定 Unix 網域通訊端 (unix:/path/to/socket),
--remote_result_cache_priority=<an integer> 預設值:「0」
要儲存在遠端快取中的遠端動作相對優先順序。特定優先順序值的語意視伺服器而定。
--remote_retries=<an integer> 預設值:「5」
重試暫時性錯誤的次數上限。如果設為 0,系統就會停用重試功能。
--remote_retry_max_delay=<An immutable length of time.>預設值:「5 秒」
遠端重試之間的輪詢延遲時間上限。可使用以下單位:天 (d)、小時 (h)、分鐘 (m)、秒 (s) 和毫秒 (ms)。如果省略單位,系統會將值解讀為「秒」。
--remote_timeout=<An immutable length of time.> 預設值:「60 秒」
等待遠端執行與快取呼叫的時間長度上限。以 REST 快取來說,這同時為連線和讀取逾時。可使用以下單位:天 (d)、小時 (h)、分鐘 (m)、秒 (s) 和毫秒 (ms)。如果省略單位,系統會將值解讀為「秒」。
--[no]remote_upload_local_results預設值:「true」
如果遠端快取支援,且使用者已獲授權,是否要將本機執行的動作結果上傳至遠端快取。
--[no]remote_verify_downloads預設值:「true」
如果設為 True,Bazel 會計算所有遠端下載作業的雜湊總和,如果這些值與預期值不符,就會捨棄遠端快取的值。
其他未分類的選項。
會累積 --build_metadata=<a 'name=value' assignment> 個用途
要在建構事件中提供的自訂鍵/值組合。
標記:terminal_output
--color=<yes, no or auto> 預設值:「auto」
使用終端機控制項為輸出內容加上顏色。
會累積 --config=<a string> 個用途
從 rc 檔案中選取其他設定區段。如果每個 <command> 有這類區段,也會從 <command>:<config> 中擷取選項;如果這個區段不存在於任何 .rc 檔案中,Blaze 就會發生錯誤並發生錯誤。這些設定部分和旗標組合位於 tools/*.blazerc 設定檔中。
會累積 --credential_helper=<Path to a credential helper. It may be absolute, relative to the PATH environment variable, or %workspace%-relative. The path be optionally prefixed by a scope followed by an '='. The scope is a domain name, optionally with a single leading '*' wildcard component. A helper applies to URIs matching its scope, with more specific scopes preferred. If a helper has no scope, it applies to every URI.> 個用途
設定符合 <a href="https://github.com/EngFlow/credential-helper-spec">憑證輔助程式規格</a>的憑證輔助程式,以擷取用於擷取存放區擷取、遠端快取和執行以及建構事件服務的授權憑證。 輔助程式提供的憑證優先順序高於「--google_default_credentials」、「--google_credentials」、「.netrc」檔案,或是「repository_ctx.download()」檔案的驗證參數,或是「repository_ctx.download_and_extract()」的驗證參數。 如要設定多個輔助程式,可以多次指定憑證。 如需操作說明,請前往 https://blog.engflow.com/2023/10/09/configuring-bazels-credential-helper/。
--credential_helper_cache_duration=<An immutable length of time.> 預設值:「30 分鐘」
如果輔助程式未在憑證到期時提供,系統會快取憑證輔助程式提供的憑證預設持續時間。
--credential_helper_timeout=<An immutable length of time.> 預設值:「10 秒」
設定憑證輔助程式的逾時時間。 如果憑證輔助程式沒有在這個逾時期限內回應,叫用作業就會失敗。
--curses=<yes, no or auto> 預設值:「auto」
使用終端機遊標控制項,盡量減少捲動的輸出內容。
--disk_cache=<a path> 預設:查看說明
Bazel 可讀取及寫入動作和動作輸出內容的目錄路徑。如果目錄不存在,系統將建立該目錄。
--[no]enable_platform_specific_config 預設值:「false」
如果為 true,Bazel 會從 bazelrc 檔案中擷取主機 OS 專用的設定行。舉例來說,如果主機 OS 是 Linux,而您執行 bazel 版本,Bazel 就會挑選從 build:linux 開始的程式碼行。支援的 OS ID 包括 Linux、macos、Window、Freebsd 和 openbsd。啟用這個旗標等同於在 Linux 上使用 --config=linux,在 Windows 上使用 --config=windows 等。
--[no]experimental_rule_extension_api 預設值:「false」
啟用實驗性規則擴充功能 API 和子規則 API
標記: loading_and_analysisexperimental
--[no]experimental_windows_watchfs 預設值:「false」
如果為 True,系統會啟用 --watchfs 的實驗性 Windows 支援。在其他情況下,--watchfsis 在 Windows 上是非操作。請務必一併啟用 --watchfs。
--google_auth_scopes=<comma-separated list of options> 預設值:「https://www.googleapis.com/auth/cloud-platform」
以半形逗號分隔的 Google Cloud 驗證範圍清單。
--google_credentials=<a string> 預設:查看說明
指定要從哪個檔案取得驗證憑證。詳情請參閱 https://cloud.google.com/docs/authentication。
--[no]google_default_credentials 預設值:「false」
是否要使用「Google 應用程式預設憑證」進行驗證。詳情請參閱 https://cloud.google.com/docs/authentication。預設停用。
--grpc_keepalive_time=<An immutable length of time.> 預設:查看說明
為傳出 gRPC 連線設定保持運作連線偵測 (ping)。如果設定了這個值,Bazel 就會在這段時間過後無人在連線上執行讀取作業,但只會在至少有一個待處理的 gRPC 呼叫時傳送連線偵測 (ping)。系統會將時間視為第二項精細程度,如果設定的值小於一秒,就會發生錯誤。系統預設停用保持運作的連線偵測 (ping)。啟用這項設定之前,請先與服務擁有者協調。舉例來說,如要將這個值設為 30 秒,應以下列 --grpc_keepalive_time=30s 一樣進行
--grpc_keepalive_timeout=<An immutable length of time.> 預設值:「20 秒」
設定傳出 gRPC 連線的保持運作逾時。如果透過 --grpc_keepalive_time 啟用保持運作連線偵測 (ping),如果超過這段時間後仍未收到連線偵測 (ping) 回覆,Bazel 就會逾時連線。系統會將時間視為第二項精細程度,如果設定的值小於一秒,就會發生錯誤。如果停用保持運作的連線偵測 (ping),系統會忽略這項設定。
--[no]incompatible_disable_non_executable_java_binary 預設值:「false」
如果為 true,java_binary 一律可以執行。create_executable 屬性已移除。
標記:loading_and_analysisincompatible_change
免人工管理。
標記: loading_and_analysisincompatible_change
--[no]progress_in_terminal_title 預設值:「false」
在終端機標題中顯示指令進度。有多個終端機分頁時,可用來瞭解 bazel 正在執行的工作。
--[no]show_progress預設值:「true」
在建構期間顯示進度訊息。
--show_progress_rate_limit=<a double> 預設值:「0.2」
輸出結果中進度訊息的最短秒數。
--[no]show_timestamps 預設值:「false」
在訊息中加入時間戳記
--tls_certificate=<a string> 預設:查看說明
指定受信任的 TLS 憑證簽署路徑,該憑證必須信任才能簽署伺服器憑證。
--tls_client_certificate=<a string> 預設:查看說明
指定要使用的傳輸層安全標準 (TLS) 用戶端憑證。您必須提供用戶端金鑰,才能啟用用戶端驗證功能。
--tls_client_key=<a string> 預設:查看說明
指定要使用的傳輸層安全標準 (TLS) 用戶端金鑰。如要啟用用戶端驗證,您必須一併提供用戶端憑證。
--ui_actions_shown=<an integer> 預設值:「8」
詳細進度列會顯示並行操作數量;每個動作會分行顯示。進度列一律會顯示至少一個,小於 1 的數字都會對應至 1。
標記:terminal_output
--[no]watchfs 預設值:「false」
Linux/macOS:如果為 true,bazel 會嘗試使用作業系統的檔案監控服務服務本機變更,而不是掃描每個檔案的變更。Windows:這個旗標目前為非操作狀態,但可與 --experimental_windows_watchfs 一同啟用。任何 OS:如果工作區位於網路檔案系統中,而且檔案是在遠端電腦上編輯,系統就不會定義行為。

分析設定檔選項

這些選項會顯示在指令之前,並由用戶端剖析:
會累積 --distdir=<a path> 個用途
還有許多地方可以搜尋封存檔案,以便透過網路下載封存內容。
標記:bazel_internal_configuration
如有設定,存放區快取會在快取成功時將檔案硬式編碼,而非複製檔案。以便節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 預設值:「0」
重試下載錯誤的次數上限。如果設為 0,系統就會停用重試功能。
標記:experimental
--experimental_scale_timeouts=<a double> 預設值:「1.0」
按照這項係數調整 Starlark 存放區規則中的所有逾時時間。如此一來,即使效能低於規則作者預期的機器,外部存放區也能在不變更原始碼的情況下正常運作。
標記:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 預設值:「8」
http 下載作業的次數上限。
標記:bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 預設值:「0s」
http 下載重試的逾時時間上限。如果值為 0,就不會定義逾時上限。
標記:bazel_internal_configuration
--http_timeout_scaling=<a double> 預設值:「1.0」
依指定係數調整所有與 http 下載相關的逾時時間
標記: bazel_internal_configuration
--repository_cache=<a path> 預設:查看說明
指定擷取外部存放區時取得的已下載值的快取位置。將空字串做為引數要求停用快取,否則會使用預設的「<output_user_root>/cache/repos/v1」
標記: bazel_internal_configuration
--[no]repository_disable_download 預設值:「false」
如果已設定,無法在存放區擷取期間使用 ctx.download{,_and_extract} 進行下載。請注意,網路存取權並未完全停用;ctx.execute 仍可以執行存取網際網路的任意執行檔。
標記:bazel_internal_configuration
控制建構執行作業的選項:
--gc_thrashing_threshold=<an integer in 0-100 range> 預設值:「100」
上方 GcThrashingDetector 會將記憶體壓力事件視為其配額限制 (--gc_thrashing_limits),而佔用空間佔用的空間百分比 (0-100)。如果設為 100,系統會停用 GcThrashingDetector。
標記: host_machine_resource_optimizations
這個選項會影響 Starlark 語言的語意,或是 BUILD 檔案、.bzl 檔案或 WORKSPACE 檔案可用的建構 API。
--[no]incompatible_depset_for_java_output_source_jars預設值:「true」
免人工管理。
標記: loading_and_analysisincompatible_change
--[no]incompatible_new_actions_api預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]incompatible_visibility_private_attributes_at_definition預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]separate_aspect_deps預設值:「true」
免人工管理
標記: no_op
與 Bzlmod 輸出內容和語意相關的選項:
會累積 --allow_yanked_versions=<a string> 個用途
指定模組版本時,請以「<module1>@<version1>,<module2>@<version2>」格式指定在已解析的依附元件圖中,即使這些版本來源不是來自 NonRegistryOverride,仍可在存放區中宣告這些版本。否則,分割版本會導致解析失敗。您也可以使用「BZLMOD_ALLOW_YANKED_VERSIONS」環境變數定義允許的分割版本。您可使用關鍵字「全部」停用這項檢查 (不建議使用)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off> 預設值:「錯誤」
檢查 Bazel 模組的 Bazel 版本相容性。有效值為「error」:可將其提報至解決失敗;設為「off」可停用檢查,「warning」則能在偵測到不相符時顯示警告。
標記:loading_and_analysis
--check_direct_dependencies=<off, warning or error> 預設值:「warning」
檢查根模組中宣告的直接「bazel_dep」依附元件,是否與已解析依附元件圖表中的版本相同。有效值為「off」可停用檢查,「warning」會在偵測到不相符時顯示警告,或是「error」將問題提報至解決失敗。
標記:loading_and_analysis
--[no]ignore_dev_dependency 預設值:「false」
如果為 true,Bazel 會忽略根模組 MODULE.bazel 中宣告為「dev_dependency」的「bazel_dep」和「use_extension」。請注意,如果根模組不是根模組,無論此標記的值為何,系統一律會忽略這些開發依附元件。
標記:loading_and_analysis
--lockfile_mode=<off, update or error> (預設):「更新」
指定使用 Lockfile 的方式,以及是否要使用。有效值為「update」可使用 Lockfile,並在出現變更時進行更新;「error」表示使用 Lockfile,但並非最新版本,會擲回錯誤;如果未更新,則為「off」。
標記:loading_and_analysis
會累積 --override_module=<an equals-separated mapping of module name to path> 個用途
以 <module name>=<path> 的格式覆寫本機路徑的模組。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則該路徑會與目前的工作目錄相對。如果指定路徑的開頭是「%workspace%」,代表與工作區根目錄 (也就是「bazel info workspace」的輸出內容) 有關。
會累積 --registry=<a string> 個用途
指定要用來尋找 Bazel 模組依附元件的登錄檔。順序很重要:系統會先在較早的登錄檔中查詢模組,而且只有在之後的登錄檔中缺少模組時,才會改回使用之後的登錄檔。
標記:changes_inputs
--vendor_dir=<a path> 預設:查看說明
指定應在廠商模式下保存外部存放區的目錄,不論是用於擷取或建立使用這些存放區。路徑可以指定為絕對路徑或相對於工作區目錄的路徑。
標記:loading_and_analysis
會觸發建構時間最佳化的選項:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 預設值:「1s:2,20s:3,1m:5」
限制如果已達到,GcThrashingDetector 會透過 OOM 讓 Bazel 當機,每項限制都以 <period>:<count> 指定,週期為時間長度,計數代表正整數。如果 <period> 內連續 <count> 個 GC 數量超過 --gc_thrashing_threshold 百分比,系統就會觸發 OOM。如要指定多個限制,請以半形逗號分隔。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生完整 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示完整 GC 事件永遠不會觸發下降。如果達到上限,在完整 GC 事件發生且超過保留堆積百分比門檻時,系統不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生輕微 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示次要 GC 事件永遠不會觸發下降。一旦達到限制,發生輕微 GC 事件且超過保留堆積百分比門檻時,系統就不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 預設值:「85」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量至少達到這個門檻,就會捨棄不必要的暫時性 SkyFrame 狀態。調整這個做法,即可減少垃圾收集造成的實際時間影響,也就是以下情形:GC 輾轉現象,是:(i) 這個臨時狀態的記憶體用量造成,(ii) 比在需要時重新建構狀態的成本高昂。
標記: host_machine_resource_optimizations
影響記錄詳細程度、格式或位置的選項:
--dump=<text or raw> [-d] 預設:查看說明
系統會以使用者可理解的「文字」格式,或易於指令碼使用的「原始」格式,輸出完整的設定檔資料傾印。
標記:bazel_monitoring
--experimental_command_profile=<cpu, wall, alloc or lock> 預設:查看說明
記錄指令期間的 Java 航班/機票記錄工具設定檔。支援的剖析事件類型之一 (CPU、牆、分配或鎖定) 必須以引數的形式指定。設定檔將寫入一個檔案,並以事件類型在輸出基本目錄下命名。這個旗標的語法和語意日後可能會變更,以支援其他設定檔類型或輸出格式,請自行承擔風險。
--[no]experimental_record_metrics_for_all_mnemonics 預設值:「false」
根據預設,動作類型數量限制為已執行次數最多的 20 種記憶。如果設定這個選項,系統將寫入所有助測器的統計資料。
指定或變更不屬於其他類別 Bazel 指令的一般輸入選項:
--experimental_resolved_file_instead_of_workspace=<a string> 預設值:「」
如果讀取指定的已解析檔案 (而非 WORKSPACE 檔案) 為非空白檔案
標記: changes_inputs
遠端快取和執行選項:
--experimental_downloader_config=<a string> 預設:查看說明
指定要用於設定遠端下載程式的檔案。這個檔案由各行組成,每個指令都是以指令 (「allow」、「block」或「rewrite」) 開頭,後面接有主機名稱 (適用於「allow」和「block」) 或兩個模式,一個要比對做為替代網址,另一個則做為替代網址,並以「$1」開頭的反向參照。即使多個「重新編寫」指令,也可視為相同網址的「rewrite」指令。
--experimental_worker_for_repo_fetching=<off, platform, virtual or auto> 預設值:「auto」
用於存放區擷取的執行緒模式。如果設為「off」,系統就不會使用任何工作站執行緒,且會重新啟動存放區擷取作業。如果設為「平台」,則會使用平台執行緒 (即 OS 執行緒) 或虛擬執行緒 (如設為「virtual」)。如果設為「auto」,系統就會在可用的情況下使用虛擬執行緒 (即在 JDK 21 以上版本中執行),否則就不會使用工作站執行緒。
其他未分類的選項。
會累積 --override_repository=<an equals-separated mapping of repository name to path> 個用途
用 <repository name>=<path> 的格式覆寫本機路徑的存放區。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則以相對路徑為準。如果指定路徑的開頭是「%workspace%」,代表相對於工作區根目錄,也就是「bazel info workspace」的輸出內容

查詢選項

繼承 build 的所有選項。

這些選項會顯示在指令之前,並由用戶端剖析:
會累積 --distdir=<a path> 個用途
還有許多地方可以搜尋封存檔案,以便透過網路下載封存內容。
標記:bazel_internal_configuration
如有設定,存放區快取會在快取成功時將檔案硬式編碼,而非複製檔案。以便節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 預設值:「0」
重試下載錯誤的次數上限。如果設為 0,系統就會停用重試功能。
標記:experimental
--experimental_scale_timeouts=<a double> 預設值:「1.0」
按照這項係數調整 Starlark 存放區規則中的所有逾時時間。如此一來,即使效能低於規則作者預期的機器,外部存放區也能在不變更原始碼的情況下正常運作。
標記:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 預設值:「8」
http 下載作業的次數上限。
標記:bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 預設值:「0s」
http 下載重試的逾時時間上限。如果值為 0,就不會定義逾時上限。
標記:bazel_internal_configuration
--http_timeout_scaling=<a double> 預設值:「1.0」
依指定係數調整所有與 http 下載相關的逾時時間
標記: bazel_internal_configuration
--repository_cache=<a path> 預設:查看說明
指定擷取外部存放區時取得的已下載值的快取位置。將空字串做為引數要求停用快取,否則會使用預設的「<output_user_root>/cache/repos/v1」
標記: bazel_internal_configuration
--[no]repository_disable_download 預設值:「false」
如果已設定,無法在存放區擷取期間使用 ctx.download{,_and_extract} 進行下載。請注意,網路存取權並未完全停用;ctx.execute 仍可以執行存取網際網路的任意執行檔。
標記:bazel_internal_configuration
控制建構執行作業的選項:
--gc_thrashing_threshold=<an integer in 0-100 range> 預設值:「100」
上方 GcThrashingDetector 會將記憶體壓力事件視為其配額限制 (--gc_thrashing_limits),而佔用空間佔用的空間百分比 (0-100)。如果設為 100,系統會停用 GcThrashingDetector。
標記: host_machine_resource_optimizations
這個選項會影響 Starlark 語言的語意,或是 BUILD 檔案、.bzl 檔案或 WORKSPACE 檔案可用的建構 API。
--[no]incompatible_depset_for_java_output_source_jars預設值:「true」
免人工管理。
標記: loading_and_analysisincompatible_change
--[no]incompatible_new_actions_api預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]incompatible_visibility_private_attributes_at_definition預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]separate_aspect_deps預設值:「true」
免人工管理
標記: no_op
查詢輸出和語意相關選項:
--aspect_deps=<off, conservative or precise> 預設值:「conservative」
當輸出格式是 {xml,proto,record} 時,如何解析切面依附元件。「off」代表未解析任何切面依附元件;「保守」(預設) 代表新增所有宣告的切面依附元件,不論是否提供直接依附元件的規則類別;「精確」代表僅新增可能根據直接依附元件的規則類別啟用的切面。請注意,由於精確模式需要載入其他套件來評估單一目標,因此速度比其他模式慢。另請注意,就算使用精確模式也無法完全精準,是否要在分析階段中決定是否運算,該階段不會在「bazel 查詢」期間執行。
標記:build_file_semantics
--[no]consistent_labels 預設值:「false」
啟用這項設定後,每個查詢指令都會發送標籤,就像由 Starlark <code>str</code> 函式套用至 <code>Label</code> 執行個體一樣。這項工具相當適合用於需要比對不同查詢指令和/或規則所發出標籤的輸出內容。如果不啟用,輸出格式設定器可改為發出明顯的存放區名稱 (相對於主要存放區),讓輸出內容更容易讀取。
標記:terminal_output
--[no]experimental_explicit_aspects 預設值:「false」

標記:terminal_output
--[no]graph:factored預設值:「true」
如果為 true,圖表會發出「因子」,也就是同質相等的節點會合併在一起,其標籤會串連。這個選項僅適用於 --output=graph。
標記:terminal_output
--graph:node_limit=<an integer> 預設值:「512」
輸出中圖形節點的標籤字串長度上限。較長的標籤會遭到截斷;-1 表示不會截斷。這個選項僅適用於 --output=graph。
標記:terminal_output
--[no]implicit_deps預設值:「true」
啟用後,隱含依附元件會納入查詢作業的依附元件圖中。隱含依附元件是指 BUILD 檔案中並未明確指定,但是由 bazel 新增的依附元件。針對 cquery,這個選項會控制篩選已解析的工具鍊。
標記:build_file_semantics
--[no]include_artifacts預設值:「true」
輸出內容包含動作輸入和輸出內容的名稱 (可能相當大)。
標記:terminal_output
--[no]include_aspects預設值:「true」

標記:terminal_output
--[no]include_commandline預設值:「true」
在輸出內容中加入動作指令列的內容 (可能相當大)。
標記:terminal_output
--[no]include_file_write_contents 預設值:「false」
包含 FileWrite、SourceSymlinkManifest 和 RepoMappingManifest 動作的檔案內容 (可能很大)。
標記:terminal_output
--[no]include_param_files 預設值:「false」
包含指令中使用的參數檔案內容 (可能很大)。注意:啟用此標記後,系統將自動啟用 --include_commandline 標記。
標記:terminal_output
--[no]include_scheduling_dependencies 預設值:「false」
包含動作的排程依附元件名稱 (可能相當大)。只有在設定了 --include_artifacts 時才會生效。
標記:terminal_output
--[no]incompatible_package_group_includes_double_slash預設值:「true」
啟用後,在輸出 package_group 的「packages」屬性時,系統不會省略開頭的「//」。
標記:terminal_outputincompatible_change
--[no]infer_universe_scope 預設值:「false」
如果未設定 --universe_scope,將將 --universe_scope 的值推斷為查詢運算式中不重複目標模式的清單。請注意,使用單向範圍函式 (例如`allrdeps`) 的查詢運算式所推測的 --universe_scope 值可能不太符合您的需求,因此建議您在瞭解自己執行的操作時,才使用這個選項。如需詳細資訊和範例,請參閱 https://bazel.build/reference/query#sky-query。如果已設定 --universe_scope,系統就會忽略此選項的值。注意:這個選項僅適用於「query」(查詢),而非「cquery」。
標記: loading_and_analysis
--[no]line_terminator_null 預設值:「false」
指出每個格式是否會以 \0 (而非換行) 終止。
標記:terminal_output
--[no]nodep_deps預設值:「true」
如果啟用這項政策,從「nodep」屬性降級後,查詢作業的依附元件圖表就會包含該屬性。常見的「nodep」屬性為「visibility」。執行並剖析「資訊建構語言」的輸出內容,瞭解建構語言中的所有「nodep」屬性。
標記:build_file_semantics
--output=<a string> 預設值:「text」
輸出查詢結果的格式。允許的查詢值如下:text、textproto、proto、streamed_proto、jsonproto。
標記:terminal_output
--[no]proto:default_values預設值:「true」
如果為 true,系統會納入 BUILD 檔案中未明確指定值的屬性,否則會省略。這個選項適用於 --output=proto
標記:terminal_output
--[no]proto:definition_stack 預設值:「false」
填入 definition_stack proto 欄位,該欄位會在定義規則類別時,記錄每個規則例項的 Starlark 呼叫堆疊。
標記:terminal_output
--[no]proto:flatten_selects預設值:「true」
啟用後,系統會整併 select() 建立的可設定屬性。對於清單類型而言,扁平化的表示式呈現為一份清單,其中僅包含選取地圖的每個值一次。純量類型會扁平化為空值。
標記:build_file_semantics
--[no]proto:include_attribute_source_aspects 預設值:「false」
為每個屬性的 source_aspect_name proto 欄位填入屬性來源切面的資訊 (如果沒有屬性,則為空白字串)。
標記:terminal_output
--[no]proto:include_synthetic_attribute_hash 預設值:「false」
是否要計算及填入 $internal_attr_hash 屬性。
標記:terminal_output
--[no]proto:instantiation_stack 預設值:「false」
填入每項規則的例項化呼叫堆疊。請注意,如要這麼做,堆疊必須具有
標記:terminal_output
--[no]proto:locations預設值:「true」
是否要在 proto 輸出內容中輸出位置資訊。
標記:terminal_output
--proto:output_rule_attrs=<comma-separated list of options> 預設值:「全部」
要包含在輸出內容中的屬性清單 (以半形逗號分隔)。預設為所有屬性。設為空白字串不輸出任何屬性。這個選項適用於 --output=proto。
標記:terminal_output
--[no]proto:rule_inputs_and_outputs預設值:「true」
指定是否填入「Rule_input」和「Rule_output」欄位。
標記:terminal_output
--query_file=<a string> 預設值:「」
如有設定,查詢會從這裡命名的檔案讀取查詢,而不是透過指令列讀取。在這裡指定檔案以及指令列查詢會發生錯誤。
標記:changes_inputs
--[no]relative_locations 預設值:「false」
如果為 True,XML 和 proto 輸出內容中的 BUILD 檔案位置將會相對。根據預設,位置輸出是絕對路徑,而且在所有機器中不一致。您可以將這個選項設為 True,即可在不同機器中取得一致的結果。
標記:terminal_output
--[no]skyframe_state 預設值:「false」
如果不執行額外分析,請從 SkyFrame 中轉儲目前的動作圖表。注意:目前不支援使用 --skyframe_state 指定目標。這個標記僅適用於 --output=proto 或 --output=textproto。
標記:terminal_output
--[no]tool_deps預設值:「true」
查詢:如果停用,則「exec configuration」的依附元件不會包含在查詢作業的依附元件圖表中。「exec configuration」的依附元件邊緣 (例如從任何「proto_library」規則的依附元件到通訊協定編譯器的邊緣),通常指向在建構期間執行的工具,而非同一個「目標」程式的一部分。Cquery:如果停用,系統會從頂層目標中發現這個設定目標的頂層目標,篩選出所有已設定的目標。換句話說,如果頂層目標位於目標設定中,系統只會傳回同樣在目標設定中已設定的目標。如果頂層目標位於執行設定中,系統只會傳回執行設定的目標。這個選項「不會」排除已解析的工具鍊。
標記:build_file_semantics
--universe_scope=<comma-separated list of options> 預設值:「」
以半形逗號分隔的目標模式組合 (加法和減法)。查詢可於由指定目標的遞移性通過所定義的宇宙中執行。這個選項可用於查詢和 cquery 指令。對 cquery 來說,這個選項的輸入內容就是所有答案的基礎,因此這個選項可能會影響設定和轉換。如未指定此選項,系統會假設頂層目標為查詢運算式剖析的目標。注意事項:在 cquery 中,如未指定這個選項,如果無法以頂層選項建構從查詢運算式剖析的目標,建構可能會中斷。
標記:loading_and_analysis
與 Bzlmod 輸出內容和語意相關的選項:
會累積 --allow_yanked_versions=<a string> 個用途
指定模組版本時,請以「<module1>@<version1>,<module2>@<version2>」格式指定在已解析的依附元件圖中,即使這些版本來源不是來自 NonRegistryOverride,仍可在存放區中宣告這些版本。否則,分割版本會導致解析失敗。您也可以使用「BZLMOD_ALLOW_YANKED_VERSIONS」環境變數定義允許的分割版本。您可使用關鍵字「全部」停用這項檢查 (不建議使用)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off> 預設值:「錯誤」
檢查 Bazel 模組的 Bazel 版本相容性。有效值為「error」:可將其提報至解決失敗;設為「off」可停用檢查,「warning」則能在偵測到不相符時顯示警告。
標記:loading_and_analysis
--check_direct_dependencies=<off, warning or error> 預設值:「warning」
檢查根模組中宣告的直接「bazel_dep」依附元件,是否與已解析依附元件圖表中的版本相同。有效值為「off」可停用檢查,「warning」會在偵測到不相符時顯示警告,或是「error」將問題提報至解決失敗。
標記:loading_and_analysis
--[no]ignore_dev_dependency 預設值:「false」
如果為 true,Bazel 會忽略根模組 MODULE.bazel 中宣告為「dev_dependency」的「bazel_dep」和「use_extension」。請注意,如果根模組不是根模組,無論此標記的值為何,系統一律會忽略這些開發依附元件。
標記:loading_and_analysis
--lockfile_mode=<off, update or error> (預設):「更新」
指定使用 Lockfile 的方式,以及是否要使用。有效值為「update」可使用 Lockfile,並在出現變更時進行更新;「error」表示使用 Lockfile,但並非最新版本,會擲回錯誤;如果未更新,則為「off」。
標記:loading_and_analysis
會累積 --override_module=<an equals-separated mapping of module name to path> 個用途
以 <module name>=<path> 的格式覆寫本機路徑的模組。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則該路徑會與目前的工作目錄相對。如果指定路徑的開頭是「%workspace%」,代表與工作區根目錄 (也就是「bazel info workspace」的輸出內容) 有關。
會累積 --registry=<a string> 個用途
指定要用來尋找 Bazel 模組依附元件的登錄檔。順序很重要:系統會先在較早的登錄檔中查詢模組,而且只有在之後的登錄檔中缺少模組時,才會改回使用之後的登錄檔。
標記:changes_inputs
--vendor_dir=<a path> 預設:查看說明
指定應在廠商模式下保存外部存放區的目錄,不論是用於擷取或建立使用這些存放區。路徑可以指定為絕對路徑或相對於工作區目錄的路徑。
標記:loading_and_analysis
會觸發建構時間最佳化的選項:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 預設值:「1s:2,20s:3,1m:5」
限制如果已達到,GcThrashingDetector 會透過 OOM 讓 Bazel 當機,每項限制都以 <period>:<count> 指定,週期為時間長度,計數代表正整數。如果 <period> 內連續 <count> 個 GC 數量超過 --gc_thrashing_threshold 百分比,系統就會觸發 OOM。如要指定多個限制,請以半形逗號分隔。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生完整 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示完整 GC 事件永遠不會觸發下降。如果達到上限,在完整 GC 事件發生且超過保留堆積百分比門檻時,系統不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生輕微 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示次要 GC 事件永遠不會觸發下降。一旦達到限制,發生輕微 GC 事件且超過保留堆積百分比門檻時,系統就不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 預設值:「85」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量至少達到這個門檻,就會捨棄不必要的暫時性 SkyFrame 狀態。調整這個做法,即可減少垃圾收集造成的實際時間影響,也就是以下情形:GC 輾轉現象,是:(i) 這個臨時狀態的記憶體用量造成,(ii) 比在需要時重新建構狀態的成本高昂。
標記: host_machine_resource_optimizations
影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock> 預設:查看說明
記錄指令期間的 Java 航班/機票記錄工具設定檔。支援的剖析事件類型之一 (CPU、牆、分配或鎖定) 必須以引數的形式指定。設定檔將寫入一個檔案,並以事件類型在輸出基本目錄下命名。這個旗標的語法和語意日後可能會變更,以支援其他設定檔類型或輸出格式,請自行承擔風險。
--[no]experimental_record_metrics_for_all_mnemonics 預設值:「false」
根據預設,動作類型數量限制為已執行次數最多的 20 種記憶。如果設定這個選項,系統將寫入所有助測器的統計資料。
指定或變更不屬於其他類別 Bazel 指令的一般輸入選項:
--experimental_resolved_file_instead_of_workspace=<a string> 預設值:「」
如果讀取指定的已解析檔案 (而非 WORKSPACE 檔案) 為非空白檔案
標記: changes_inputs
遠端快取和執行選項:
--experimental_downloader_config=<a string> 預設:查看說明
指定要用於設定遠端下載程式的檔案。這個檔案由各行組成,每個指令都是以指令 (「allow」、「block」或「rewrite」) 開頭,後面接有主機名稱 (適用於「allow」和「block」) 或兩個模式,一個要比對做為替代網址,另一個則做為替代網址,並以「$1」開頭的反向參照。即使多個「重新編寫」指令,也可視為相同網址的「rewrite」指令。
--experimental_worker_for_repo_fetching=<off, platform, virtual or auto> 預設值:「auto」
用於存放區擷取的執行緒模式。如果設為「off」,系統就不會使用任何工作站執行緒,且會重新啟動存放區擷取作業。如果設為「平台」,則會使用平台執行緒 (即 OS 執行緒) 或虛擬執行緒 (如設為「virtual」)。如果設為「auto」,系統就會在可用的情況下使用虛擬執行緒 (即在 JDK 21 以上版本中執行),否則就不會使用工作站執行緒。
其他未分類的選項。
會累積 --override_repository=<an equals-separated mapping of repository name to path> 個用途
用 <repository name>=<path> 的格式覆寫本機路徑的存放區。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則以相對路徑為準。如果指定路徑的開頭是「%workspace%」,代表該路徑與工作區根目錄 (也就是「bazel info workspace」的輸出內容) 有關
控制建構作業執行作業的選項:
是否要直接呼叫檔案系統來建立符號連結樹狀結構
標記:loading_and_analysisexecutionexperimental
--[no]experimental_persistent_aar_extractor 預設值:「false」
使用工作站啟用永久性擷取器。
標記:execution
--[no]experimental_remotable_source_manifests 預設值:「false」
是否要讓來源資訊清單動作可恢復運作
標記:loading_and_analysisexecutionexperimental
--[no]experimental_split_coverage_postprocessing 預設值:「false」
如果為 true,Bazel 會在新的另一個環境中執行涵蓋率後續處理來進行測試。
標記:execution
--[no]experimental_strict_fileset_output 預設值:「false」
如果啟用此選項,檔案集會將所有輸出構件視為一般檔案。不會週遊目錄,也不會對符號連結敏感。
標記:execution
--modify_execution_info=<regex=[+-]key,regex=[+-]key,...> 預設值:「」
根據動作記憶法,在動作的執行資訊中新增或移除鍵。僅適用於支援執行資訊的動作。許多常見動作都支援執行資訊,例如 Genrule、CppCompile、Javac、StarlarkAction、TestRunner。由於許多規則運算式都可能適用於同一個文法,因此指定多個值時,順序很重要。 語法:「regex=[+-]key,regex=[+-]key,...」。 範例: 「.*=+x,.*=-y,.*=+z」會將「x」和「z」加入,並從所有動作的執行作業資訊中移除「y」。 「Genrule=+requires-x」會在所有 Genrule 動作的執行資訊中加入「requires-x」。 「(?!Genrule).*=-requires-x' 會從所有非 Genrule 動作的執行資訊中移除「requires-x」。
標記:executionaffects_outputsloading_and_analysis
--persistent_android_dex_desugar
使用工作站啟用持續的 Android dex 和去糖動作。
展開至:
  --internal_persistent_android_dex_desugar
  --strategy=Desugar=worker
  --strategy=DexBuilder=worker

標記: host_machine_resource_optimizationsexecution
--persistent_android_resource_processor
使用工作站啟用永久 Android 資源處理器。
展開至:
--internal_persistent_busybox_tools
--strategy=AaptPackage=worker
--strategy=AndroidResourceParser=worker
--strategy=AndroidResourceValidator=worker
--strategy=AndroidResourceCompiler=worker
--strategy=RClassGenerator=worker
--strategy=AndroidResourceLink=worker
--strategy=AndroidAapt2=worker
--strategy=AndroidAssetMerger=worker
--strategy=AndroidResourceMerger=worker
--strategy=AndroidCompiledResourceMerger=worker
--strategy=ManifestMerger=worker
--strategy=AndroidManifestMerger=worker
--strategy=ManifestMerger=worker
--strategy=AndroidManifestMerger=worker



--strategy=Aapt2Optimize=worker--strategy=AARGenerator=worker--strategy=ProcessDatabinding=worker--strategy=GenerateDataBindingBaseClasses=workerhost_machine_resource_optimizationsexecution
--persistent_multiplex_android_dex_desugar
使用工作站啟用持續的多工處理 Android dex 和去糖動作。
展開至:
  --persistent_android_dex_desugar
  --internal_persistent_multiplex_android_dex_desugar

標記: host_machine_resource_optimizationsexecution
--persistent_multiplex_android_resource_processor
使用工作站啟用永久多工 Android 資源處理器。
展開至:
--persistent_android_resource_processor
--modify_execution_info=AaptPackage=+supports-multiplex-workers
--modify_execution_info=AndroidResourceParser=+supports-multiplex-workers
--modify_execution_info=AndroidResourceValidator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceCompiler=+supports-multiplex-workers
--modify_execution_info=RClassGenerator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceLink=+supports-multiplex-workers
--modify_execution_info=AndroidAapt2=+supports-multiplex-workers
--modify_execution_info=AndroidAssetMerger=+supports-multiplex-workers
--modify_execution_info=AndroidResourceMerger=+supports-multiplex-workers
--modify_execution_info=AndroidCompiledResourceMerger=+supports-multiplex-workers
--modify_execution_info=ManifestMerger=+supports-multiplex-workers
--modify_execution_info=AndroidManifestMerger=+supports-multiplex-workers
--modify_execution_info=ManifestMerger=+supports-multiplex-workers
--modify_execution_info=AndroidManifestMerger=+supports-multiplex-workers
--modify_execution_info=Aapt2Optimize=+supports-multiplex-workers
1}
--modify_execution_info=AARGenerator=+supports-multiplex-workershost_machine_resource_optimizationsexecution
--persistent_multiplex_android_tools
啟用永久和多工處理 Android 工具 (DEX 處理、脫糖、資源處理)。
展開至:
  --internal_persistent_multiplex_busybox_tools
  --persistent_multiplex_android_resource_processor
  --persistent_multiplex_android_dex_desugar

標記: host_machine_resource_optimizationsexecution
--[no]use_target_platform_for_tests 預設值:「false」
如果為 true,Bazel 會使用目標平台來執行測試,而非測試執行群組。
標記: execution
設定用於執行動作的工具鍊的選項:
--android_compiler=<a string> 預設:查看說明
Android 目標編譯器。
標記:affects_outputsloading_and_analysisloses_incremental_state
--android_crosstool_top=<a build target label> 預設值:「//external:android/crosstool」
用於 Android 建構作業的 C++ 編譯器的位置。
標記:affects_outputschanges_inputsloading_and_analysisloses_incremental_state
--android_grte_top=<a label> 預設:查看說明
Android 目標 grte_top。
標記:changes_inputsloading_and_analysisloses_incremental_state
--android_manifest_merger=<legacy, android or force_android> 預設值:「android」
選取要用於 android_binary 規則的資訊清單合併工具。協助從舊版合併工具轉換至 Android 資訊清單合併工具的旗標。
標記:affects_outputsloading_and_analysisloses_incremental_state
--android_platforms=<a build target label> 預設值:「」
設定 android_binary 目標使用的平台。如果指定多個平台,二進位檔就是笨重的 APK,其中包含每個指定目標平台的原生二進位檔。
標記:changes_inputsloading_and_analysisloses_incremental_state
--android_sdk=<a build target label> 預設值:「@bazel_tools//tools/android:sdk」
指定用於建構 Android 應用程式的 Android SDK/平台。
標記:changes_inputsloading_and_analysisloses_incremental_state
--apple_crosstool_top=<a build target label> 預設值:「@bazel_tools//tools/cpp:toolchain」
用於 Apple 和 Objc 規則及其依附元件的 Crosstool 套件標籤。
標記:loses_incremental_statechanges_inputs
--cc_output_directory_tag=<a string> 預設值:「」
指定要新增至設定目錄的後置字串。
標記:affects_outputs
--compiler=<a string> 預設:查看說明
用於編譯目標的 C++ 編譯器。
標記:loading_and_analysisexecution
--coverage_output_generator=<a build target label> 預設值:「@bazel_tools//tools/test:lcov_merger」
用於後處理原始涵蓋率報表的二進位檔位置。這必須是包含單一檔案 (即二進位) 的檔案群組。預設值為「//tools/test:lcov_merger」。
標記:changes_inputsaffects_outputsloading_and_analysis
--coverage_report_generator=<a build target label> 預設值:「@bazel_tools//tools/test:coverage_report_generator」
用於產生涵蓋率報表的二進位檔案位置。這必須是包含單一檔案 (即二進位) 的檔案群組。預設值為「//tools/test:coverage_report_generator」。
標記:changes_inputsaffects_outputsloading_and_analysis
--coverage_support=<a build target label> 預設值:「@bazel_tools//tools/test:coverage_support」
每個測試動作收集程式碼涵蓋率的測試動作所需的支援檔案位置。預設值為「//tools/test:coverage_support」。
標記:changes_inputsaffects_outputsloading_and_analysis
--custom_malloc=<a build target label> 預設:查看說明
指定自訂 Malloc 實作。這項設定會覆寫建構規則中的 Malloc 屬性。
標記:changes_inputsaffects_outputs
會累積 --experimental_add_exec_constraints_to_targets=<a '<RegexFilter>=<label1>[,<label2>,...]' assignment> 個用途
逗號分隔的規則運算式清單,每個運算式都會按照「-」(排除運算式) 開頭,指派 (=) 至以半形逗號分隔的限制值目標清單。如果目標未符合排除運算式,且至少有一個正運算式,系統會假設該運算式將限制值宣告為執行限制,並據此執行該目標工具鍊的解析作業。範例://demo,-test=@platforms//cpus:x86_64 會在 //demo 底下的任何目標中加入「x86_64」,但名稱包含「test」的目標除外。
標記:loading_and_analysis
--[no]experimental_include_xcode_execution_requirements 預設值:「false」
如果已設定,則在每個 Xcode 動作中加入「requires-xcode:{version}」執行要求。如果 Xcode 版本具有連字號標籤,請同時加入「requires-xcode-label:{version_label}」執行要求。
標記:loses_incremental_stateloading_and_analysisexecution
--[no]experimental_prefer_mutual_xcode預設值:「true」
如果為 true,請使用本機和遠端可用的最新 Xcode。如果設為 False 或沒有共同可用的版本,請使用 xcode-select 選取的本機 Xcode 版本。
標記:loses_incremental_state
--extra_execution_platforms=<comma-separated list of options> 預設值:「」
可做為執行平台來執行動作的平台。平台可以根據確切目標或目標模式指定。系統會先考量這些平台,再透過暫存_execution_platforms() 宣告到 WORKSPACE 檔案中的平台。這個選項只能設定一次,之後的項目會覆寫先前的旗標設定。
標記:execution
會累積 --extra_toolchains=<comma-separated list of options> 個用途
在工具鍊解析期間要考量的工具鍊規則。工具鍊可以根據確切目標或目標模式指定。系統會先考量這些工具鍊,再透過暫存_toolchains() 在 WORKSPACE 檔案內宣告的項目。
標記:affects_outputschanges_inputsloading_and_analysis
--grte_top=<a label> 預設:查看說明
已勾選 libc 程式庫的標籤。預設值是由跨工具工具鍊選取,您幾乎不需要覆寫這個值。
標記:action_command_linesaffects_outputs
--host_compiler=<a string> 預設:查看說明
免人工管理標記。將在日後推出的版本中移除。
標記:loading_and_analysisexecution
--host_grte_top=<a label> 預設:查看說明
如果指定此選項,這項設定會覆寫執行設定的 libc 頂層目錄 (--grte_top)。
標記:action_command_linesaffects_outputs
--host_platform=<a build target label> 預設值:「@local_config_platform//:host」
描述主機系統的平台規則標籤。
標記:affects_outputschanges_inputsloading_and_analysis
--[no]incompatible_dont_enable_host_nonhost_crosstool_features預設值:「true」
如果設為 True,Bazel 就不會啟用 c++ 工具鍊中的「主機」和「非主機」功能 (詳情請參閱 https://github.com/bazelbuild/bazel/issues/7407)。
標記:loading_and_analysisincompatible_change
--[no]incompatible_enable_android_toolchain_resolution預設值:「true」
使用工具鍊解析度選取 Android 規則 (Starlark 和原生) 的 Android SDK
標記: loading_and_analysisincompatible_change
--[no]incompatible_enable_apple_toolchain_resolution 預設值:「false」
使用工具鍊解析功能,選取 Apple SDK for Apple 規則 (Starlark 和原生程式碼)
代碼: loading_and_analysisincompatible_change
--[no]incompatible_make_thinlto_command_lines_standalone預設值:「true」
這個標記為 noop,且已排定移除時間。
標記:no_opincompatible_change
--[no]incompatible_remove_legacy_whole_archive預設值:「true」
如果設為 True,Bazel 預設不會連結整個封存檔中的程式庫依附元件 (如需遷移操作說明,請參閱 https://github.com/bazelbuild/bazel/issues/7362)。
標記:loading_and_analysisincompatible_change
--[no]incompatible_require_ctx_in_configure_features預設值:「true」
這個標記為 noop,且已排定移除時間。
標記:no_opincompatible_change
--[no]incompatible_strip_executable_safely 預設值:「false」
如果為 true,可執行檔的移除動作會使用旗標 -x,這不會破壞動態符號解析功能。
標記:action_command_linesincompatible_change
--[no]interface_shared_objects預設值:「true」
如果工具鍊支援介面共用物件,請使用介面共用物件。所有 ELF 工具鍊目前都支援這項設定。
標記:loading_and_analysisaffects_outputsaffects_outputs
--ios_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
指定用於建構 iOS 應用程式的 iOS SDK 版本。如果未指定,則會使用「xcode_version」中的預設 iOS SDK 版本。
標記:loses_incremental_state
--macos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
指定要用於建構 macOS 應用程式的 macOS SDK 版本。如果未指定,系統會使用「xcode_version」中的預設 macOS SDK 版本。
標記:loses_incremental_state
--minimum_os_version=<a string> 預設:查看說明
編譯目標的最低作業系統版本。
標記:loading_and_analysisaffects_outputs
--platform_mappings=<a relative path> 預設值:「」
對應檔案的位置,用於說明如未設定任何平台,或該平台已存在時要設定哪些平台,該平台會使用哪個平台。此值必須與主要工作區根層級相關。預設值為「platform_mappings」(直接位於工作區根目錄下的檔案)。
標記:affects_outputschanges_inputsloading_and_analysisimmutable
--platforms=<a build target label> 預設值:「」
平台規則標籤,用於說明目前指令的目標平台。
標記:affects_outputschanges_inputsloading_and_analysis
--python2_path=<a string> 預設:查看說明
已淘汰,無人工管理,已由「--incompatible_use_python_toolchains」停用。
標記:no_opdeprecated
--python3_path=<a string> 預設:查看說明
已淘汰,無人工管理,已由「--incompatible_use_python_toolchains」停用。
標記:no_opdeprecated
--python_path=<a string> 預設:查看說明
為在目標平台執行 Python 目標而叫用的 Python 解譯器絕對路徑。已淘汰;已由 --incompatible_use_python_toolchains 停用。
標記:loading_and_analysisaffects_outputs
--python_top=<a build target label> 預設:查看說明
代表已叫用 Python 解譯器在目標平台上執行 Python 目標的 py_runtime 標籤。已淘汰;已由 --incompatible_use_python_toolchains 停用。
標記:loading_and_analysisaffects_outputs
--tvos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
指定用於建構 tvOS 應用程式的 tvOS SDK 版本。如果未指定,系統會使用「xcode_version」中的預設 tvOS SDK 版本。
標記:loses_incremental_state
--watchos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
指定用於建構 watchOS 應用程式的 watchOS SDK 版本。如果未指定,系統會使用「xcode_version」中的預設 watchOS SDK 版本。
標記:loses_incremental_state
--xcode_version=<a string> 預設:查看說明
如有指定,系統會使用指定版本的 Xcode 進行相關建構動作。如未指定,系統會使用執行程式預設版本的 Xcode。
標記:loses_incremental_state
--xcode_version_config=<a build target label> 預設值:「@bazel_tools//tools/cpp:host_xcodes」
在建構設定中選取 Xcode 版本所使用的 xcode_config 規則標籤。
標記:loses_incremental_stateloading_and_analysis
控制指令輸出內容的選項:
--[no]apple_generate_dsym 預設值:「false」
是否要產生偵錯符號 (.dSYM) 檔案。
標記:affects_outputsaction_command_lines
如果為 true,請針對所有目標建構執行檔案符號連結樹系。設為 false 時,請只在本地動作、測試或執行指令必要時寫入。
標記:affects_outputs
--[no]build_runfile_manifests預設值:「true」
如果為 true,請為所有目標寫入執行檔案資訊清單。如果設為 false,請省略這些參數。如果為 false,本機測試就無法執行。
標記:affects_outputs
--[no]build_test_dwp 預設值:「false」
啟用後,以靜態方式建構 C++ 測試時,系統也會自動建構測試二進位檔的 .dwp 檔案。
標記:loading_and_analysisaffects_outputs
--cc_proto_library_header_suffixes=<comma-separated set of options> 預設值:「.pb.h」
設定 cc_proto_library 建立的標頭檔案後置字串。
標記:affects_outputsloading_and_analysis
--cc_proto_library_source_suffixes=<comma-separated set of options> 預設值:「.pb.cc」
設定 cc_proto_library 建立的來源檔案後置字串。
標記:affects_outputsloading_and_analysis
--[no]experimental_proto_descriptor_sets_include_source_info 預設值:「false」
針對 proto_library 中的替代 Java API 版本執行額外動作。
標記:affects_outputsloading_and_analysisexperimental
--[no]experimental_proto_extra_actions 預設值:「false」
針對 proto_library 中的替代 Java API 版本執行額外動作。
標記:affects_outputsloading_and_analysisexperimental
--[no]experimental_save_feature_state 預設值:「false」
將已啟用和要求的功能狀態儲存為編譯的輸出內容。
標記:affects_outputsexperimental
--fission=<a set of compilation modes> 預設值:「no」
指定哪些編譯模式會對 C++ 編譯和連結使用擴散。可以是 {'fastbuild', 'dbg', 'opt'} 的組合或特殊值「yes」,即可啟用所有模式,而設為「no」以停用所有模式。
標記:loading_and_analysisaction_command_linesaffects_outputs
--[no]incompatible_always_include_files_in_data預設值:「true」
如果為 true,原生規則會將資料依附元件的 <code>DefaultInfo.files</code> 新增至 runfile,以符合 Starlark 規則的建議行為 (https://bazel.build/extending/rules#runfiles_features_to_avoid) 。
標記:affects_outputsincompatible_change
--[no]legacy_external_runfiles預設值:「true」
如果為 true,請針對 .runfiles/wsname/external/repo 和 .runfiles/repo 中的外部存放區建構 runfile symlink 樹系。
標記:affects_outputs
--[no]objc_generate_linkmap 預設值:「false」
指定是否要產生連結對應檔案。
標記:affects_outputs
--[no]save_temps 預設值:「false」
如有設定,系統會儲存 gcc 的暫時輸出。其中包括 .s 檔案 (組合器程式碼)、.i 檔案 (預先處理的 C) 和 .ii 檔案 (預先處理的 C++)。
標記:affects_outputs
可讓使用者設定預定輸出內容的選項,這會影響其值,但其值與存在不同:
會累積 --action_env=<a 'name=value' assignment with an optional value part> 個用途
指定要用於目標設定動作的環境變數組合。變數可以用名稱指定;在此情況下,值會從叫用環境取得;您也可以用 name=value 組合 (用來設定與叫用環境無關的值)。這個選項可以多次使用;對於同一個變數而言,選項有「最新的勝出項目」,以及因不同變數而累積的選項。
標記:action_command_lines
--android_cpu=<a string> 預設值:「armeabi-v7a」
Android 目標 CPU。
標記:affects_outputsloading_and_analysisloses_incremental_state
--[no]android_databinding_use_androidx預設值:「true」
產生與 AndroidX 相容的資料繫結檔案。這個函式只能搭配資料繫結 v2 使用。這個旗標為免人工管理。
標記:affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]android_databinding_use_v3_4_args預設值:「true」
將 Android Databinding v2 與 3.4.0 引數搭配使用。這個旗標為免人工管理。
標記:affects_outputsloading_and_analysisloses_incremental_stateexperimental
--android_dynamic_mode=<off, default or fully> 預設值:「關閉」
決定當 cc_binary 未明確建立共用程式庫時,是否要動態連結 Android 規則的 C++ 解碼。「default」表示 pzel 會選擇是否要動態連結。「完整」表示所有程式庫將動態連結。如果關閉,則主要會以靜態模式連結所有程式庫。
標記:affects_outputsloading_and_analysis
--android_manifest_merger_order=<alphabetical, alphabetical_by_configuration or dependency> 預設值:「alphabetical」
設定要傳遞至 Android 二進位檔資訊清單合併工具的資訊清單順序。ALPHABETICAL 表示資訊清單會依照執行作業根目錄的路徑排序。ALPHABETICAL_BY_CONFIGURATION 代表資訊清單會依照輸出目錄中設定目錄的路徑排序。DEPENDENCY 表示資訊清單會按照各個程式庫的資訊清單排序,在依附元件的資訊清單前面。
標記:action_command_linesexecution
--[no]android_resource_shrinking 預設值:「false」
為使用 ProGuard 的 android_binary APK 啟用資源縮減功能。
標記:affects_outputsloading_and_analysis
--[no]build_python_zip 預設值:「auto」
建構 Python 執行檔 ZIP 檔案;在 Windows 上,關閉其他平台
標記: affects_outputs
會累積 --catalyst_cpus=<comma-separated list of options> 個用途
用於建構 Apple Catalyst 二進位檔的架構清單 (以半形逗號分隔)。
標記:loses_incremental_stateloading_and_analysis
--[no]collect_code_coverage 預設值:「false」
如有指定,Bazel 就會檢測程式碼 (盡可能使用離線檢測功能),並在測試期間收集涵蓋率資訊。只有相符的目標 --instrumentation_filter 會受到影響。一般而言,不應直接指定這個選項,請改用「bazelCoverage」指令。
標記:affects_outputs
--compilation_mode=<fastbuild, dbg or opt> [-c] 預設值:「Fastbuild」
指定二進位檔的建構模式。值:「fastbuild」、「dbg」、「opt」。
標記:affects_outputsaction_command_lines
會累積 --conlyopt=<a string> 個用途
編譯 C 來源檔案時,可傳送至 gcc 的其他選項。
標記:action_command_linesaffects_outputs
會累積 --copt=<a string> 個用途
傳送至 gcc 的其他選項。
標記:action_command_linesaffects_outputs
--cpu=<a string> 預設值:「」
目標 CPU。
標記:changes_inputsaffects_outputs
--cs_fdo_absolute_path=<a string> 預設:查看說明
使用 CSFDO 設定檔資訊最佳化編譯。為內含設定檔、原始或已建立索引 LLVM 設定檔的 ZIP 檔案指定絕對路徑名稱。
標記:affects_outputs
--cs_fdo_instrument=<a string> 預設:查看說明
產生具有情境敏感 FDO 檢測的二進位檔。使用 Clang/LLVM 編譯器時,也接受在執行階段傾印原始設定檔檔案的目錄名稱。
標記:affects_outputs
--cs_fdo_profile=<a build target label> 預設:查看說明
cs_fdo_profile,代表要用於最佳化的結構定義敏感設定檔。
標記:affects_outputs
會累積 --cxxopt=<a string> 個用途
在編譯 C++ 來源檔案時,傳送至 gcc 的其他選項。
標記:action_command_linesaffects_outputs
會累積 --define=<a 'name=value' assignment> 個用途
每個 --Definition 選項會指定建構變數的指派作業。如果變數有多個值,則會傳回最後一個值。
標記:changes_inputsaffects_outputs
--dynamic_mode=<off, default or fully> 預設值:「default」
決定 C++ 二進位檔是否會動態連結。「default」表示 Bazel 會選擇是否要動態連結。「完整」表示所有程式庫將動態連結。如果關閉,則主要會以靜態模式連結所有程式庫。
標記:loading_and_analysisaffects_outputs
--[no]enable_fdo_profile_absolute_path預設值:「true」
如果設定此設定,使用 fdo_清楚說明_profile_path 會引發錯誤。
標記:affects_outputs
--[no]enable_runfiles 預設值:「auto」
啟用執行檔案符號連結樹狀結構。根據預設,在 Windows 在其他平台上是關閉狀態。
標記:affects_outputs
會累積 --experimental_action_listener=<a build target label> 個用途
建議使用切面。使用 action_listener 將 extra_action 附加至現有的建構動作。
標記:executionexperimental
--[no]experimental_android_compress_java_resources 預設值:「false」
壓縮 APK 中的 Java 資源
標記:affects_outputsloading_and_analysisexperimental
--[no]experimental_android_databinding_v2預設值:「true」
使用 Android 資料繫結第 2 版。這個旗標為免人工管理。
標記:affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]experimental_android_resource_shrinking 預設值:「false」
為使用 ProGuard 的 android_binary APK 啟用資源縮減功能。
標記:affects_outputsloading_and_analysis
--[no]experimental_android_rewrite_dexes_with_rex 預設值:「false」
使用 Rex 工具重新編寫 dex 檔案
標記:affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]experimental_collect_code_coverage_for_generated_files 預設值:「false」
如有指定,Bazel 也會針對產生的檔案產生涵蓋率資訊。
標記:affects_outputs
--experimental_objc_fastbuild_options=<comma-separated list of options> 預設值:「-O0,-DDEBUG=1」
使用這些字串做為 objc Fastbuild 編譯器選項。
標記:action_command_lines
--[no]experimental_omitfp 預設值:「false」
如果為 True,請使用 libunwind 進行堆疊展開,並使用 -fomit-frame-pointer 和 -fasync-unwind-tables 編譯。
標記:action_command_linesaffects_outputsexperimental
--experimental_output_paths=<off, content or strip> 預設值:「關閉」
要在輸出樹狀結構規則中的哪個位置寫入輸出內容,特別是針對多平台 / 多設定版本。這是非常實驗性。詳情請參閱 https://github.com/bazelbuild/bazel/issues/6526。Starlark 動作可將「supports-path-mapping」鍵新增至「execution_requirements」索引,選擇採用路徑對應。
標記:loses_incremental_statebazel_internal_configurationaffects_outputsexecution
會累積 --experimental_override_name_platform_in_output_dir=<a 'label=value' assignment> 個用途
每個項目均應採用格式為「label=value」,其中標籤是指平台,而值則是要在輸出路徑中使用的簡稱。僅適用於 --experimental_platform_in_output_dir 為 true 的情況。命名優先順序最高。
標記:affects_outputsexperimental
--[no]experimental_platform_in_output_dir 預設值:「false」
如果為 true,輸出目錄名稱會使用目標平台的簡稱,而不是 CPU。確切機制屬於實驗性質,隨時可能變更:首先,在極少數的情況下,--platforms 選項沒有確切的值,系統會使用平台選項的雜湊值。接下來,如果目前平台的任何簡稱是由 --experimental_override_name_platform_in_output_dir 註冊,系統會使用簡稱。然後,如果已設定 --experimental_use_platforms_in_output_dir_legacy_heuristic,請使用以目前平台標籤為依據的簡稱。最後,平台選項的雜湊只有在不得已的情況下才能使用。
標記:affects_outputsexperimental
--[no]experimental_use_llvm_covmap 預設值:「false」
如有指定,Bazel 會在啟用 collect_code_coverage 時,產生 llvm-cov 涵蓋範圍地圖資訊,而非 gcov。
標記:changes_inputsaffects_outputsloading_and_analysisexperimental
--[no]experimental_use_platforms_in_output_dir_legacy_heuristic預設值:「true」
請將這個標記僅用於建議的遷移或測試策略。請注意,經驗法則有已知的不足之處,建議您改用 --experimental_override_name_platform_in_output_dir。
標記:affects_outputsexperimental
--fat_apk_cpu=<comma-separated set of options> 預設值:「armeabi-v7a」
設定這個選項會啟用笨重 APK,此 APK 會包含所有指定目標架構的原生二進位檔,例如--fat_apk_cpu=x86,armeabi-v7a. 如果指定這個旗標,Android_binary 規則的依附元件會忽略 --android_cpu。
標記:affects_outputsloading_and_analysisloses_incremental_state
--[no]fat_apk_hwasan 預設值:「false」
免人工管理標記。將在日後推出的版本中移除。
標記:no_op
--fdo_instrument=<a string> 預設:查看說明
使用 FDO 檢測功能產生二進位檔。使用 Clang/LLVM 編譯器時,也接受在執行階段傾印原始設定檔檔案的目錄名稱。
標記:affects_outputs
--fdo_optimize=<a string> 預設:查看說明
使用 FDO 設定檔資訊最佳化編譯。指定含有 .gcda 檔案樹狀結構的 ZIP 檔案名稱、包含自動設定檔的 afdo 檔案,或是 LLVM 設定檔檔案。此旗標也接受指定為標籤的檔案 (例如「//foo/bar:file.afdo」,因此您可能需要將「exports_files」指令加入對應的套件),以及指向「fdo_profile」目標的標籤。此旗標將由「fdo_profile」規則取代。
標記:affects_outputs
--fdo_prefetch_hints=<a build target label> 預設:查看說明
使用快取預先擷取提示。
標記:affects_outputs
--fdo_profile=<a build target label> 預設:查看說明
代表要用於最佳化的設定檔 fdo_profile。
標記:affects_outputs
會累積 --features=<a string> 個用途
系統會針對在目標設定中建立的目標,預設啟用或停用特定功能。如果指定 -<feature>,該功能就會停用。排除功能一律會覆寫正值。另請參閱 --host_features
標記: changes_inputsaffects_outputs
--[no]force_pic 預設值:「false」
如果啟用這個選項,所有 C++ 編譯就會產生位置獨立程式碼 (「-fPIC」),連結偏好 PIC 預先建構程式庫,而非非 PIC 程式庫,而連結會產生位置獨立的執行檔 (「-pie」)。
標記:loading_and_analysisaffects_outputs
會累積 --host_action_env=<a 'name=value' assignment with an optional value part> 個用途
指定適用於執行設定動作的環境變數組合。變數可以用名稱指定;在此情況下,值會從叫用環境取得;您也可以用 name=value 組合 (用來設定與叫用環境無關的值)。這個選項可以多次使用;對於同一個變數而言,選項有「最新的勝出項目」,以及因不同變數而累積的選項。
標記:action_command_lines
--host_compilation_mode=<fastbuild, dbg or opt> 預設值:「opt」
指定建構期間用來內建工具的模式。值:「fastbuild」、「dbg」、「opt」。
標記:affects_outputsaction_command_lines
會累積 --host_conlyopt=<a string> 個用途
在執行設定中編譯 C (而非 C++) 來源檔案時,可傳送至 C 編譯器的其他選項。
標記:action_command_linesaffects_outputs
會累積 --host_copt=<a string> 個用途
針對執行設定中建立的工具,傳送至 C 編譯器的其他選項。
標記:action_command_linesaffects_outputs
--host_cpu=<a string> 預設值:「」
主機 CPU。
標記:changes_inputsaffects_outputs
會累積 --host_cxxopt=<a string> 個用途
針對執行設定中建立的工具,傳送至 C++ 編譯器的其他選項。
標記:action_command_linesaffects_outputs
會累積 --host_features=<a string> 個用途
針對在執行設定中建立的目標,系統預設會啟用或停用特定功能。如果指定 -<feature>,該功能就會停用。排除功能一律會覆寫正值。
標記:changes_inputsaffects_outputs
--host_force_python=<PY2 or PY3> 預設:查看說明
覆寫執行設定的 Python 版本。可以是「PY2」或「PY3」。
標記:loading_and_analysisaffects_outputs
會累積 --host_linkopt=<a string> 個用途
在執行設定中連結工具時,將傳送至連結器的其他選項。
標記:action_command_linesaffects_outputs
--host_macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
主機目標的最低相容 macOS 版本。如果未指定,請使用「macos_sdk_version」。
標記:loses_incremental_state
會累積 --host_per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options> 個用途
在執行設定中編譯特定檔案時,選擇性傳送至 C/C++ 編譯器的其他選項。這個選項可以多次傳送。語法:regex_filter@option_1,option_2,...,option_n. regex_filter 代表包含和排除規則運算式模式的清單 (另請參閱 --instrumentation_filter)。 option_1 表示選項_n 代表任意指令列選項。如果選項中含有半形逗號,必須使用反斜線加上引號。選項可以包含 @。只有第一個 @ 用來分割字串。範例:--host_per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 會在 //foo/ 中所有 cc 檔案的 gcc 命令列中加上 -O0 指令列選項 ( bar.cc 除外)。
標記:action_command_linesaffects_outputs
--[no]incompatible_auto_exec_groups 預設值:「false」
啟用後,系統會自動為規則使用的每個工具鍊建立執行群組。為此,工作規則需要在其動作中指定「toolchain」參數。詳情請參閱 https://github.com/bazelbuild/bazel/issues/17134。
標記:affects_outputsincompatible_change
--[no]incompatible_merge_genfiles_directory預設值:「true」
如果為 true,genfiles 目錄會併入 bin 目錄。
標記:affects_outputsincompatible_change
--[no]instrument_test_targets 預設值:「false」
啟用涵蓋率功能後,用於指定是否要考量檢測測試規則。設定之後,系統會檢測 --instrumentation_filter 包含的測試規則。否則,測試規則一律會從涵蓋率檢測作業中排除。
標記:affects_outputs
--instrumentation_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths> 預設值:「-/javatests[/:],-/test/java[/:]」
涵蓋率啟用後,系統只會檢測規則中含有指定規則運算式 (以規則運算式為準) 所含名稱的規則。系統會改為排除前置字串「-」。請注意,只有在已啟用 --instrument_test_targets 時,系統才會檢測非測試規則。
標記:affects_outputs
--ios_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
目標模擬器和裝置相容的 iOS 最低版本。如果未指定,請使用「ios_sdk_version」。
標記:loses_incremental_state
會累積 --ios_multi_cpus=<comma-separated list of options> 個用途
用於建構 ios_application 的架構清單 (以半形逗號分隔)。結果是通用二進位檔,其中包含所有指定架構。
標記:loses_incremental_stateloading_and_analysis
--[no]legacy_whole_archive預設值:「true」
已淘汰,並由 --incompatible_remove_legacy_whole_Archive (詳情請參閱 https://github.com/bazelbuild/bazel/issues/7362)。開啟時,針對含有 linkshared=True 且含有 linkstatic=True 或「-static」連結的 cc_binary 規則的 --whole-Archive。這僅適用於回溯相容性。更理想的替代方法是在必要時使用 alwayslink=1。
標記:action_command_linesaffects_outputsdeprecated
會累積 --linkopt=<a string> 個用途
連結時傳送至 gCC 的其他選項。
標記:action_command_linesaffects_outputs
會累積 --ltobackendopt=<a string> 個用途
這是傳送至 LTO 後端步驟的其他選項 (在 --features=thin_lto 之下)。
標記:action_command_linesaffects_outputs
會累積 --ltoindexopt=<a string> 個用途
這個選項可讓你傳送至 LTO 索引步驟 (位於 --features=thin_lto 下方)。
標記:action_command_linesaffects_outputs
會累積 --macos_cpus=<comma-separated list of options> 個用途
用於建構 Apple macOS 二進位檔的逗號分隔架構清單。
標記:loses_incremental_stateloading_and_analysis
--macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
目標的相容 macOS 最低版本。如果未指定,請使用「macos_sdk_version」。
標記:loses_incremental_state
--memprof_profile=<a build target label> 預設:查看說明
使用 memprof 設定檔。
標記:affects_outputs
--[no]objc_debug_with_GLIBCXX 預設值:「false」
如果已設定,並將編譯模式設為「dbg」,請定義 GLIBCXX_DEBUG、GLIBCXX_DEBUG_PEDANTIC 和 GLIBCPP_CONCEPT_CHECKS。
標記:action_command_lines
--[no]objc_enable_binary_stripping 預設值:「false」
是否要在連結的二進位檔上執行符號和去解碼器去除。如果同時指定這個旗標和 --compile_mode=opt,系統就會執行二進位檔清理作業。
標記:action_command_lines
會累積 --objccopt=<a string> 個用途
編譯 Objective-C/C++ 來源檔案時,可傳送至 gcc 的其他選項。
標記:action_command_lines
會累積 --per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options> 個用途
編譯特定檔案時選擇性傳送至 gcc 的其他選項。這個選項可以多次傳送。語法:regex_filter@option_1,option_2,...,option_n. regex_filter 代表包含和排除規則運算式模式的清單 (另請參閱 --instrumentation_filter)。 option_1 表示選項_n 代表任意指令列選項。如果選項中含有半形逗號,必須使用反斜線加上引號。選項可以包含 @。只有第一個 @ 用來分割字串。範例:--per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 會在 //foo/ 中所有 cc 檔案的 gcc 命令列中加上 -O0 指令列選項 ( bar.cc 除外)。
標記:action_command_linesaffects_outputs
會累積 --per_file_ltobackendopt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options> 個用途
編譯特定後端物件時,選擇性傳遞至 LTO 後端的其他選項 (在 --features=thin_lto 底下)。這個選項可以多次傳送。語法:regex_filter@option_1,option_2,...,option_n. regex_filter 代表包含和排除規則運算式模式的清單, option_1 代表選項_n 代表任意指令列選項。如果選項中含有半形逗號,必須使用反斜線加上引號。選項可以包含 @。只有第一個 @ 用來分割字串。範例:--per_file_ltobackendopt=//foo/.*\.o,-//foo/bar\.o@-O0 會在 //foo/ 中所有檔案的 LTO 後端指令列中加入 -O0 指令列選項,但 bar.o 除外。
標記: action_command_linesaffects_outputs
--platform_suffix=<a string> 預設:查看說明
指定要新增至設定目錄的後置字串。
標記:loses_incremental_stateaffects_outputsloading_and_analysis
--propeller_optimize=<a build target label> 預設:查看說明
使用 Propeller 設定檔資訊將建構目標最佳化。螺旋槳設定檔必須包含至少一個檔案:CCC 設定檔和 ld 設定檔。此旗標接受建構標籤,該標籤必須參照探測器設定檔輸入檔案。舉例來說,定義標籤的 BUILD 檔案可能必須在 a/b/BUILD:propeller_optimize( name = "propeller_profile", cc_profile = "propeller_cc_profile.txt", ld_profile = "propeller_ld_profile.txt",)Exports_files 中,您都必須新增至對應檔案才能檢視。選項必須使用以下格式:--propeller_optimize=//a/b:propeller_profile
標記: action_command_linesaffects_outputs
--propeller_optimize_absolute_cc_profile=<a string> 預設:查看說明
Propeller 最佳化建構作業的 cc_profile 檔案的絕對路徑名稱。
標記:affects_outputs
--propeller_optimize_absolute_ld_profile=<a string> 預設:查看說明
Propeller 最佳化版本的 ld_profile 檔案的絕對路徑名稱。
標記:affects_outputs
--run_under=<a prefix in front of command> 預設:查看說明
在「test」和「run」指令的執行檔之前插入的前置字串。如果值為「foo -bar」,且執行命令列是「test_binary -baz」,則最終命令列是「foo -bar test_binary -baz」。這也可以是執行檔目標的標籤。例如:「valgrind」、「strace」、「strace -c」、「valgrind --quiet --num-callers=20」、「//package:target'」、「//package:target --options」。
標記:action_command_lines
--[no]share_native_deps預設值:「true」
如果為 True,系統會在不同目標之間共用包含相同功能的原生資料庫
標記: loading_and_analysisaffects_outputs
--[no]stamp 預設值:「false」
含有日期、使用者名稱、主機名稱、工作區資訊等的戳記二進位檔。
標記: affects_outputs
--strip=<always, sometimes or never> 預設值:「有時」
指定是否要移除二進位檔和共用程式庫 (使用「-Wl,--strip-debug」)。「sometimes」的預設值表示 iff --compile_mode=fastbuild。
標記:affects_outputs
會累積 --stripopt=<a string> 個用途
產生「<name>.stripped」二進位檔時的其他選項。
標記:action_command_linesaffects_outputs
會累積 --tvos_cpus=<comma-separated list of options> 個用途
用於建構 Apple tvOS 二進位檔的架構清單 (以半形逗號分隔)。
標記:loses_incremental_stateloading_and_analysis
--tvos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
目標模擬器和裝置相容的最低 tvOS 版本。如果未指定,請使用「tvos_sdk_version」。
標記:loses_incremental_state
會累積 --visionos_cpus=<comma-separated list of options> 個用途
用於建構 Apple visionOS 二進位檔的架構清單 (以半形逗號分隔)。
標記:loses_incremental_stateloading_and_analysis
會累積 --watchos_cpus=<comma-separated list of options> 個用途
用於建構 Apple watchOS 二進位檔的架構清單 (以半形逗號分隔)。
標記:loses_incremental_stateloading_and_analysis
--watchos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
目標模擬器和裝置適用的最低相容 watchOS 版本。如果未指定,請使用「watchos_sdk_version」。
標記:loses_incremental_state
--xbinary_fdo=<a build target label> 預設:查看說明
使用 XbinaryFDO 設定檔資訊最佳化編譯。指定預設跨二進位設定檔的名稱。這個選項搭配 --fdo_instrument/--fdo_optimize/--fdo_profile 與未指定 xbinary_fdo 的情況一起採用時,一律會採用這些選項。
標記:affects_outputs
會影響 Bazel 強制執行有效建構輸入內容 (規則定義、旗標組合等) 的選項:
--auto_cpu_environment_group=<a build target label> 預設值:「」
宣告用於將 CPU 值自動對應至 target_environment 值的環境_group。
標記:changes_inputsloading_and_analysisexperimental
--[no]check_licenses 預設值:「false」
確認相依套件設下的授權限制不會與建構的目標發布模式相衝突。根據預設,系統不會勾選授權。
標記:build_file_semantics
--[no]check_visibility預設值:「true」
如果停用這項設定,目標依附元件的瀏覽權限錯誤會降級為警告。
標記:build_file_semantics
--[no]desugar_for_android預設值:「true」
是否要在 dex 之前對 Java 8 位元碼進行脫糖。
標記:affects_outputsloading_and_analysisloses_incremental_state
--[no]desugar_java8_libs 預設值:「false」
是否要在舊版裝置的應用程式中納入支援的 Java 8 程式庫。
標記:affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]enforce_constraints預設值:「true」
檢查每個目標是否相容,並在任何目標含有不支援相同環境的依附元件時回報錯誤
標記: build_file_semantics
--[no]experimental_check_desugar_deps預設值:「true」
是否要在 Android 二進位檔層級仔細檢查正確的脫糖程序。
標記:eagerness_to_exitloading_and_analysisexperimental
--experimental_import_deps_checking=<off, warning or error> 預設值:「關閉」
啟用後,請檢查 aar_import 的依附元件是否完成。這項強制執行作業可能會破壞建構,也可能只會產生警告。
標記:loading_and_analysis
--experimental_strict_java_deps=<off, warn, error, strict or default> 預設值:「default」
如果為 true,檢查 Java 目標是否明確宣告所有直接使用的目標做為依附元件。
標記:build_file_semanticseagerness_to_exit
--[no]incompatible_check_testonly_for_output_files 預設值:「false」
如果啟用這個選項,請查詢產生規則的測試項目,只針對輸出檔案先決目標進行測試。這與瀏覽權限檢查相符。
標記:build_file_semanticsincompatible_change
--[no]incompatible_check_visibility_for_toolchains 預設值:「false」
如果啟用,瀏覽權限檢查設定也會套用至工具鍊實作。
標記:build_file_semanticsincompatible_change
--[no]incompatible_disable_native_android_rules 預設值:「false」
啟用後,系統會停用直接使用原生 Android 規則的功能。請使用位於 https://github.com/bazelbuild/rules_android 的 Starlark Android 規則
標記:eagerness_to_exitincompatible_change
--[no]incompatible_disable_native_apple_binary_rule 預設值:「false」
免人工管理。為顧及回溯相容性,請繼續保留。
標記:eagerness_to_exitincompatible_change
--[no]incompatible_python_disable_py2預設值:「true」
如果為 true,使用 Python 2 設定就會發生錯誤。這包括 python_version=PY2、srcs_version=PY2 和 srcs_version=PY2ONLY。詳情請參閱 https://github.com/bazelbuild/bazel/issues/15684。
標記:loading_and_analysisincompatible_change
--[no]incompatible_validate_top_level_header_inclusions預設值:「true」
這個標記為 noop,且已排定移除時間。
標記:no_opincompatible_change
--python_native_rules_allowlist=<a build target label> 預設:查看說明
強制執行 --incompatible_python_禁止_native_rules 時使用的許可清單 (package_group target)。
標記:loading_and_analysis
--[no]strict_filesets 預設值:「false」
如果啟用這個選項,跨越套件界線的檔案集會回報為錯誤。
標記:build_file_semanticseagerness_to_exit
--strict_proto_deps=<off, warn, error, strict or default> 預設值:「錯誤」
除非「關閉」,否則檢查 proto_library 目標是否明確宣告所有直接使用的目標做為依附元件。
標記:build_file_semanticseagerness_to_exitincompatible_change
--strict_public_imports=<off, warn, error, strict or default> 預設值:「關閉」
除非設為「關閉」,否則檢查 proto_library 目標是否明確將「匯入公開」中使用的所有目標宣告為匯出項目。
標記:build_file_semanticseagerness_to_exitincompatible_change
--[no]strict_system_includes 預設值:「false」
如果為 True,您也必須宣告透過系統 include 路徑 (-isystem) 找到的標頭。
標記:loading_and_analysiseagerness_to_exit
會累積 --target_environment=<a build target label> 個用途
宣告此建構作業的目標環境。必須是「環境」規則的標籤參照。如有指定,所有頂層目標都必須與這個環境相容。
標記:changes_inputs
會影響建構作業簽署輸出內容的選項:
--apk_signing_method=<v1, v2, v1_v2 or v4> 預設值:「v1_v2」
用於簽署 APK 的實作程序
標記:action_command_linesaffects_outputsloading_and_analysis
--[no]device_debug_entitlements預設值:「true」
如果已設定,但編譯模式不是「opt」,objc 應用程式會在簽署時納入偵錯授權。
標記:changes_inputs
--ios_signing_cert_name=<a string> 預設:查看說明
用於 iOS 簽署的憑證名稱。如未設定,系統會改回使用佈建設定檔。可以是憑證的鑰匙圈身分偏好設定或憑證通用名稱的子字串,並按照圖碼簽署的手冊頁面 (SIGNING IDENTITIES) 取得。
標記:action_command_lines
這個選項會影響 Starlark 語言的語意,或是 BUILD 檔案、.bzl 檔案或 WORKSPACE 檔案使用的建構 API。
--[no]incompatible_disallow_legacy_py_provider預設值:「true」
不操作,我們很快就會移除。
標記:loading_and_analysisincompatible_change
--[no]incompatible_disallow_sdk_frameworks_attributes 預設值:「false」
如果為 true,請禁止 objc_library andobjc_import 中的 sdk_frameworks 和 weak_sdk_frameworks 屬性。
標記:build_file_semanticsincompatible_change
如果為 true,請將 objc_library 和 objc_import 中的 alwayslink 屬性設定為 true。
標記:build_file_semanticsincompatible_change
--[no]incompatible_python_disallow_native_rules 預設值:「false」
如果為 true,使用內建的 py_* 規則時會發生錯誤;請改用 rules_python 規則。如需詳細資訊和遷移操作說明,請前往 https://github.com/bazelbuild/bazel/issues/17773。
標記:loading_and_analysisincompatible_change
控制測試環境或測試執行器行為的選項:
--[no]allow_analysis_failures 預設值:「false」
如果為 true,規則目標的分析失敗會使目標的 AnalysisFailureInfo 執行個體傳播包含錯誤說明,不會導致建構失敗。
標記:loading_and_analysisexperimental
--analysis_testing_deps_limit=<an integer> 預設值:「2000」
透過 for_analysis_testing 設定轉換的規則屬性,設定遞移依附元件的數量上限。超過這項限制會產生規則錯誤。
標記:loading_and_analysis
--[no]break_build_on_parallel_dex2oat_failure 預設值:「false」
如果實際的 dex2oat 操作失敗,將導致建構失敗,而不是在測試執行階段中執行 dex2oat。
標記:loading_and_analysisexperimental
會累積 --default_test_resources=<a resource name followed by equal and 1 float or 4 float, e.g memory=10,30,60,100> 個用途
覆寫測試的預設資源量。預期格式為 <resource>=<value>。如果將單一正數指定為 <value>,則會覆寫所有測試大小的預設資源。如果指定 4 個以半形逗號分隔的數字,就會分別覆寫小型、中、大、巨大測試大小的資源數量。值也可以是 HOST_RAM/HOST_CPU,後面加上 [-|*]<float> (例如:memory=HOST_RAM*.1,HOST_RAM*.2,HOST_RAM*.3,HOST_RAM*.4)。此標記指定的預設測試資源會由標記中指定的明確資源覆寫。
--[no]experimental_android_use_parallel_dex2oat 預設值:「false」
並行使用 dex2oat 以加快 android_test 的速度。
標記:loading_and_analysishost_machine_resource_optimizationsexperimental
--[no]ios_memleaks 預設值:「false」
啟用 ios_test 目標中的記憶體流失檢查功能。
標記:action_command_lines
--ios_simulator_device=<a string> 預設:查看說明
在模擬器中執行 iOS 應用程式時模擬的裝置,例如「iPhone 6」。如要取得裝置清單,請在要執行模擬器的機器上執行「xcrun simctl list devicetypes」。
標記:test_runner
--ios_simulator_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
執行或測試時要在模擬器上執行的 iOS 版本。如果已在規則中指定目標裝置,則 ios_test 規則會忽略這個欄位。
標記:test_runner
會累積 --runs_per_test=<a positive integer or test_regex@runs. This flag may be passed more than once> 個用途
指定各項測試的執行次數。如果有任何一項嘗試因任何原因失敗,整個測試視同失敗。通常指定的值只有整數。範例:--runs_per_test=3 會執行所有測試 3 次。替代語法:regex_filter@runs_per_test。run_per_test 代表整數值,而 regex_filter 表示包含及排除規則運算式模式的清單 (另請參閱 --instrumentation_filter)。範例:--runs_per_test=//foo/.*,-//foo/bar/.*@3 會在 //foo/ 中執行所有測試,但 foo/bar 之下的結果除外。這個選項可以多次傳送。系統會優先採用最近傳遞的相符引數。如果沒有相符結果,測試只會執行一次。
會累積 --test_env=<a 'name=value' assignment with an optional value part> 個用途
指定要插入測試執行工具環境的其他環境變數。您可以用名稱指定變數;如果發生這種情況,系統會從 Bazel 用戶端環境或 name=value 組合讀取變數的值。這個選項可多次使用以指定多個變數。僅用於「bazel test」指令。
標記:test_runner
--test_timeout=<a single integer or comma-separated list of 4 integers> 預設值:「-1」
覆寫測試逾時的預設測試逾時值 (以秒為單位)。如果指定單一正整數值,則會覆寫所有類別。如果指定 4 個以半形逗號分隔的整數,就會覆寫短、中、長和橢圓的逾時時間 (按照此順序排列)。無論採用哪一種格式,值為 -1 均會指示 Blaze 針對該類別使用預設逾時。
--[no]zip_undeclared_test_outputs預設值:「true」
如果設為 True,系統會將未宣告的測試輸出內容封存為 ZIP 檔案。
標記: test_runner
查詢輸出內容和語意相關選項:
--aspect_deps=<off, conservative or precise> 預設值:「conservative」
當輸出格式是 {xml,proto,record} 時,如何解析切面依附元件。「off」代表未解析任何切面依附元件;「保守」(預設) 代表新增所有宣告的切面依附元件,不論是否提供直接依附元件的規則類別;「精確」代表僅新增可能根據直接依附元件的規則類別啟用的切面。請注意,由於精確模式需要載入其他套件來評估單一目標,因此速度比其他模式慢。另請注意,就算使用精確模式也無法完全精準,是否要在分析階段中決定是否運算,該階段不會在「bazel 查詢」期間執行。
標記:build_file_semantics
--[no]consistent_labels 預設值:「false」
啟用這項設定後,每個查詢指令都會發送標籤,就像由 Starlark <code>str</code> 函式套用至 <code>Label</code> 執行個體一樣。這項工具相當適合用於需要比對不同查詢指令和/或規則所發出標籤的輸出內容。如果不啟用,輸出格式設定器可改為發出明顯的存放區名稱 (相對於主要存放區),讓輸出內容更容易讀取。
標記:terminal_output
--[no]experimental_explicit_aspects 預設值:「false」

標記:terminal_output
--[no]graph:factored預設值:「true」
如果為 true,圖表會發出「因子」,也就是同質相等的節點會合併在一起,其標籤會串連。這個選項僅適用於 --output=graph。
標記:terminal_output
--graph:node_limit=<an integer> 預設值:「512」
輸出中圖形節點的標籤字串長度上限。較長的標籤會遭到截斷;-1 表示不會截斷。這個選項僅適用於 --output=graph。
標記:terminal_output
--[no]implicit_deps預設值:「true」
啟用後,隱含依附元件會納入查詢作業的依附元件圖中。隱含依附元件是指 BUILD 檔案中並未明確指定,但是由 bazel 新增的依附元件。針對 cquery,這個選項會控制篩選已解析的工具鍊。
標記:build_file_semantics
--[no]include_artifacts預設值:「true」
輸出內容包含動作輸入和輸出內容的名稱 (可能相當大)。
標記:terminal_output
--[no]include_aspects預設值:「true」

標記:terminal_output
--[no]include_commandline預設值:「true」
在輸出內容中加入動作指令列的內容 (可能相當大)。
標記:terminal_output
--[no]include_file_write_contents 預設值:「false」
包含 FileWrite、SourceSymlinkManifest 和 RepoMappingManifest 動作的檔案內容 (可能很大)。
標記:terminal_output
--[no]include_param_files 預設值:「false」
包含指令中使用的參數檔案內容 (可能很大)。注意:啟用此標記後,系統將自動啟用 --include_commandline 標記。
標記:terminal_output
--[no]include_scheduling_dependencies 預設值:「false」
包含動作的排程依附元件名稱 (可能相當大)。只有在設定了 --include_artifacts 時才會生效。
標記:terminal_output
--[no]incompatible_package_group_includes_double_slash預設值:「true」
啟用後,在輸出 package_group 的「packages」屬性時,系統不會省略開頭的「//」。
標記:terminal_outputincompatible_change
--[no]infer_universe_scope 預設值:「false」
如果未設定 --universe_scope,將將 --universe_scope 的值推斷為查詢運算式中不重複目標模式的清單。請注意,使用單向範圍函式 (例如`allrdeps`) 的查詢運算式所推測的 --universe_scope 值可能不太符合您的需求,因此建議您在瞭解自己執行的操作時,才使用這個選項。如需詳細資訊和範例,請參閱 https://bazel.build/reference/query#sky-query。如果已設定 --universe_scope,系統就會忽略此選項的值。注意:這個選項僅適用於「query」(查詢),而非「cquery」。
標記: loading_and_analysis
--[no]line_terminator_null 預設值:「false」
指出每個格式是否會以 \0 (而非換行) 終止。
標記:terminal_output
--[no]nodep_deps預設值:「true」
如果啟用這項政策,從「nodep」屬性降級後,查詢作業的依附元件圖表就會包含該屬性。常見的「nodep」屬性為「visibility」。執行並剖析「資訊建構語言」的輸出內容,瞭解建構語言中的所有「nodep」屬性。
標記:build_file_semantics
--output=<a string> 預設值:「text」
輸出查詢結果的格式。允許的查詢值如下:text、textproto、proto、streamed_proto、jsonproto。
標記:terminal_output
--[no]proto:default_values預設值:「true」
如果為 true,系統會納入 BUILD 檔案中未明確指定值的屬性,否則會省略。這個選項適用於 --output=proto
標記:terminal_output
--[no]proto:definition_stack 預設值:「false」
填入 definition_stack proto 欄位,該欄位會在定義規則類別時,記錄每個規則例項的 Starlark 呼叫堆疊。
標記:terminal_output
--[no]proto:flatten_selects預設值:「true」
啟用後,系統會整併 select() 建立的可設定屬性。對於清單類型而言,扁平化的表示式呈現為一份清單,其中僅包含選取地圖的每個值一次。純量類型會扁平化為空值。
標記:build_file_semantics
--[no]proto:include_attribute_source_aspects 預設值:「false」
為每個屬性的 source_aspect_name proto 欄位填入屬性來源切面的資訊 (如果沒有屬性,則為空白字串)。
標記:terminal_output
--[no]proto:include_synthetic_attribute_hash 預設值:「false」
是否要計算及填入 $internal_attr_hash 屬性。
標記:terminal_output
--[no]proto:instantiation_stack 預設值:「false」
填入每項規則的例項化呼叫堆疊。請注意,如要這麼做,堆疊必須具有
標記:terminal_output
--[no]proto:locations預設值:「true」
是否要在 proto 輸出內容中輸出位置資訊。
標記:terminal_output
--proto:output_rule_attrs=<comma-separated list of options> 預設值:「全部」
要包含在輸出內容中的屬性清單 (以半形逗號分隔)。預設為所有屬性。設為空白字串不輸出任何屬性。這個選項適用於 --output=proto。
標記:terminal_output
--[no]proto:rule_inputs_and_outputs預設值:「true」
指定是否填入「Rule_input」和「Rule_output」欄位。
標記:terminal_output
--query_file=<a string> 預設值:「」
如有設定,查詢會從這裡命名的檔案讀取查詢,而不是透過指令列讀取。在這裡指定檔案以及指令列查詢會發生錯誤。
標記:changes_inputs
--[no]relative_locations 預設值:「false」
如果為 True,XML 和 proto 輸出內容中的 BUILD 檔案位置將會相對。根據預設,位置輸出是絕對路徑,而且在所有機器中不一致。您可以將這個選項設為 True,即可在不同機器中取得一致的結果。
標記:terminal_output
--[no]skyframe_state 預設值:「false」
如果不執行額外分析,請從 SkyFrame 中轉儲目前的動作圖表。注意:目前不支援使用 --skyframe_state 指定目標。這個標記僅適用於 --output=proto 或 --output=textproto。
標記:terminal_output
--[no]tool_deps預設值:「true」
查詢:如果停用,則「exec configuration」的依附元件不會包含在查詢作業的依附元件圖表中。「exec configuration」的依附元件邊緣 (例如從任何「proto_library」規則的依附元件到通訊協定編譯器的邊緣),通常指向在建構期間執行的工具,而非同一個「目標」程式的一部分。Cquery:如果停用,系統會從頂層目標中發現這個設定目標的頂層目標,篩選出所有已設定的目標。換句話說,如果頂層目標位於目標設定中,系統只會傳回同樣在目標設定中已設定的目標。如果頂層目標位於執行設定中,系統只會傳回執行設定的目標。這個選項「不會」排除已解析的工具鍊。
標記:build_file_semantics
--universe_scope=<comma-separated list of options> 預設值:「」
以半形逗號分隔的目標模式組合 (加法和減法)。查詢可於由指定目標的遞移性通過所定義的宇宙中執行。這個選項可用於查詢和 cquery 指令。對 cquery 來說,這個選項的輸入內容就是所有答案的基礎,因此這個選項可能會影響設定和轉換。如未指定此選項,系統會假設頂層目標為查詢運算式剖析的目標。注意事項:在 cquery 中,如未指定這個選項,如果無法以頂層選項建構從查詢運算式剖析的目標,建構可能會中斷。
標記: loading_and_analysis
會觸發建構時間最佳化的選項:
--[no]experimental_filter_library_jar_with_program_jar 預設值:「false」
篩選 ProGuard ProgramJar,以移除 LibraryJar 中的所有類別。
標記:action_command_lines
--[no]experimental_inmemory_dotd_files預設值:「true」
啟用後,C++ .d 檔案會直接從遠端建構節點在記憶體中傳遞,而不是寫入磁碟。
標記:loading_and_analysisexecutionaffects_outputsexperimental
--[no]experimental_inmemory_jdeps_files預設值:「true」
如果啟用,Java 編譯作業產生的依附元件 (.jdeps) 檔案就會直接從遠端建構節點在記憶體中傳遞,而不會寫入磁碟。
標記:loading_and_analysisexecutionaffects_outputsexperimental
--[no]experimental_retain_test_configuration_across_testonly 預設值:「false」
啟用後,--trim_test_configuration 不會為標示為 testonly=1 的規則修剪測試設定。這是為了減少非測試規則取決於 cc_test 規則時的動作衝突問題。如果 --trim_test_configuration 為 false,則不會產生任何效果。
標記:loading_and_analysisloses_incremental_state
--[no]experimental_starlark_cc_import 預設值:「false」
啟用後,即可使用 cc_import 的 Starlark 版本。
標記:loading_and_analysisexperimental
--[no]experimental_unsupported_and_brittle_include_scanning 預設值:「false」
是否要透過剖析輸入檔案中的 #include 行,將輸入範圍縮小為 C/C++ 編譯。進而縮減編譯輸入樹狀結構的大小,進而改善效能和成效增幅。不過,由於 include 掃描器未完全實作 C 預先處理器語意,因此也可能導致建構作業失敗。具體而言,它不瞭解動態 #include 指令,且會忽略預先處理工具的條件邏輯。使用時需自行承擔風險。凡是與這個檢舉有關的問題都會遭到關閉。
標記:loading_and_analysisexecutionchanges_inputs
--[no]incremental_dexing預設值:「true」
大部分的工作都是針對各個 Jar 檔案個別進行 DEX 處理。
標記:affects_outputsloading_and_analysisloses_incremental_state
--[no]objc_use_dotd_pruning預設值:「true」
如果已設定,將由 clang 發出的 .d 檔案剪裁至 objc 編譯的輸入內容。
標記:changes_inputsloading_and_analysis
--[no]process_headers_in_dependencies 預設值:「false」
建立目標 //a:a 時,處理 //a:a 依附的所有目標 (如果工具鍊已啟用標頭處理功能)。
標記:execution
--[no]trim_test_configuration預設值:「true」
啟用後,系統會在建構項目頂層下方清除測試相關選項。啟用這個旗標後,就無法將測試當做非測試規則的依附元件進行建構,但變更測試相關選項並不會導致系統重新分析非測試規則。
標記:loading_and_analysisloses_incremental_state
影響記錄詳細程度、格式或位置的選項:
--toolchain_resolution_debug=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths> 預設值:「-.*」
在工具鍊解析期間輸出偵錯資訊。旗標會採用規則運算式,並與工具鍊類型和特定目標進行比對,以找出需要偵錯的項目。如有多個規則運算式,請以半形逗號分隔,然後再分別檢查每個規則運算式。注意:此標記的輸出內容非常複雜,可能僅對工具鍊解決方案的專家有所幫助。
標記:terminal_output
可為不屬於其他類別的 Bazel 指令指定或變更一般輸入的選項:
會累積 --flag_alias=<a 'name=value' flag alias> 個用途
設定 Starlark 標記的簡短名稱。這會使用格式為「<key>=<value>」的單一鍵/值組合做為引數。
標記:changes_inputs
--[no]incompatible_default_to_explicit_init_py 預設值:「false」
這個標記會變更預設行為,讓 __init__.py 檔案不再在 Python 目標的執行檔案中自動建立。準確來說,當 py_binary 或 py_test 目標將 legacy_create_init 設為「auto」(預設值) 時,只有在設定了此旗標時,才會視為 false。請參閱 https://github.com/bazelbuild/bazel/issues/10076。
標記:affects_outputsincompatible_change
--[no]incompatible_py2_outputs_are_suffixed預設值:「true」
如果為 True,則透過 Python 2 設定建構的目標會顯示在輸出根目錄中,且包含後置字串「-py2」,而針對 Python 3 建構的目標會顯示在根層級中,且沒有 Python 相關後置字串。也就是說,`bazel-bin` 便利符號連結會指向 Python 3 目標,而不是 Python 2。如果啟用這個選項,建議一併啟用「--incompatible_py3_is_default」。
標記:affects_outputsincompatible_change
--[no]incompatible_py3_is_default預設值:「true」
如果為 True,系統會將未設定「python_version」(或「default_python_version」) 屬性的「py_binary」和「py_test」目標預設為 PY3,而非 PY2。如果你設定了這個旗標,也建議你設定「--incompatible_py2_outputs_are_suffixed」。
標記:loading_and_analysisaffects_outputsincompatible_change
--[no]incompatible_use_python_toolchains預設值:「true」
如果設為 True,可執行的原生 Python 規則將使用 Python 工具鍊指定的 Python 執行階段,而非由 --python_top 等舊版旗標提供的執行階段。
標記:loading_and_analysisincompatible_change
--python_version=<PY2 or PY3> 預設:查看說明
Python 主要版本模式,可以是「PY2」或「PY3」。請注意,此模式會遭到「py_binary」和「py_test」目標覆寫 (即使他們未明確指定版本也是如此),因此通常沒有太多理由提供這個標記。
標記:loading_and_analysisaffects_outputs
其他選項,未分類。
--[no]cache_test_results [-t] 預設值:「auto」
如果設為「auto」,Bazel 只會在發生以下情況時重新執行測試:(1) Bazel 偵測到測試或其依附元件的變更,(2) 系統會將測試標示為外部;(3) 使用 --runs_per_test 要求多次測試執行;或(4) 先前失敗的測試。如果設為「是」,Bazel 會快取所有測試結果,但標示為外部的測試除外。如果設為「否」,Bazel 就不會快取任何測試結果。
--[no]experimental_cancel_concurrent_tests 預設值:「false」
如果為 true,Blaze 會取消首次成功執行時同時執行的測試。這個方法只有在搭配 --runs_per_test_Detects_flakes 時實用。
標記:affects_outputsloading_and_analysis
--[no]experimental_fetch_all_coverage_outputs 預設值:「false」
如果設為 true,Bazel 會在涵蓋率執行期間為每項測試擷取整個涵蓋範圍資料目錄。
標記:affects_outputsloading_and_analysis
--[no]experimental_generate_llvm_lcov 預設值:「false」
如果設為「true」,Clang 的涵蓋率就會產生 LCOV 報告。
標記:affects_outputsloading_and_analysis
--[no]experimental_j2objc_header_map預設值:「true」
是否要同時產生 J2ObjC 標頭對應,以及 J2ObjC 轉譯。
--[no]experimental_j2objc_shorter_header_path 預設值:「false」
指定是否要使用較短的標頭路徑 (使用「_ios」而非「_j2objc」) 產生。
標記:affects_outputs
--experimental_java_classpath=<off, javabuilder or bazel> 預設值:「javabuilder」
針對 Java 編譯啟用縮減的類別路徑。
--[no]experimental_limit_android_lint_to_android_constrained_java 預設值:「false」
將 --experimental_run_android_lint_on_java_rules 限制在與 Android 相容的程式庫。
標記:affects_outputs
--[no]experimental_run_android_lint_on_java_rules 預設值:「false」
是否要驗證 java_* 來源。
標記:affects_outputs
--[no]explicit_java_test_deps 預設值:「false」
在 java_test 中明確指定 JUnit 或 Hamcrest 的依附元件,而非意外從 TestRunner 的依附元件中取得。目前僅適用於 bazel。
--host_java_launcher=<a build target label> 預設:查看說明
在建構期間執行的工具所使用的 Java 啟動器。
會累積 --host_javacopt=<a string> 個用途
建構在建構期間執行的工具時,傳送至 javac 的其他選項。
會累積 --host_jvmopt=<a string> 個用途
建構在建構期間執行的工具時,傳送至 Java VM 的其他選項。這些選項會新增至每個 java_binary 目標的 VM 啟動選項。
--[no]incompatible_check_sharding_support預設值:「true」
如果為 true,當測試執行器未指出 TEST_SHARD_STATUS_FILE 路徑中的檔案,表示可支援分割作業,Bazel 就會失敗的資料分割測試。如果設為 false,則不支援資料分割的測試執行器會導致每個資料分割中執行的所有測試。
標記:incompatible_change
--[no]incompatible_exclusive_test_sandboxed預設值:「true」
如果為 true,專屬測試將使用沙箱策略執行。新增「local」標記,強制在本機執行專屬測試
標記: incompatible_change
--[no]incompatible_strict_action_env 預設值:「false」
如果設為 True,Bazel 使用的環境會是 PATH 的靜態值,且不會沿用 LD_LIBRARY_PATH。如果想沿用用戶端的特定環境變數,請使用 --action_env=ENV_VARIABLE。不過請注意,這麼做可能會在使用共用快取時,避免跨使用者快取。
標記:loading_and_analysisincompatible_change
會累積 --j2objc_translation_flags=<comma-separated list of options> 個用途
傳遞至 J2ObjC 工具的其他選項。
--java_debug
造成 Java 測試的 Java 虛擬機器,先等待符合 JDWP 規範的偵錯工具 (例如 jdb) 連線後,再開始測試。隱含 -test_output=streamed。
擴展至:
  --test_arg=--wrapper_script_flag=--debug
  --test_output=streamed
  --test_strategy=exclusive
  --test_timeout=9999
  --nocache_test_results
--[no]java_deps預設值:「true」
為每個 Java 目標產生依附元件資訊 (目前為編譯時間類別路徑)。
--[no]java_header_compilation預設值:「true」
直接從原始碼編譯 ijar。
--java_language_version=<a string> 預設值:「」
Java 語言版本
--java_launcher=<a build target label> 預設:查看說明
建構 Java 二進位檔時使用的 Java 啟動器。如果此旗標設為空白字串,系統會使用 JDK 啟動器。「launcher」屬性會覆寫此標記。
--java_runtime_version=<a string> 預設值:「local_jdk」
Java 執行階段版本
會累積 --javacopt=<a string> 個用途
要傳遞至 javac 的其他選項。
會累積 --jvmopt=<a string> 個用途
傳送至 Java VM 的其他選項。這些選項會新增至每個 java_binary 目標的 VM 啟動選項。
--legacy_main_dex_list_generator=<a build target label> 預設:查看說明
指定二進位檔,用於產生編譯舊版 Multidex 時必須位於主要 dex 的類別清單。
--optimizing_dexer=<a build target label> 預設:查看說明
指定二進位檔,用於在不進行資料分割的情況下執行 DEX 作業。
會累積 --plugin=<a build target label> 個用途
要在建構作業中使用的外掛程式。目前可與 java_plugin 搭配使用。
--proguard_top=<a build target label> 預設:查看說明
指定在建構 Java 二進位檔時,用於移除程式碼的 ProGuard 版本。
--proto_compiler=<a build target label> 預設:「@bazel_tools//tools/proto:protoc」
proto-編譯器的標籤。
標記:affects_outputsloading_and_analysis
--proto_toolchain_for_cc=<a build target label> 預設值:「@bazel_tools//tools/proto:cc_toolchain」
proto_lang_toolchain() 的標籤,說明如何編譯 C++ proto
標記: affects_outputsloading_and_analysis
--proto_toolchain_for_j2objc=<a build target label> 預設語言:「@bazel_tools//tools/j2objc:j2objc_proto_toolchain」
proto_lang_toolchain() 的標籤,說明如何編譯 j2objc proto
標記:affects_outputsloading_and_analysis
--proto_toolchain_for_java=<a build target label> 預設值:「@bazel_tools//tools/proto:java_toolchain」
proto_lang_toolchain() 的標籤,說明如何編譯 Java proto
標記:affects_outputsloading_and_analysis
--proto_toolchain_for_javalite=<a build target label> 預設值:「@bazel_tools//tools/proto:javalite_toolchain」
proto_lang_toolchain() 的標籤,說明如何編譯 JavaLite proto。
標記:affects_outputsloading_and_analysis
會累積 --protocopt=<a string> 個用途
傳送至 protobuf 編譯器的其他選項。
標記:affects_outputs
--[no]runs_per_test_detects_flakes 預設值:「false」
如果為 true,所有至少執行/嘗試通過一次且有至少一項執行/嘗試失敗的資料分割,都會顯示 FLAKY 狀態。
--shell_executable=<a path> 預設:查看說明
殼層執行檔的絕對路徑,可供 Bazel 使用。如果未設定,但第一次 Bazel 叫用 (啟動 Bazel 伺服器) 時設定了 BAZEL_SH 環境變數,Bazel 就會使用該環境變數。如果兩者皆未設定,Bazel 將根據在 Windows 上執行的作業系統使用硬式編碼預設路徑 (Windows:c:/tools/msys64/usr/bin/bash.exe,FreeBSD:/usr/local/bin/bash 和所有其他檔案:/bin/bash)。請注意,如果您使用的殼層與 bash 不相容,可能會導致建構失敗,或所產生二進位檔的執行階段失敗。
標記:loading_and_analysis
會累積 --test_arg=<a string> 個用途
指定應傳遞至測試執行檔的其他選項和引數。可多次用於指定多個引數。如果執行多個測試,每個測試都會收到相同的引數。僅用於「bazel test」指令。
--test_filter=<a string> 預設:查看說明
指定要轉送至測試架構的篩選器。用於限制測試執行。請注意,這不會影響建構的目標。
--test_result_expiration=<an integer> 預設值:「-1」
這個選項已淘汰,因此不會產生任何作用。
--[no]test_runner_fail_fast 預設值:「false」
將失敗的快速選項轉送至測試執行器。測試執行工具應在首次失敗時停止執行。
--test_sharding_strategy=<explicit, disabled or forced=k where k is the number of shards to enforce> 預設值:「煽情露骨內容」
指定測試資料分割的策略:「explicit」只有在已有「shard_count」BUILD 屬性時才會使用資料分割。設為「disabled」後,就不必使用測試資料分割。「forced=k」可強制執行「k」資料分割以供測試,無論「shard_count」BUILD 屬性為何。
--tool_java_language_version=<a string> 預設值:「」
用於執行建構期間必要工具的 Java 語言版本
--tool_java_runtime_version=<a string> 預設:「remotejdk_11」
在建構期間執行工具時使用的 Java 執行階段版本
--[no]use_ijars預設值:「true」
啟用這個選項後,Java 編譯會使用介面 jar 檔案。這麼做可以加快漸進式編譯速度,但錯誤訊息也可能不同。

建構選項

這些選項會顯示在指令之前,並由用戶端剖析:
會累積 --distdir=<a path> 個用途
還有許多地方可以搜尋封存檔案,以便透過網路下載封存內容。
標記:bazel_internal_configuration
如有設定,存放區快取會在快取成功時將檔案硬式編碼,而非複製檔案。以便節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 預設值:「0」
重試下載錯誤的次數上限。如果設為 0,系統就會停用重試功能。
標記:experimental
--experimental_scale_timeouts=<a double> 預設值:「1.0」
按照這項係數調整 Starlark 存放區規則中的所有逾時時間。如此一來,即使效能低於規則作者預期的機器,外部存放區也能在不變更原始碼的情況下正常運作。
標記:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 預設值:「8」
http 下載作業的次數上限。
標記:bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 預設值:「0s」
http 下載重試的逾時時間上限。如果值為 0,就不會定義逾時上限。
標記:bazel_internal_configuration
--http_timeout_scaling=<a double> 預設值:「1.0」
依指定係數調整所有與 http 下載相關的逾時時間
標記: bazel_internal_configuration
--repository_cache=<a path> 預設:查看說明
指定擷取外部存放區時取得的已下載值的快取位置。將空字串做為引數要求停用快取,否則會使用預設的「<output_user_root>/cache/repos/v1」
標記: bazel_internal_configuration
--[no]repository_disable_download 預設值:「false」
如果已設定,無法在存放區擷取期間使用 ctx.download{,_and_extract} 進行下載。請注意,網路存取權並未完全停用;ctx.execute 仍可以執行存取網際網路的任意執行檔。
標記:bazel_internal_configuration
控制建構執行作業的選項:
--[no]check_up_to_date 預設值:「false」
請勿執行建構作業,只要檢查是否為最新版本即可。如果所有目標皆為最新版本,表示建構作業已成功完成。如有任何步驟需要執行錯誤,系統會回報錯誤,建構失敗。
標記:execution
--dynamic_local_execution_delay=<an integer> 預設值:「1000」
如果遠端執行作業加快了至少一次,本機執行作業應延遲多少毫秒?
標記:executionhost_machine_resource_optimizations
會累積 --dynamic_local_strategy=<a '[name=]value1[,..,valueN]' assignment> 個用途
為指定的記憶採用本地策略,應使用第一項適用的策略。舉例來說,「worker,sandboxed」執行的操作會使用工作站策略支援持續性工作站,而其他動作則使用沙箱機制策略。如果未提供助記法,策略清單將做為所有記憶法的備用方案。如果已設定「experimental_local_lockfree_output」,則預設的備用清單為「worker,sandboxed」或「worker,sandboxed,standalone」。取用 [mnemonic=]local_strategy[,local_strategy,...]
標記:executionhost_machine_resource_optimizations
會累積 --dynamic_remote_strategy=<a '[name=]value1[,..,valueN]' assignment> 個用途
為指定的記憶力,應使用第一個適用的策略。如果未提供助記法,策略清單將做為所有記憶法的備用方案。預設的備用清單為 `remote`,因此你通常不需要明確設定這個標記。取用 [mnemonic=]remote_strategy[,remote_strategy,...]
標記:executionhost_machine_resource_optimizations
--experimental_docker_image=<a string> 預設值:「」
指定 Docker 映像檔名稱 (例如「ubuntu:latest」)。使用 docker 策略時,該名稱應用於執行沙箱動作,且動作本身在平台說明中尚未包含 container-image 屬性。這個旗標的值會完整傳遞至「docker run」,因此支援的語法和機制與 Docker 本身相同。
標記:execution
--[no]experimental_docker_use_customized_images預設值:「true」
啟用後,先將目前使用者的 uid 和 gid 插入 Docker 映像檔,再使用該映像檔。如果您的建構 / 測試取決於使用者的名稱和容器內的主目錄,則必須提供此屬性。這項功能預設為開啟,但如果您確定您不需要這項功能,或自動圖片自訂功能無法正常運作,可以停用這項功能。
標記:execution
--[no]experimental_dynamic_exclude_tools預設值:「true」
設定後,建構「 for tool」的目標就不會動態執行。這類目標不太可能逐步建立,因此不值得花在當地週期。
標記:executionhost_machine_resource_optimizations
--experimental_dynamic_local_load_factor=<a double> 預設值:「0」
控管從動態執行作業將資料放入本機電腦的負載。這個標記可調整動態執行作業中要同時排程的動作數量。是根據 Blaze 認定的可用 CPU 數量而定,可使用 --local_cpu_resources 旗標控制該資源。如果這個標記為 0,所有動作將立即在本機排程。如果值大於 0,本機排定的動作數量會受限於可用的 CPU 數量。如果小於 1,當等待排程的動作數量較多時,系統就會使用負載係數減少本機排程動作的數量。這樣可以減少本機機器在乾淨建構情況下的負載,本機機器不會造成太多負擔。
標記:executionhost_machine_resource_optimizations
--experimental_dynamic_slow_remote_time=<An immutable length of time.> 預設值:「0」
如果值大於 0,則動態執行動作的時間只能在系統優先在本機執行之前,以遠端執行,以免遠端逾時。這可能會隱藏遠端執行系統上的某些問題。請勿在未監控遠端執行問題的情況下啟用這項功能。
標記:executionhost_machine_resource_optimizations
--[no]experimental_enable_docker_sandbox 預設值:「false」
啟用以 Docker 為基礎的沙箱機制。如果未安裝 Docker,這個選項就不會生效。
標記:execution
--experimental_sandbox_async_tree_delete_idle_threads=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5"> 預設值:「4」
如果值為 0,系統會在完成動作後立即刪除沙箱樹狀結構,導致動作完成延遲。如果大於零,請在執行建構作業時,在大小為 1 的非同步執行緒集區上執行這類三個項目刪除,並在伺服器處於閒置狀態時,逐步成長到此標記所指定的大小。
標記:host_machine_resource_optimizationsexecution
--experimental_sandbox_memory_limit_mb=<an integer number of MBs, or "HOST_RAM", optionally followed by [-|*]<float>.> 預設值:「0」
如果大於 0,每個 Linux 沙箱將受限於指定的記憶體容量 (以 MB 為單位)。需要 cgroups v1 或 v2,以及使用者俱備 cgroups 目錄的權限。
標記: execution
--[no]experimental_shrink_worker_pool 預設值:「false」
啟用後,如果工作站記憶體壓力偏高,可以縮減工作站集區。只有在啟用實驗性_total_worker_memory_limit_mb 時,才能使用這個標記。
標記:executionhost_machine_resource_optimizations
--[no]experimental_split_xml_generation預設值:「true」
如果設定了這個旗標,而且測試動作並未產生 test.xml 檔案,Bazel 就會使用個別動作產生內含測試記錄檔的虛擬 test.xml 檔案。否則 Bazel 會在測試動作中產生 test.xml。
標記:execution
--experimental_total_worker_memory_limit_mb=<an integer number of MBs, or "HOST_RAM", optionally followed by [-|*]<float>.> 預設值:「0」
如果這個上限大於 0 個閒置的工作站,如果所有工作站的記憶體總用量超過限制,可能會遭到終止。
標記:executionhost_machine_resource_optimizations
--[no]experimental_use_hermetic_linux_sandbox 預設值:「false」
如果設為 True,請勿掛接根目錄,只要掛接透過 sandbox_add_mount_pair 提供的項目。輸入檔案會難以連結至沙箱,而不是與沙箱連結。如果動作輸入檔案位於與沙箱不同的檔案系統中,系統會改為複製輸入檔案。
標記:execution
--[no]experimental_use_semaphore_for_jobs預設值:「true」
如果設為 true,會另外使用 semaphore 限制並行工作數量。
標記:host_machine_resource_optimizationsexecution
--[no]experimental_use_windows_sandbox 預設值:「false」
使用 Windows 沙箱執行動作。如果設為「是」,則 --experimental_windows_sandbox_path 提供的二進位檔必須是有效檔且對應至受支援的 sandboxfs 版本。如果設為「auto」,可能會缺少二進位檔或二進位檔不相容。
標記:execution
--experimental_windows_sandbox_path=<a string> 預設值:「BazelSandbox.exe」
當 --experimental_use_windows_sandbox 為 true,Windows 沙箱二進位檔的路徑。如為裸名稱,請使用在 PATH 中找到該名稱的第一個二進位檔。
標記:execution
--experimental_worker_allowlist=<comma-separated set of options> 預設:查看說明
如果非空白,請僅允許使用具有指定工作站金鑰記憶的永久工作站。
標記:executionhost_machine_resource_optimizations
--[no]experimental_worker_as_resource預設值:「true」
不操作,我們很快就會移除。
標記:no_op
--[no]experimental_worker_cancellation 預設值:「false」
啟用後,Bazel 可能會傳送取消要求給支援這些要求的工作站。
標記:execution
--experimental_worker_memory_limit_mb=<an integer number of MBs, or "HOST_RAM", optionally followed by [-|*]<float>.> 預設值:「0」
如果這項限制大於零,則工作站的記憶體用量超過限制時,可能會終止工作站。如未與動態執行和「--experimental_dynamic_ignore_local_signals=9」搭配使用,可能會導致建構作業異常終止。
標記:executionhost_machine_resource_optimizations
--experimental_worker_metrics_poll_interval=<An immutable length of time.>預設值:「5 秒」
收集工作站指標與嘗試剔除作業之間的間隔時間。基於效能考量,實際上無法小於 1 秒。
標記:executionhost_machine_resource_optimizations
--[no]experimental_worker_multiplex_sandboxing 預設值:「false」
啟用後,系統會採用沙箱機制,為每個工作要求使用不同的沙箱目錄,讓多工工作站採用沙箱機制。只有具有「supports-multiplex-sandboxing」執行要求的工作站才會受到沙箱限制。
標記:execution
--[no]experimental_worker_sandbox_hardening 預設值:「false」
啟用後,工作站會在強化沙箱中執行 (如果實作允許)。
標記:execution
--[no]experimental_worker_strict_flagfiles 預設值:「false」
啟用後,如果工作站未遵循工作站規格,動作引數就會發生錯誤。工作站引數只能有一個 @flagfile 引數,做為其引數清單的最後一部分。
標記:execution
--gc_thrashing_threshold=<an integer in 0-100 range> 預設值:「100」
上方 GcThrashingDetector 會將記憶體壓力事件視為其配額限制 (--gc_thrashing_limits),而佔用空間佔用的空間百分比 (0-100)。如果設為 100,系統會停用 GcThrashingDetector。
標記:host_machine_resource_optimizations
--genrule_strategy=<comma-separated list of options> 預設值:「」
指定 genrules 的執行方式。我們將淘汰此標記。請改用 --spawn_strategy=<value> 控制所有動作,或用 --strategy=Genrule=<value> 控制 Genrules。
標記:execution
會累積 --high_priority_workers=<a string> 個用途
不操作,我們很快就會移除。
標記:execution
如果設為 True,系統會允許上傳至遠端或磁碟快取的符號連結。
標記:executionincompatible_change
如果設為 True,Bazel 將一律上傳符號連結,例如遠端或磁碟快取。否則,系統不會將相對符號連結 (僅限這些符號) 上傳為指向目標的檔案或目錄。
標記:executionincompatible_change
--[no]incompatible_sandbox_hermetic_tmp預設值:「true」
如果設為 True,每個 Linux 沙箱都會有專屬空白目錄掛接為 /tmp,而不是與主機檔案系統共用 /tmp。使用 --sandbox_add_mount_pair=/tmp,以便繼續在所有沙箱中顯示主機的 /tmp。
標記:execution
--[no]internal_spawn_scheduler 預設值:「false」
預留位置選項,以便我們在 Blaze 中得知產生排程器是否已啟用。
標記:executionhost_machine_resource_optimizations
--jobs=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5"> [-j] 預設值:「auto」
要執行的並行工作數量。可接受整數或關鍵字 ("auto"、"HOST_CPUS"、"HOST_RAM"),並視需要後面加上運算 ([-|*]<float>),例如「auto」、「HOST_CPUS*.5」。值必須介於 1 至 5000 之間。如果值超過 2500,可能會造成記憶體問題。「auto」會根據主機資源計算合理的預設值。
標記:host_machine_resource_optimizationsexecution
--[no]keep_going [-k] 預設值:「false」
發生錯誤後請盡可能繼續操作。雖然失敗的目標及依附的目標無法分析,但您可以採用這些目標的其他必要條件。
標記:eagerness_to_exit
--loading_phase_threads=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5"> 預設值:「auto」
用於載入/分析階段的平行執行緒數量。可使用整數或關鍵字 (「auto」、「HOST_CPUS」、「HOST_RAM」),視需要後面加上運算 ([-|*]<float>),例如「auto」、「HOST_CPUS*.5」。「auto」會根據主機資源設定合理的預設值。不得小於 1。
標記:bazel_internal_configuration
--[no]reuse_sandbox_directories預設值:「true」
如果設為 True,系統可能會重複使用沙箱非工作站執行作業使用的目錄,避免不必要的設定費用。
標記:host_machine_resource_optimizationsexecution
--sandbox_base=<a string> 預設值:「」
允許沙箱在這個路徑下方建立沙箱目錄。在建構 /測試含有多個輸入檔案時,指定 tmpfs 等路徑 (例如/run / shm),或許可以大幅改善效能。注意:Tmpfs 需要足夠的 RAM 和可用空間,才能保存執行動作產生的輸出和中繼檔案。
標記:host_machine_resource_optimizationsexecution
--[no]sandbox_explicit_pseudoterminal 預設值:「false」
明確啟用沙箱動作的虛擬終端機。部分 Linux 發行版需要在沙箱中將程序的群組 ID 設定為「Tty」,才能讓虛擬終端機正常運作。如果這會造成問題,您可以停用此標記,以啟用其他群組。
標記:execution
會累積 --sandbox_tmpfs_path=<an absolute path> 個用途
針對沙箱動作,請在這個絕對路徑中掛接一個可寫入的空白目錄 (如果沙箱實作支援,否則會忽略該目錄)。
標記:host_machine_resource_optimizationsexecution
--[no]skip_incompatible_explicit_targets 預設值:「false」
略過指令列中明確列出的不相容目標。根據預設,建立這類目標會導致錯誤,但啟用此選項後,系統會在不通知使用者的情況下略過這些目標。請參閱:https://bazel.build/extending/platforms#skiping-incompatible-targets
標記: loading_and_analysis
--spawn_strategy=<comma-separated list of options> 預設值:「」
指定預設動作的執行方式。接受一份以半形逗號分隔的策略清單,其中包含最高優先順序至最低的策略。Bazel 會根據每個動作選擇可執行動作的優先順序最高策略。預設值為「remote,worker,sandboxed,local」。詳情請參閱 https://blog.bazel.build/2019/06/19/list-strategy.html。
標記:execution
會累積 --strategy=<a '[name=]value1[,..,valueN]' assignment> 個用途
指定如何分配其他生成動作的編譯作業。接受一份以半形逗號分隔的策略清單,其中包含最高優先順序至最低的策略。Bazel 會根據每個動作選擇可執行動作的優先順序最高策略。預設值為「remote,worker,sandboxed,local」。這個標記會覆寫 --spawn_strategy 設定的值 (如果與 mnemonic Genrule 搭配使用,則會傳回 --genrule_strategy 設定的值。詳情請參閱 https://blog.bazel.build/2019/06/19/list-strategy.html。
標記:execution
會累積 --strategy_regexp=<a '<RegexFilter>=value[,value]' assignment> 個用途
覆寫要使用哪個產生的策略,執行說明符合特定 regex_filter 的產生動作。如要進一步瞭解 regex_filter 比對,請參閱 --per_file_copt。系統會採用最後一個符合說明的 regex_filter。這個選項會覆寫用於指定策略的其他旗標。範例:--strategy_regexp=//foo.*\.cc,-//foo/bar=local 表示使用本機策略執行動作時,前提是其說明符合 //foo.*.cc,而不是 //foo/bar。範例:--strategy_regexp='Compiling.*/bar=local --strategy_regexp=Compiling=sandboxed 會使用「local」策略執行「Compiling //foo/bar/baz'」,但反轉順序則使用「sandboxed」執行。
標記:execution
會累積 --worker_extra_flag=<a 'name=value' assignment> 個用途
除了 --persistent_worker,這些額外指令旗標會傳送到工作站程序,並以 mnemonic 鍵入 (例如 --worker_extra_flag=Javac=--debug)。
標記:executionhost_machine_resource_optimizations
會累積 --worker_max_instances=<[name=]value, where value is an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5"> 個用途
如果您使用「worker」策略,則可能會啟動每種持續工作站的執行個體數量。指定為 [name=value] 後,即可提供不同的值。限制的依據是工作站金鑰,除了根據分函數區分,也會根據啟動標記和環境進行區分,因此在某些情況下,每次助測的工作站數量可能會超過這個旗標指定的數量。可接受整數或關鍵字 ("auto"、"HOST_CPUS"、"HOST_RAM"),並視需要後面加上運算 ([-|*]<float>),例如「auto」、「HOST_CPUS*.5」。"auto" 會根據機器的容量計算合理的預設值。「=value」會設定未指定的助眠預設值。
標記:executionhost_machine_resource_optimizations
會累積 --worker_max_multiplex_instances=<[name=]value, where value is an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5"> 個用途
如果您使用「worker」策略搭配 --worker_multiplex,則多工工作站程序可能會同時收到多少 WorkRequest 要求。指定為 [name=value] 後,即可提供不同的值。限制的依據是工作站金鑰,除了根據分函數區分,也會根據啟動標記和環境進行區分,因此在某些情況下,每次助測的工作站數量可能會超過這個旗標指定的數量。可接受整數或關鍵字 ("auto"、"HOST_CPUS"、"HOST_RAM"),並視需要後面加上運算 ([-|*]<float>),例如「auto」、「HOST_CPUS*.5」。"auto" 會根據機器的容量計算合理的預設值。「=value」會設定未指定的助眠預設值。
標記:executionhost_machine_resource_optimizations
--[no]worker_multiplex預設值:「true」
啟用後,工作站就會使用多工處理 (如果支援多工處理)。
標記:executionhost_machine_resource_optimizations
--[no]worker_quit_after_build 預設值:「false」
如果啟用這個選項,所有工作站都會在建構完成後退出。
標記:executionhost_machine_resource_optimizations
--[no]worker_sandboxing 預設值:「false」
如果啟用,工作站將在沙箱環境中執行。
標記:execution
--[no]worker_verbose 預設值:「false」
啟用後,在工作站啟動、關閉時顯示詳細訊息,...
設定動作執行工具鍊的選項:
--target_platform_fallback=<a string> 預設值:「」
這個選項已淘汰,因此不會產生任何作用。
標記:affects_outputschanges_inputsloading_and_analysis
控制指令輸出內容的選項:
--[no]build預設值:「true」
執行建構作業,這是一般的行為。指定 --nobuild 會導致建構在執行建構動作前停止;如果套件載入和分析階段順利完成,則傳回零;這個模式在測試這些階段時非常實用。
標記:executionaffects_outputs
--[no]experimental_use_validation_aspect 預設值:「false」
是否要使用切面執行驗證動作 (用於與測試平行處理)。
標記:executionaffects_outputs
會累積 --output_groups=<comma-separated list of options> 個用途
輸出群組名稱清單 (以半形逗號分隔),每個群組名稱後面可選擇以 + 或 a - 開頭。系統會將前方加上 + 的分組新增至預設的輸出群組組合,前置字串為「-」的群組則會從預設設定中移除。如果至少有一個群組未加上前置字元,系統會忽略預設的輸出群組組合。舉例來說,--output_groups=+foo,+bar 會建構預設集、foo 和長條的聯集;而 --output_groups=foo,bar 會覆寫預設設定,只建構 foo 和長條。
標記:executionaffects_outputs
--[no]run_validations預設值:「true」
是否要在建構作業中執行驗證動作。請參閱 https://bazel.build/extending/rules#validation_actions
標記:executionaffects_outputs
選項可讓使用者設定預定的輸出內容,影響其值 (而非其存在):
會累積 --aspects=<comma-separated list of options> 個用途
要套用至頂層目標的面向清單,以半形逗號分隔。在清單中,如果 some_aspect 透過 required_aspect_providers 指定必要的切面提供者,有些部分_aspect 會在切分項目清單 (其宣傳提供者符合 some_aspect 要求切面提供者) 之前的每個元素之後執行。此外,some_aspect 會在要求屬性指定的所有必要切面後執行,而部分_aspect 可以存取這些切面提供者的值。<bzl-file-label>%<aspect_name>,例如「//tools:my_def.bzl%my_aspect」,其中「my_aspect」是檔案 tools/my_def.bzl 的頂層值
--bep_maximum_open_remote_upload_files=<an integer> 預設值:「-1」
上傳 BEP 構件時允許的開啟檔案數量上限。
標記:affects_outputs
這個標記可控制便利符號連結 (建構後工作區中顯示的符號連結) 的管理方式。可能的值:正常 (預設):每種類型的便利符號連結都會建立或刪除,具體取決於建構作業。乾淨:系統會無條件刪除所有符號連結。忽略:符號連結會保留。log_only:視為通過「normal」時產生記錄訊息,但實際上不執行任何檔案系統作業 (對工具而言很實用)。 請注意,只有名稱由 --symlink_prefix 目前值產生的符號連結才會受到影響;如果前置字串有所變更,現有的符號連結會維持不變。
標記:affects_outputs
這個旗標會控管是否要將建構 eventConvenienceSymlinksIdentified 發布至 BuildEventProtocol。如果值是 true,BuildEventProtocol 會有一個便利符號連結,列出您在工作區中建立的所有便利符號連結。如果為 false,BuildEventProtocol 中的函式 SymlinksIdentified 將為空白。
標記:affects_outputs
--remote_download_all
將所有遠端輸出內容下載至本機電腦。這個標記是 --remote_download_outputs=all 的別名。
展開至:
  --remote_download_outputs=all

標記: affects_outputs
--remote_download_minimal
系統不會將任何遠端建構輸出內容下載至本機電腦。這個標記是 --remote_download_outputs=minimal 的別名。
展開至:
  --remote_download_outputs=minimal

標記: affects_outputs
--remote_download_outputs=<all, minimal or toplevel> 預設值:「頂層」
如果設為「minimal」,系統不會將遠端建構輸出內容下載至本機電腦,但本機動作所需的輸出內容除外。如果設為「頂層」時的行為與「最小」相同,差別只在於該設定也會將頂層目標的輸出內容下載到本機電腦。如果網路頻寬有瓶頸,這兩種選項都能大幅縮短建構時間。
標記:affects_outputs
建立符號連結,而不是將遠端建構輸出內容下載到本機電腦。符號連結的目標可使用範本字串的形式指定。這個範本字串可能包含 {hash} 和 {size_bytes},可分別擴充為物件的雜湊值和大小 (以位元組為單位)。舉例來說,這些符號連結可能指向 FUSE 檔案系統,而該系統可隨選從 CAS 載入物件。
標記:affects_outputs
--remote_download_toplevel
只將頂層目標的遠端輸出內容下載至本機電腦。這個標記是 --remote_download_outputs=toplevel 的別名。
展開至:
  --remote_download_outputs=toplevel

標記: affects_outputs
在建構完成後建立的任何便利符號連結前面的前置字串。如果省略此值,預設值為建構工具的名稱後面加上連字號。如果傳遞「/」,系統不會建立符號連結,也不會發出警告。警告:「/」的特殊功能即將淘汰,請改用 --experimental_convenience_symlinks=ignore。
標記:affects_outputs
會影響 Bazel 強制執行有效建構輸入內容 (規則定義、旗標組合等) 的選項:
--[no]experimental_docker_privileged 預設值:「false」
如果已啟用,Bazel 會在執行動作時將 --privileged 標記傳送至「docker run」。建構作業可能需要進行這項設定,但這也可能導緻密度降低。
標記:execution
免人工管理
標記: host_machine_resource_optimizationsexecution
--[no]incompatible_legacy_local_fallback 預設值:「false」
如果設為 True,將啟用從沙箱機制改為本機策略的舊版隱含備用選項。這個旗標最終會預設為 false,然後成為免人工管理。請使用 --strategy、--spawn_strategy 或 --dynamic_local_strategy 設定備用。
標記:executionincompatible_change
會累積 --sandbox_add_mount_pair=<a single path or a 'source:target' pair> 個用途
新增其他路徑組合,以在沙箱中掛接。
標記:execution
會累積 --sandbox_block_path=<a string> 個用途
針對沙箱動作,請禁止存取這個路徑。
標記:execution
--[no]sandbox_default_allow_network預設值:「true」
預設允許動作存取網路;這項設定可能無法與所有沙箱實作項目搭配運作。
標記:execution
--[no]sandbox_fake_hostname 預設值:「false」
針對沙箱動作,將目前的主機名稱變更為「localhost」。
標記:execution
--[no]sandbox_fake_username 預設值:「false」
執行沙箱動作時,請將目前的使用者名稱變更為「無人」。
標記:execution
會累積 --sandbox_writable_path=<a string> 個用途
針對沙箱動作,請將現有目錄設為可在沙箱中寫入 (如果沙箱實作支援,否則會忽略該目錄)。
標記:execution
這個選項會影響 Starlark 語言的語意,或是 BUILD 檔案、.bzl 檔案或 WORKSPACE 檔案使用的建構 API。
--[no]incompatible_config_setting_private_default_visibility 預設值:「false」
如果 incompatible_enforce_config_setting_visibility=false,即為不相容性。此外,如果這個旗標為 false,任何沒有明確瀏覽權限屬性的 config_setting 都是 //visibility:public。如果這個標記為 true,config_setting 的瀏覽權限邏輯與其他規則相同。請參閱 https://github.com/bazelbuild/bazel/issues/12933。
標記:loading_and_analysisincompatible_change
--[no]incompatible_depset_for_java_output_source_jars預設值:「true」
免人工管理。
標記: loading_and_analysisincompatible_change
--[no]incompatible_enforce_config_setting_visibility預設值:「true」
如果設為 true,請強制執行 config_setting 瀏覽權限限制。如果設為 False,每個目標都會顯示所有 config_setting。請參閱 https://github.com/bazelbuild/bazel/issues/12932。
標記:loading_and_analysisincompatible_change
--[no]incompatible_new_actions_api預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]incompatible_visibility_private_attributes_at_definition預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]separate_aspect_deps預設值:「true」
免人工管理
標記: no_op
管理測試環境或測試執行器行為的選項:
--[no]check_tests_up_to_date 預設值:「false」
不要執行測試,只要檢查測試是否已更新即可。如果所有測試結果都是最新的,表示測試已成功完成。如果需要建構或執行任何測試,系統會回報錯誤,且測試會失敗。這個選項隱含 --check_up_to_date 行為。
標記:execution
會累積 --flaky_test_attempts=<a positive integer, the string "default", or test_regex@attempts. This flag may be passed more than once> 個用途
如果測試失敗,系統最多會重試每次測試。如果測試需要多次通過才能通過,測試摘要中會標示為「FLAKY」。通常指定的值只是整數或字串「default」。如果為整數,所有測試最多將執行 N 次。如果設為 'default',系統只會針對一般測試和 3 項明確標示為不穩定的測試 (flaky=1 屬性) 進行測試。替代語法:regex_filter@flaky_test_attempts。其中 flaky_test_attempts 如上所示,而 regex_filter 表示包含及排除規則運算式模式的清單 (另請參閱 --runs_per_test)。範例:--flaky_test_attempts=//foo/.*,-//foo/bar/.*@3 會解碼 //foo/ 中的所有測試,但 foo/bar 之下的測試除外 3 次。這個選項可以多次傳送。系統會優先採用最近傳遞的相符引數。如果沒有相符的項目,行為將與上述的「預設」相同。
標記:execution
--local_test_jobs=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5"> 預設值:「auto」
可同時執行的本機測試工作數量上限。可接受整數或關鍵字 ("auto"、"HOST_CPUS"、"HOST_RAM"),並視需要後面加上運算 ([-|*]<float>),例如「auto」、「HOST_CPUS*.5」。0 表示本機資源會限制並行執行的本機測試工作數量。將這個值大於 --jobs 的值並不會生效。
標記:execution
--[no]test_keep_going預設值:「true」
如果停用這項設定,任何未傳遞的測試都會導致整個建構作業停止。根據預設,所有測試都會執行,即使部分測試未通過也一樣。
標記:execution
--test_strategy=<a string> 預設值:「」
指定執行測試時要使用的策略。
標記:execution
--test_tmpdir=<a path> 預設:查看說明
指定要使用的「bazel test」基本臨時目錄。
與查詢輸出內容和語意相關的選項:
--[no]experimental_parallel_aquery_output預設值:「true」
免人工管理。
與 Bzlmod 輸出內容和語意相關的選項:
會累積 --allow_yanked_versions=<a string> 個用途
指定模組版本時,請以「<module1>@<version1>,<module2>@<version2>」格式指定在已解析的依附元件圖中,即使這些版本來源不是來自 NonRegistryOverride,仍可在存放區中宣告這些版本。否則,分割版本會導致解析失敗。您也可以使用「BZLMOD_ALLOW_YANKED_VERSIONS」環境變數定義允許的分割版本。您可使用關鍵字「全部」停用這項檢查 (不建議使用)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off> 預設值:「錯誤」
檢查 Bazel 模組的 Bazel 版本相容性。有效值為「error」:可將其提報至解決失敗;設為「off」可停用檢查,「warning」則能在偵測到不相符時顯示警告。
標記:loading_and_analysis
--check_direct_dependencies=<off, warning or error> 預設值:「warning」
檢查根模組中宣告的直接「bazel_dep」依附元件,是否與已解析依附元件圖表中的版本相同。有效值為「off」可停用檢查,「warning」會在偵測到不相符時顯示警告,或是「error」將問題提報至解決失敗。
標記:loading_and_analysis
--[no]ignore_dev_dependency 預設值:「false」
如果為 true,Bazel 會忽略根模組 MODULE.bazel 中宣告為「dev_dependency」的「bazel_dep」和「use_extension」。請注意,如果根模組不是根模組,無論此標記的值為何,系統一律會忽略這些開發依附元件。
標記:loading_and_analysis
--lockfile_mode=<off, update or error> (預設):「更新」
指定使用 Lockfile 的方式,以及是否要使用。有效值為「update」可使用 Lockfile,並在出現變更時進行更新;「error」表示使用 Lockfile,但並非最新版本,會擲回錯誤;如果未更新,則為「off」。
標記:loading_and_analysis
會累積 --override_module=<an equals-separated mapping of module name to path> 個用途
以 <module name>=<path> 的格式覆寫本機路徑的模組。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則該路徑會與目前的工作目錄相對。如果指定路徑的開頭是「%workspace%」,代表與工作區根目錄 (也就是「bazel info workspace」的輸出內容) 有關。
會累積 --registry=<a string> 個用途
指定要用來尋找 Bazel 模組依附元件的登錄檔。順序很重要:系統會先在較早的登錄檔中查詢模組,而且只有在之後的登錄檔中缺少模組時,才會改回使用之後的登錄檔。
標記:changes_inputs
--vendor_dir=<a path> 預設:查看說明
指定應在廠商模式下保存外部存放區的目錄,不論是用於擷取或建立使用這些存放區。路徑可以指定為絕對路徑或相對於工作區目錄的路徑。
標記:loading_and_analysis
會觸發建構時間最佳化的選項:
--cache_computed_file_digests=<a long integer> 預設值:「50000」
如果大於 0,您可以設定 Bazel 根據中繼資料將檔案摘要快取至記憶體中,而不要在每次需要時重新計算磁碟中的摘要。設為 0 可確保檔案正確,因為系統無法從檔案中繼資料中指出所有檔案變更。非 0 時,數字代表快取大小,做為要快取的檔案摘要數量。
--experimental_dynamic_ignore_local_signals=<a comma-separated list of signal numbers> 預設:查看說明
取得 OS 信號號碼清單。如果動態執行作業的本機分支版本遭到上述任何信號終止,系統會改為完成遠端分支版本。對永久工作站來說,這只會影響終止工作站處理程序的信號。
標記:execution
--[no]experimental_enable_skyfocus 預設值:「false」
如果為 true,請啟用 --experimental_working_set 來減少 Bazel 的記憶體用量,以減少漸進式建構作業的記憶體用量。此功能稱為「天空」。
標記:host_machine_resource_optimizations
--experimental_working_set=<comma-separated list of options> 預設值:「」
天空對焦的工作組。請指定為工作區根相關路徑 (以半形逗號分隔)。這是有狀態的標記。定義工作集後,後續叫用就會保留該工作集,直到使用新的集合重新定義其為止。
標記:host_machine_resource_optimizations
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 預設值:「1s:2,20s:3,1m:5」
限制如果已達到,GcThrashingDetector 會透過 OOM 讓 Bazel 當機,每項限制都以 <period>:<count> 指定,週期為時間長度,計數代表正整數。如果 <period> 內連續 <count> 個 GC 數量超過 --gc_thrashing_threshold 百分比,系統就會觸發 OOM。如要指定多個限制,請以半形逗號分隔。
標記:host_machine_resource_optimizations
--local_cpu_resources=<an integer, or "HOST_CPUS", optionally followed by [-|*]<float>.> 預設值:「HOST_CPUS」
請明確設定 Bazel 可用的本機 CPU 核心總數,用於在本機執行的建構動作。擷取整數或「HOST_CPUS」,後面可選擇加上 [-|*]<float> (例如HOST_CPUS*.5,使用一半的可用 CPU 核心。根據預設,Bazel 會查詢系統設定,估算可用的 CPU 核心數量。
標記:host_machine_resource_optimizations
會累積 --local_extra_resources=<a named float, 'name=value'> 個用途
設定 Bazel 可用的額外資源數量。採用字串浮點值。可用來多次指定多種類型的額外資源。Bazel 會根據可用額外資源和所需的額外資源,限制並行執行的動作。測試可以使用「resources:<resoucename>:<amount>」格式的標記,宣告所需的額外資源數量。無法使用這個標記設定可用的 CPU、RAM 和資源。
標記:host_machine_resource_optimizations
--local_ram_resources=<an integer number of MBs, or "HOST_RAM", optionally followed by [-|*]<float>.> 預設值:「HOST_RAM*.67」
請明確設定 Bazel 可用的本機主機 RAM 總量 (以 MB 為單位),將這些資料用於在本機執行的建構動作。擷取整數或「HOST_RAM」,並視需要後面加上 [-|*]<float> (例如HOST_RAM*.5:使用一半的可用 RAM)。根據預設 (「HOST_RAM*.67」),Bazel 會查詢系統設定估算可用的 RAM 容量,並使用 67% 的 RAM。
標記:host_machine_resource_optimizations
會累積 --local_resources=<a named double, 'name=value', where value is an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5"> 個用途
設定 Bazel 可用的資源數量。指派給浮點值或 HOST_RAM/HOST_CPUS,視需要在後面加上 [-|*]<float> (例如:memory=HOST_RAM*.5,以便使用一半可用的 RAM)。可用於多次指定多種類型的資源。Bazel 會根據可用資源和所需的資源,限制並行執行的操作。測試可以使用「resources:<resource name>:<amount>」格式的標記,宣告所需的資源數量。覆寫 --local_{cpu|ram|extra}_resources 指定的資源。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生完整 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示完整 GC 事件永遠不會觸發下降。如果達到上限,在完整 GC 事件發生且超過保留堆積百分比門檻時,系統不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生輕微 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示次要 GC 事件永遠不會觸發下降。一旦達到限制,發生輕微 GC 事件且超過保留堆積百分比門檻時,系統就不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 預設值:「85」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量至少達到這個門檻,就會捨棄不必要的暫時性 SkyFrame 狀態。調整這個做法,即可減少垃圾收集造成的實際時間影響,也就是以下情形:GC 輾轉現象,是:(i) 這個臨時狀態的記憶體用量造成,(ii) 比在需要時重新建構狀態的成本高昂。
標記: host_machine_resource_optimizations
影響記錄詳細程度、格式或位置的選項:
--build_event_upload_max_retries=<an integer> 預設值:「4」
Bazel 重試上傳建構事件的次數上限。
標記:bazel_internal_configuration
--[no]debug_spawn_scheduler 預設值:「false」
--[no]experimental_bep_target_summary 預設值:「false」
是否要發布 TargetSummary 事件。
--[no]experimental_build_event_expand_filesets 預設值:「false」
如果為 true,請在顯示輸出檔案時展開 BEP 內的檔案集。
標記:affects_outputs
如果為 true,則在顯示輸出檔案時,會完整解析 BEP 中的相對檔案集符號連結。必須使用 --experimental_build_event_expand_filesets。
標記:affects_outputs
--experimental_build_event_upload_retry_minimum_delay=<An immutable length of time.> 預設值:「1s」
初始,在 BEP 上傳失敗時,指數輪詢重試的最短延遲時間。(指數:1.6)
標記: bazel_internal_configuration
--experimental_build_event_upload_strategy=<a string> 預設:查看說明
選取如何上傳建構事件通訊協定中參照的構件。
標記:affects_outputs
--[no]experimental_collect_local_sandbox_action_metrics預設值:「true」
已淘汰免人工管理。
標記: execution
--experimental_command_profile=<cpu, wall, alloc or lock> 預設:查看說明
記錄指令期間的 Java 航班/機票記錄工具設定檔。支援的剖析事件類型之一 (CPU、牆、分配或鎖定) 必須以引數的形式指定。設定檔將寫入一個檔案,並以事件類型在輸出基本目錄下命名。這個旗標的語法和語意日後可能會變更,以支援其他設定檔類型或輸出格式,請自行承擔風險。
--[no]experimental_docker_verbose 預設值:「false」
啟用後,Bazel 就會列印與 Docker 沙箱策略相關的更詳細的訊息。
標記:execution
--[no]experimental_materialize_param_files_directly 預設值:「false」
如要具體化參數檔案,請直接寫入磁碟。
標記:execution
--[no]experimental_record_metrics_for_all_mnemonics 預設值:「false」
根據預設,動作類型數量限制為已執行次數最多的 20 種記憶。如果設定這個選項,系統將寫入所有助測器的統計資料。
--experimental_repository_resolved_file=<a string> 預設值:「」
如果非空白,請使用已執行的所有 Starlark 存放區規則解析資訊編寫 Starlark 值。
標記:affects_outputs
--[no]experimental_run_bep_event_include_residue 預設值:「false」
是否要在可能包含主體的執行建構事件中加入指令列留存。根據預設,殘留設定不會納入可能包含殘存的執行指令建構事件中。
標記:affects_outputs
--experimental_skyfocus_dump_keys=<none, count or verbose>預設值:「無」
用於對 Skyfocus 偵錯。轉儲聚焦的 SkyKey (根、葉、聚焦、聚焦輸入端)。
標記:terminal_output
--[no]experimental_skyfocus_dump_post_gc_stats 預設值:「false」
用於對 Skyfocus 偵錯。啟用後,在焦點之前/之後觸發手動 GC,回報堆積大小縮減量。這會增加天空對焦延遲時間。
標記:terminal_output
--[no]experimental_stream_log_file_uploads 預設值:「false」
將記錄檔上傳檔案直接串流至遠端儲存空間,而非將記錄檔寫入磁碟。
標記:affects_outputs
--explain=<a path> 預設:查看說明
讓建構系統說明每個執行建構步驟的原因。說明會寫入指定的記錄檔。
標記:affects_outputs
--[no]ignore_unsupported_sandboxing 預設值:「false」
如果此系統不支援沙箱執行作業,請勿列印警告。
標記:terminal_output
--[no]legacy_important_outputs預設值:「true」
請使用這個選項,略過 TargetComplete 事件中舊版 important_outputs 時產生的情況。如要使用 Bazel 與 ResultStore 進行整合作業,就必須使用 important_outputs。
標記:affects_outputs
--[no]materialize_param_files 預設值:「false」
即使執行遠端動作,也能寫入中繼參數檔案以輸出樹狀結構。對動作進行偵錯時相當實用。--subcommands 和 --verbose_failures 表示此屬性。
標記:execution
--max_config_changes_to_show=<an integer> 預設值:「3」
當您因建構選項變更而捨棄分析快取時,最多會顯示指定數量的變更選項名稱。如果指定數字為 -1,系統會顯示所有已變更的選項。
標記:terminal_output
--max_test_output_bytes=<an integer> 預設值:「-1」
指定當 --test_output 為「errors」或「all」時,每個測試記錄可以發出的大小上限。適合避免輸出內容含有過多雜訊的測試輸出內容。測試標頭會包含在記錄檔大小中。負值表示無限制。輸出結果完全無效。
標記:test_runnerterminal_outputexecution
--output_filter=<a valid Java regular expression> 預設:查看說明
只有名稱與所提供規則運算式相符的規則,才會顯示警告和動作輸出內容。
標記:affects_outputs
--progress_report_interval=<an integer in 0-3600 range> 預設值:「0」
查看執行中工作報表之間的等待秒數。預設值 0 表示會在 10 秒後列印第一份報告、30 秒後列印,且每分鐘會回報一次進度。啟用 --curses 後,系統會每秒回報進度。
標記:affects_outputs
--remote_print_execution_messages=<failure, success or all> 預設值:「failure」
選擇何時列印遠端執行訊息。有效值為「failure」,僅限失敗時列印;「成功」可只在成功時列印,「all」則代表一律列印。
標記:terminal_output
--[no]sandbox_debug 預設值:「false」
為沙箱功能啟用偵錯功能。這包含兩個項目:首先,沙箱根層級內容在建構後不會進行任何調整,第二,會在執行時輸出額外的偵錯資訊。這有助於 Bazel 或 Starlark 規則,因為缺少輸入檔案等而導致偵錯失敗。
標記:terminal_output
--show_result=<an integer> 預設值:「1」
顯示建構的結果。請說明每個目標是否已顯示為最新版本;如果有的話,會顯示已建立的輸出檔案清單。列印的檔案是便利的字串,可用來複製和貼到殼層,以便執行檔案。這個選項需要整數引數,也就是未列印結果資訊的目標門檻數量。因此,零會導致訊息遭到抑制,而 MAX_INT 會導致一律列印結果。預設值為 1。如果目標沒有任何建構項目,則可能會省略其結果,讓輸出內容保持在門檻內。
標記:affects_outputs
--[no]subcommands [-s] 預設值:「false」
顯示建構期間執行的子指令。相關標記:--execution_log_json_file、--execution_log_binary_file (用於將子指令記錄為適合工具的格式檔案)。
標記:terminal_output
--test_output=<summary, errors, all or streamed>預設值:「摘要」
指定所需的輸出模式。有效的值為「summary」:只能輸出測試狀態摘要,「errors」則可輸出失敗測試的測試記錄;「all」可輸出所有測試的記錄,「streamed」則會即時輸出所有測試的記錄 (無論 --test_strategy 值為何,系統會強制在本機只執行一項測試)。
標記:test_runnerterminal_outputexecution
--test_summary=<short, terse, detailed, none or testcase> 預設值:「short」
指定所需的測試摘要格式。有效值為「short」,僅顯示執行測試的相關資訊「tere」,用於列印失敗測試的相關資訊;「detailed」,以列印失敗測試案例的詳細資訊;在測試案例解決方案中,以「testcase」輸出摘要;請勿輸出失敗測試案例的詳細資訊,而省略摘要的「無」以省略摘要。
標記:terminal_output
--[no]verbose_explanations 預設值:「false」
啟用 --explain 時,即可提高所核發說明的詳細程度。在未啟用 --explain 的情況下不會有任何作用。
標記:affects_outputs
--[no]verbose_failures 預設值:「false」
如果指令失敗,請輸出完整的指令列。
標記:terminal_output
可為不屬於其他類別的 Bazel 指令指定或變更一般輸入的選項:
會累積 --aspects_parameters=<a 'name=value' assignment> 個用途
指定指令列切面參數的值。每個參數值都是透過 <param_name>=<param_value> 指定,例如 'my_param=my_val',其中「my_param」是部分切面的參數,或清單中某個方面所需的參數。這個選項可以多次使用。不過,系統不允許重複將值指派給同一個參數。
標記:loading_and_analysis
--experimental_resolved_file_instead_of_workspace=<a string> 預設值:「」
如果讀取指定的已解析檔案 (而非 WORKSPACE 檔案) 為非空白檔案
標記: changes_inputs
--target_pattern_file=<a string> 預設值:「」
如果已設定,建構作業就會從此處命名的檔案讀取模式,而不是從指令列讀取。在這裡指定檔案以及指令列模式會發生錯誤。
標記: changes_inputs
遠端快取和執行選項:
--experimental_circuit_breaker_strategy=<failure> 預設:查看說明
指定斷路器要使用的策略。可用的策略包括「失敗」。選項的值無效時,行為與未設定選項的行為相同。
標記:execution
--experimental_downloader_config=<a string> 預設:查看說明
指定要用於設定遠端下載程式的檔案。這個檔案由各行組成,每個指令都是以指令 (「allow」、「block」或「rewrite」) 開頭,後面接有主機名稱 (適用於「allow」和「block」) 或兩個模式,一個要比對做為替代網址,另一個則做為替代網址,並以「$1」開頭的反向參照。即使多個「重新編寫」指令,也可視為相同網址的「rewrite」指令。
--[no]experimental_guard_against_concurrent_changes 預設值:「false」
如果關閉這項功能,系統就會在將動作輸入至遠端快取之前,停用檢查動作輸入檔案的時間。在某些情況下,Linux kernel 會延遲寫入檔案,可能會造成偽陽性結果。
--[no]experimental_remote_cache_async 預設值:「false」
如果為 true,遠端快取 I/O 會在背景發生,而不是做為生成內容的一部分。
--experimental_remote_cache_compression_threshold=<an integer> 預設值:「0」
使用 zstd 壓縮/解壓縮所需的最小 blob 大小。除非已設定 --remote_cache_compression,否則沒有任何效果。
--experimental_remote_cache_eviction_retries=<an integer> 預設值:「0」
建構作業遇到遠端快取撤銷錯誤時,重試的次數上限。系統會以非零值的隱含值,將 --incompatible_remote_use_new_exit_code_for_lost_inputs 設為 true。每次嘗試會產生新的叫用 ID。如果您產生叫用 ID,並且使用 --invocation_id 將其提供給 Bazel,請勿使用這個標記。請改為設定 --incompatible_remote_use_new_exit_code_for_lost_inputs,並檢查結束代碼 39。
標記:execution
--[no]experimental_remote_cache_lease_extension 預設值:「false」
如果設為 True,Bazel 將定期將「FindMissingBlobs」呼叫傳送至遠端快取,藉此在建構期間擴充遠端動作的輸出內容。頻率會以「--experimental_remote_cache_ttl」的值為基礎。
--experimental_remote_cache_ttl=<An immutable length of time.> 預設值:「3h」
不久前,遠端快取中 blob 的保證最短存留時間,都是透過 ActionResult 或 FindMissingBlobs 參照。Bazel 會根據 blob 的存留時間執行多項最佳化作業,例如不會在漸進式建構作業中重複呼叫 GetActionResult。這項設定值應略低於實際存留時間,因為伺服器傳回摘要的時間,與 Bazel 接收摘要的時間斷言。
標記:execution
--experimental_remote_capture_corrupted_outputs=<a path> 預設:查看說明
將擷取損毀輸出內容的目錄路徑。
--[no]experimental_remote_discard_merkle_trees預設值:「true」
如果設為 True,在呼叫 GetActionResult() 和 Execute() 時,系統會捨棄輸入根層級 Merkle 樹狀結構的記憶體內副本和相關輸入對應。這麼做可大幅降低記憶體用量,但必須讓 Bazel 在遠端快取失敗及重試時重新運算這些副本。
--experimental_remote_downloader=<a string> 預設:查看說明
用來當做遠端下載 Proxy 的 Remote Asset API 端點 URI。支援的結構定義為 grpc、grpcs (已啟用 TLS 的 grpc) 和 Unix (本機 UNIX 通訊端)。如未提供結構定義,Bazel 會預設使用控制台。詳情請參閱:https://github.com/bazelbuild/remote-apis/blob/master/build/bazel/remote/asset/v1/remote_asset.proto
--[no]experimental_remote_downloader_local_fallback 預設值:「false」
如果遠端下載工具發生錯誤,是否要改回使用本機下載工具。
--[no]experimental_remote_execution_keepalive 預設值:「false」
是否要針對遠端執行呼叫使用保持運作。
--experimental_remote_failure_rate_threshold=<an integer in 0-100 range> 預設值:「10」
設定特定時間範圍內的失敗率百分比 (以百分比表示),系統會在該時間範圍內停止呼叫遠端快取/執行工具。預設值為 10。設為 0 表示無限制。
標記:execution
--experimental_remote_failure_window_interval=<An immutable length of time.> 預設值:「60 秒」
計算遠端要求失敗率的間隔。如果設為零或負數值,系統會計算失敗時間長度的整個執行期間。以下的單位可以使用:天 (d)、小時 (h)、分鐘 (m)、秒 (s) 和毫秒 (ms)。如果省略單位,系統會將值解讀為「秒」。
標記:execution
--[no]experimental_remote_mark_tool_inputs 預設值:「false」
如果設為 True,Bazel 會將輸入內容標示為遠端執行程式的工具輸入內容。可用於實作遠端永久工作站。
--[no]experimental_remote_merkle_tree_cache 預設值:「false」
如果設為 True,系統會回憶 Merkle 樹狀結構的計算結果,以加快遠端快取命中檢查速度。快取的記憶體腳印由 --experimental_remote_merkle_tree_cache_size 控制。
--experimental_remote_merkle_tree_cache_size=<a long integer> 預設值:「1000」
要改善遠端快取命中檢查速度的 Merkle 樹狀圖數量。即使快取會根據 Java 處理軟體參照的方式自動縮減,但若設定過高,可能會發生記憶體不足錯誤。如果設為 0,快取大小就沒有上限。最佳價值會因專案大小而異。預設值為 1000。
--experimental_remote_output_service=<a string> 預設:查看說明
遠端輸出服務端點的 HOST 或 HOST:PORT。支援的結構定義為 grpc、grpcs (已啟用 TLS 的 grpc) 和 Unix (本機 UNIX 通訊端)。如未提供結構定義,Bazel 會預設使用控制台。如要停用 TLS,請指定 grpc:// 或 Unix:結構定義。
--experimental_remote_output_service_output_path_prefix=<a string> 預設值:「」
系統會放置 --experimental_remote_output_service 管理的輸出目錄內容所在路徑。建構作業使用的實際輸出目錄將是此路徑的子系,並由輸出服務決定。
--[no]experimental_remote_require_cached 預設值:「false」
如果設為 True,系統會強制快取所有可遠端執行的動作,否則建構作業會失敗。這可用於解決非確定性問題,因為這項方法可讓您檢查應快取的動作,是否真的能快取,而不會不小心將新結果插入快取。
--experimental_remote_scrubbing_config=<Converts to a Scrubber> 預設:查看說明
可使用提供的設定檔啟用遠端快取金鑰拖曳功能,設定檔必須是文字格式的通訊協定緩衝區 (請參閱 src/main/protobuf/remote_scrubbing.proto)。 這項功能旨在協助在不同平台上執行但鎖定相同平台的操作,共用遠端/磁碟快取。使用時請格外小心,如果設定不當,可能會導致意外分享快取項目,並導致建構作業不正確。 拖曳不會影響動作的執行方式,只會為了擷取或儲存動作結果,計算其遠端/磁碟快取金鑰的方式。拖曳的動作與遠端執行不相容,而且一律會在本機執行。修改清除設定不會使本機檔案系統或內部快取中的輸出內容失效;需要簡潔的版本才能重新執行受影響的動作。 為成功使用這項功能,建議您設定自訂的 --host_platform 搭配 --experimental_platform_in_output_dir (將輸出前置字元正規化) 和 --incompatible_strict_action_env (將環境變數正規化)。
--experimental_worker_for_repo_fetching=<off, platform, virtual or auto> 預設值:「auto」
用於存放區擷取的執行緒模式。如果設為「off」,系統就不會使用任何工作站執行緒,且會重新啟動存放區擷取作業。如果設為「平台」,則會使用平台執行緒 (即 OS 執行緒) 或虛擬執行緒 (如設為「virtual」)。如果設為「auto」,系統就會在可用的情況下使用虛擬執行緒 (即在 JDK 21 以上版本中執行),否則就不會使用工作站執行緒。
--[no]incompatible_remote_build_event_upload_respect_no_cache 預設值:「false」
已淘汰,免操作。請改用 --remote_build_event_upload=minimal。
--[no]incompatible_remote_downloader_send_all_headers預設值:「true」
是否要將含有多個值標頭的所有值 (而非第一個) 傳送至遠端下載工具。
標記:incompatible_change
--[no]incompatible_remote_output_paths_relative_to_input_root 預設值:「false」
如果設為 True,輸出路徑是相對於輸入根目錄,而非工作目錄。
標記:incompatible_change
--[no]incompatible_remote_results_ignore_disk預設值:「true」
免人工管理
標記: incompatible_change
--[no]incompatible_remote_use_new_exit_code_for_lost_inputs預設值:「true」
如果設為 True,當遠端快取在建構期間清除 blob 時,Bazel 將使用新的結束代碼 39,而非 34。
標記:incompatible_change
--[no]remote_accept_cached預設值:「true」
是否要接受遠端快取動作結果。
--remote_build_event_upload=<all or minimal> 預設值:「minimal」
如果設為「all」,BEP 參照的所有本機輸出內容都會上傳至遠端快取。如果設為「minimal」,BEP 參照的本機輸出不會上傳到遠端快取,除了 BEP 消費者的重要檔案 (例如測試記錄檔和時間設定檔) 之外,系統一律會為檔案 URI 使用 bytestream:// 配置,即使遠端快取中找不到這些檔案的 URI 也是如此。 預設為「minimal」。
--remote_bytestream_uri_prefix=<a string> 預設:查看說明
在寫入建構事件串流的 bytestream:// URI 中使用的主機名稱和執行個體名稱。這個選項可以在透過 Proxy 執行建構作業時設定,這會導致 --remote_executor 和 --remote_instance_name 的值不再對應至遠端執行服務的標準名稱。如未設定,系統會預設為「${hostname}/${instance_name}」。
--remote_cache=<a string> 預設:查看說明
快取端點的 URI。支援的結構定義包括 http、https、grpc、grpcs (已啟用 TLS 的 Grpc) 和 Unix (本機 UNIX 通訊端)。如未提供結構定義,Bazel 會預設使用控制台。如要停用 TLS,請指定 grpc://、http:// 或 Unix: 結構定義。詳情請參閱 https://bazel.build/remote/caching
--[no]remote_cache_compression 預設值:「false」
啟用後,當快取 blob 的大小至少達 --experimental_remote_cache_compression_threshold 時,使用 zstd 壓縮/解壓縮快取 blob。
會累積 --remote_cache_header=<a 'name=value' assignment> 個用途
指定會納入快取要求中的標頭:--remote_cache_header=Name=Value。只要多次指定旗標,即可傳遞多個標頭。系統會將相同名稱的多個值轉換為以半形逗號分隔的清單。
會累積 --remote_default_exec_properties=<a 'name=value' assignment> 個用途
在執行平台尚未設定 exec_properties 的情況下,設定做為遠端執行平台的預設執行屬性。
標記:affects_outputs
--remote_default_platform_properties=<a string> 預設值:「」
設定遠端執行 API 的預設平台屬性 (如果執行平台尚未設定 Remote_execution_properties)。如果選擇將主機平台當做遠端執行的執行平台,系統也會使用這個值。
會累積 --remote_download_regex=<a valid Java regular expression> 個用途
強制下載符合此模式的路徑 (無論 --remote_download_outputs 除外)。重複這個標記即可指定多個模式。
標記:affects_outputs
會累積 --remote_downloader_header=<a 'name=value' assignment> 個用途
指定會納入遠端下載程式要求的標頭:--remote_downloader_header=Name=Value。只要多次指定旗標,即可傳遞多個標頭。系統會將相同名稱的多個值轉換為以半形逗號分隔的清單。
會累積 --remote_exec_header=<a 'name=value' assignment> 個用途
指定會納入執行要求中的標頭:--remote_exec_header=Name=Value。只要多次指定旗標,即可傳遞多個標頭。系統會將相同名稱的多個值轉換為以半形逗號分隔的清單。
--remote_execution_priority=<an integer> 預設值:「0」
遠端執行動作的相對優先順序。特定優先順序值的語意視伺服器而定。
--remote_executor=<a string> 預設:查看說明
遠端執行端點的 HOST 或 HOST:PORT。支援的結構定義為 grpc、grpcs (已啟用 TLS 的 grpc) 和 Unix (本機 UNIX 通訊端)。如未提供結構定義,Bazel 會預設使用控制台。如要停用 TLS,請指定 grpc:// 或 Unix:結構定義。
--remote_grpc_log=<a path> 預設:查看說明
如有指定,請提供檔案路徑,用於記錄 gRPC 呼叫相關詳細資料。這個記錄包含一系列的序列化 com.google.devtools.build.lib.remote.logging.RemoteExecutionLog.LogEntry protobufs,且每個訊息開頭會加上 varint,表示下列序列化 protobuf 訊息的大小,由 LogEntry.writeDelimitedTo(OutputStream 方法所執行) 表示。
會累積 --remote_header=<a 'name=value' assignment> 個用途
指定會納入要求中的標頭:--remote_header=Name=Value。只要多次指定旗標,即可傳遞多個標頭。系統會將相同名稱的多個值轉換為以半形逗號分隔的清單。
--remote_instance_name=<a string> 預設值:「」
要在遠端執行 API 中做為 instance_name 傳遞的值。
--[no]remote_local_fallback 預設值:「false」
如果遠端執行失敗,是否要改回使用獨立的本機執行策略。
--remote_local_fallback_strategy=<a string> 預設值:「local」
免人工管理,已淘汰。詳情請參閱 https://github.com/bazelbuild/bazel/issues/7480。
--remote_max_connections=<an integer> 預設值:「100」
限制遠端快取/執行程式的並行連線數量上限。預設值為 100。設為 0 表示無限制。如果是 HTTP 遠端快取,一個 TCP 連線一次可以處理一個要求,因此 Bazel 最多可同時處理 --remote_max_connections 並行要求。以 gRPC 遠端快取/執行工具來說,一個 gRPC 管道通常可以處理超過 100 項並行要求,因此 Bazel 就能處理「--remote_max_connections * 100」的並行要求。
標記:host_machine_resource_optimizations
--remote_proxy=<a string> 預設:查看說明
透過 Proxy 連線至遠端快取。目前這個旗標只能用來設定 Unix 網域通訊端 (unix:/path/to/socket),
--remote_result_cache_priority=<an integer> 預設值:「0」
要儲存在遠端快取中的遠端動作相對優先順序。特定優先順序值的語意視伺服器而定。
--remote_retries=<an integer> 預設值:「5」
重試暫時性錯誤的次數上限。如果設為 0,系統就會停用重試功能。
--remote_retry_max_delay=<An immutable length of time.>預設值:「5 秒」
遠端重試之間的輪詢延遲時間上限。可使用以下單位:天 (d)、小時 (h)、分鐘 (m)、秒 (s) 和毫秒 (ms)。如果省略單位,系統會將值解讀為「秒」。
--remote_timeout=<An immutable length of time.> 預設值:「60 秒」
等待遠端執行與快取呼叫的時間長度上限。以 REST 快取來說,這同時為連線和讀取逾時。可使用以下單位:天 (d)、小時 (h)、分鐘 (m)、秒 (s) 和毫秒 (ms)。如果省略單位,系統會將值解讀為「秒」。
--[no]remote_upload_local_results預設值:「true」
如果遠端快取支援,且使用者已獲授權,是否要將本機執行的動作結果上傳至遠端快取。
--[no]remote_verify_downloads預設值:「true」
如果設為 True,Bazel 會計算所有遠端下載作業的雜湊總和,如果這些值與預期值不符,就會捨棄遠端快取的值。
其他未分類的選項。
--[no]allow_analysis_cache_discard預設值:「true」
如果因為建構系統的變更而捨棄分析快取,將這個選項設為 false 會導致 Bazel 結束,而非繼續執行建構作業。如果同時設定了「discard_analysis_cache」設定,這個選項就不會有任何作用。
標記:eagerness_to_exit
--auto_output_filter=<none, all, packages or subpackages>預設值:「無」
如未指定 --output_filter,系統會自動使用這個選項的值建立篩選器。允許的值為「none」(無篩選 / 顯示所有項目)、「全部」(篩選所有項目 / 不顯示任何內容)、「packages」(包含 Blaze 指令列中提及的規則輸出內容),以及「子套件」(例如「packages」,但也包含子套件)。若是 'packages' 和 'subpackages' 值,//java/foo 和 //javatests/foo 會視為一個套件)'。
--[no]build_manual_tests 預設值:「false」
強制建立標記為「manual」的測試目標。系統不會處理「手動」測試。這個選項會強制建構這些變數 (但不會執行)。
--build_tag_filters=<comma-separated list of options> 預設值:「」
指定以半形逗號分隔的標記清單。您可視需要在每個標記前面加上「-」來指定要排除的標記。系統只會建立含有至少一個內含代碼且不包含任何排除代碼的目標。這個選項不會影響使用「test」指令執行的測試組合,這些測試會受測試篩選選項規範,例如「--test_tag_filters」
--[no]build_tests_only 預設值:「false」
如有指定,系統只會建立 *_test 和 test_suite 規則,並忽略指令列中指定的其他目標。根據預設,系統將建構所有要求的內容。
--combined_report=<none or lcov>預設值:「無」
指定所需的累計涵蓋率報表類型。目前僅支援 LCOV。
--[no]compile_one_dependency 預設值:「false」
編譯引數檔案的單一依附元件。這適合用於檢查 IDE 中的語法,例如重新建構依附於來源檔案的單一目標,以便在編輯/建構/測試循環中盡早偵測錯誤。此引數會影響所有非旗標引數的解讀方式;這些引數並不是用於建構的目標,而是來源檔案名稱。系統會為每個來源檔案名稱建立一個任何仰賴它的目標檔案。
會累積 --deleted_packages=<comma-separated list of package names> 個用途
逗號分隔的套件名稱清單,即使這些套件出現在套件路徑中,建構系統也不會將其視為不存在。 刪除現有套件「x」的子套件「x/y」時,請使用這個選項。舉例來說,在用戶端刪除 x/y/BUILD 後,如果建構系統發現標籤「//x:y/z」仍由另一個 package_path 項目提供,可能會抱怨。指定 --deleted_packages x/y 以避免這個問題。
--[no]discard_analysis_cache 預設值:「false」
分析階段完成後,請立即捨棄分析快取。減少約 10% 的記憶體用量,但進一步逐步增量建構速度會變慢。
--disk_cache=<a path> 預設:查看說明
Bazel 可讀取及寫入動作和動作輸出內容的目錄路徑。如果目錄不存在,系統將建立該目錄。
--embed_label=<a one-line string> 預設值:「」
在二進位檔中嵌入來源控制修訂版本或版本標籤
--execution_log_binary_file=<a path> 預設:查看說明
根據 src/main/protobuf/spawn.proto,將執行中的版本記錄成檔案為長度分隔的 SpawnExec proto。相關旗標:--execution_log_json_file (文字 JSON 格式;互斥)、--execution_log_sort (是否排序執行記錄檔)、--subcommands (用於在終端機輸出內容中顯示子指令)。
--execution_log_json_file=<a path> 預設:查看說明
根據 src/main/protobuf/spawn.proto,執行後,系統會將執行內容記錄為 SpawnExec proto 的以換行符號分隔的 JSON 表示法。相關標記:--execution_log_binary_file (二進位 protobuf 格式;互斥)、--execution_log_sort (是否排序執行記錄檔)、--subcommands (用於在終端機輸出中顯示子指令)。
--[no]execution_log_sort預設值:「true」
是否要排序執行記錄檔,以便比較不同叫用的記錄。設為 false,可避免叫用結束時產生大量的 CPU 和記憶體用量,但代價是按不確定執行順序產生記錄。僅適用於二進位和 JSON 格式;精簡格式一律不會排序。
--[no]expand_test_suites預設值:「true」
將 test_suite 目標納入分析前的最終測試範圍。啟用此標記 (預設) 後,排除目標模式會套用至屬於測試套件的測試,否則則不會。若在指令列中套用頂層切面,停用此旗標會很有用:隨後他們就能分析 test_suite 目標。
標記:loading_and_analysis
--experimental_execution_log_compact_file=<a path> 預設:查看說明
根據 src/main/protobuf/spawn.proto,將執行中的版本記錄成檔案,做為長度分隔的 ExecLogEntry proto。整個檔案都經過 zstd 壓縮。此為實驗性格式,仍在開發中,隨時可能變更。相關標記:--execution_log_binary_file (二進位 protobuf 格式;互斥)、--execution_log_json_file (文字 JSON 格式;互斥)、--subcommands (用於在終端機輸出中顯示子指令)。
--experimental_extra_action_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths> 預設值:「」
建議使用切面。用於排定 extra_actions 的目標組合。
--[no]experimental_extra_action_top_level_only 預設值:「false」
建議使用切面。只能為頂層目標排定 extra_actions。
--experimental_spawn_scheduler
在本機和遠端同時執行多個動作,啟用動態執行功能。Bazel 會在本機以遠端方式產生每個動作,並挑選第一個完成的動作。如果動作支援 worker,本機動作會以永久工作站模式執行。如要為個別動作記憶法啟用動態執行功能,請改用 `--internal_spawn_scheduler` 和 `--strategy=<mnemonic>=dynamic` 標記。
擴展至:
  --internal_spawn_scheduler
  --spawn_strategy=dynamic
--[no]fetch預設值:「true」
允許指令擷取外部依附元件。如果設為 False,這個指令會使用依附元件的任何快取版本;如果不存在,該指令就會導致失敗。
--[no]incompatible_dont_use_javasourceinfoprovider 預設值:「false」
免人工管理
標記: incompatible_change
--local_termination_grace_seconds=<an integer> 預設值:「15」
因逾時而終止本機程序並強制關閉之間,應等待的時間。
會累積 --override_repository=<an equals-separated mapping of repository name to path> 個用途
用 <repository name>=<path> 的格式覆寫本機路徑的存放區。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則以相對路徑為準。如果指定路徑的開頭是「%workspace%」,代表與工作區根目錄 (也就是「bazel info workspace」的輸出內容) 有關。
--package_path=<colon-separated list of options>預設值:「%workspace%」
尋找套件的位置清單 (以半形冒號分隔)。開頭為「%workspace%」的元素與所屬工作區相對。如果省略或留空,則預設值為「bazel info default-package-path」的輸出內容。
--[no]show_loading_progress預設值:「true」
啟用後,Bazel 就會顯示「Loading package:」訊息。
--test_lang_filters=<comma-separated list of options> 預設值:「」
指定測試語言清單,以半形逗號分隔。您可以視需要在每個語言前面加上「-」來指定排除的語言。只找到以指定語言撰寫的測試目標。每種語言使用的名稱應與 *_test 規則中的語言前置字元相同,例如「cc」、「java」、「py」等等。這個選項會影響 --build_tests_only 行為和測試指令。
--test_size_filters=<comma-separated list of values: small, medium, large or enormous> 預設值:「」
指定測試大小的逗號分隔清單。您可以視需要在每個大小前面加上「-」來指定排除的大小。系統會找到這些測試目標,其中至少包含一個已納入的大小,且不包含任何排除的大小。這個選項會影響 --build_tests_only 行為和測試指令。
--test_tag_filters=<comma-separated list of options> 預設值:「」
指定測試標記的清單 (以半形逗號分隔)。您可視需要在每個標記前面加上「-」來指定要排除的標記。只有這些測試目標會找到至少內含一個已納入代碼且不含任何排除代碼。這個選項會影響 --build_tests_only 行為和測試指令。
--test_timeout_filters=<comma-separated list of values: short, moderate, long or eternal> 預設值:「」
指定測試逾時的逗號分隔清單。每個逾時都可以視需要加上「-」符號,指定排除的逾時時間。系統會找到這些測試目標,其中至少包含一個已包含的逾時時間,並不包含任何排除的逾時時間。這個選項會影響 --build_tests_only 行為和測試指令。
--workspace_status_command=<path> 預設值:「」
在建構開始時叫用的指令,以鍵/值組合的形式提供工作區的狀態資訊。如需完整規格,請參閱使用者手冊。如需範例,另請參閱 tools/buildstamp/get_workspace_status 頁面。
控制建構執行作業的選項:
--[no]check_up_to_date 預設值:「false」
請勿執行建構作業,只要檢查是否為最新版本即可。如果所有目標皆為最新版本,表示建構作業已成功完成。如有任何步驟需要執行錯誤,系統會回報錯誤,建構失敗。
標記:execution
是否要直接呼叫檔案系統來建立符號連結樹狀結構
標記:loading_and_analysisexecutionexperimental
--[no]experimental_persistent_aar_extractor 預設值:「false」
使用工作站啟用永久性擷取器。
標記:execution
--[no]experimental_remotable_source_manifests 預設值:「false」
是否要讓來源資訊清單動作可恢復運作
標記:loading_and_analysisexecutionexperimental
--[no]experimental_split_coverage_postprocessing 預設值:「false」
如果為 true,Bazel 會在新的另一個環境中執行涵蓋率後續處理來進行測試。
標記:execution
--[no]experimental_split_xml_generation預設值:「true」
如果設定了這個旗標,而且測試動作並未產生 test.xml 檔案,Bazel 就會使用個別動作產生內含測試記錄檔的虛擬 test.xml 檔案。否則 Bazel 會在測試動作中產生 test.xml。
標記:execution
--[no]experimental_strict_fileset_output 預設值:「false」
如果啟用此選項,檔案集會將所有輸出構件視為一般檔案。不會週遊目錄,也不會對符號連結敏感。
標記:execution
--[no]experimental_use_semaphore_for_jobs預設值:「true」
如果設為 true,會另外使用 semaphore 限制並行工作數量。
標記:host_machine_resource_optimizationsexecution
--genrule_strategy=<comma-separated list of options> 預設值:「」
指定 genrules 的執行方式。我們將淘汰此標記。請改用 --spawn_strategy=<value> 控制所有動作,或用 --strategy=Genrule=<value> 控制 Genrules。
標記:execution
--jobs=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5"> [-j] 預設值:「auto」
要執行的並行工作數量。可接受整數或關鍵字 ("auto"、"HOST_CPUS"、"HOST_RAM"),並視需要後面加上運算 ([-|*]<float>),例如「auto」、「HOST_CPUS*.5」。值必須介於 1 至 5000 之間。如果值超過 2500,可能會造成記憶體問題。「auto」會根據主機資源計算合理的預設值。
標記:host_machine_resource_optimizationsexecution
--[no]keep_going [-k] 預設值:「false」
發生錯誤後請盡可能繼續操作。雖然失敗的目標及依附的目標無法分析,但您可以採用這些目標的其他必要條件。
標記:eagerness_to_exit
--loading_phase_threads=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5"> 預設值:「auto」
用於載入/分析階段的平行執行緒數量。可使用整數或關鍵字 (「auto」、「HOST_CPUS」、「HOST_RAM」),視需要後面加上運算 ([-|*]<float>),例如「auto」、「HOST_CPUS*.5」。「auto」會根據主機資源設定合理的預設值。不得小於 1。
標記:bazel_internal_configuration
--modify_execution_info=<regex=[+-]key,regex=[+-]key,...> 預設值:「」
根據動作記憶法,在動作的執行資訊中新增或移除鍵。僅適用於支援執行資訊的動作。許多常見動作都支援執行資訊,例如 Genrule、CppCompile、Javac、StarlarkAction、TestRunner。由於許多規則運算式都可能適用於同一個文法,因此指定多個值時,順序很重要。 語法:「regex=[+-]key,regex=[+-]key,...」。 範例: 「.*=+x,.*=-y,.*=+z」會將「x」和「z」加入,並從所有動作的執行作業資訊中移除「y」。 「Genrule=+requires-x」會在所有 Genrule 動作的執行資訊中加入「requires-x」。 「(?!Genrule).*=-requires-x' 會從所有非 Genrule 動作的執行資訊中移除「requires-x」。
標記:executionaffects_outputsloading_and_analysis
--persistent_android_dex_desugar
使用工作站啟用持續的 Android dex 和去糖動作。
展開至:
  --internal_persistent_android_dex_desugar
  --strategy=Desugar=worker
  --strategy=DexBuilder=worker

標記: host_machine_resource_optimizationsexecution
--persistent_android_resource_processor
使用工作站啟用永久 Android 資源處理器。
展開至:
--internal_persistent_busybox_tools
--strategy=AaptPackage=worker
--strategy=AndroidResourceParser=worker
--strategy=AndroidResourceValidator=worker
--strategy=AndroidResourceCompiler=worker
--strategy=RClassGenerator=worker
--strategy=AndroidResourceLink=worker
--strategy=AndroidAapt2=worker
--strategy=AndroidAssetMerger=worker
--strategy=AndroidResourceMerger=worker
--strategy=AndroidCompiledResourceMerger=worker
--strategy=ManifestMerger=worker
--strategy=AndroidManifestMerger=worker
--strategy=ManifestMerger=worker
--strategy=AndroidManifestMerger=worker



--strategy=Aapt2Optimize=worker--strategy=AARGenerator=worker--strategy=ProcessDatabinding=worker--strategy=GenerateDataBindingBaseClasses=workerhost_machine_resource_optimizationsexecution
--persistent_multiplex_android_dex_desugar
使用工作站啟用持續的多工處理 Android dex 和去糖動作。
展開至:
  --persistent_android_dex_desugar
  --internal_persistent_multiplex_android_dex_desugar

標記: host_machine_resource_optimizationsexecution
--persistent_multiplex_android_resource_processor
使用工作站啟用永久多工 Android 資源處理器。
展開至:
--persistent_android_resource_processor
--modify_execution_info=AaptPackage=+supports-multiplex-workers
--modify_execution_info=AndroidResourceParser=+supports-multiplex-workers
--modify_execution_info=AndroidResourceValidator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceCompiler=+supports-multiplex-workers
--modify_execution_info=RClassGenerator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceLink=+supports-multiplex-workers
--modify_execution_info=AndroidAapt2=+supports-multiplex-workers
--modify_execution_info=AndroidAssetMerger=+supports-multiplex-workers
--modify_execution_info=AndroidResourceMerger=+supports-multiplex-workers
--modify_execution_info=AndroidCompiledResourceMerger=+supports-multiplex-workers
--modify_execution_info=ManifestMerger=+supports-multiplex-workers
--modify_execution_info=AndroidManifestMerger=+supports-multiplex-workers
--modify_execution_info=ManifestMerger=+supports-multiplex-workers
--modify_execution_info=AndroidManifestMerger=+supports-multiplex-workers
--modify_execution_info=Aapt2Optimize=+supports-multiplex-workers
1}
--modify_execution_info=AARGenerator=+supports-multiplex-workershost_machine_resource_optimizationsexecution
--persistent_multiplex_android_tools
啟用永久和多工處理 Android 工具 (DEX 處理、脫糖、資源處理)。
展開至:
  --internal_persistent_multiplex_busybox_tools
  --persistent_multiplex_android_resource_processor
  --persistent_multiplex_android_dex_desugar

標記: host_machine_resource_optimizationsexecution
--[no]skip_incompatible_explicit_targets 預設值:「false」
略過指令列中明確列出的不相容目標。根據預設,建立這類目標會導致錯誤,但啟用此選項後,系統會在不通知使用者的情況下略過這些目標。請參閱:https://bazel.build/extending/platforms#skiping-incompatible-targets
標記: loading_and_analysis
--spawn_strategy=<comma-separated list of options> 預設值:「」
指定預設動作的執行方式。接受一份以半形逗號分隔的策略清單,其中包含最高優先順序至最低的策略。Bazel 會根據每個動作選擇可執行動作的優先順序最高策略。預設值為「remote,worker,sandboxed,local」。詳情請參閱 https://blog.bazel.build/2019/06/19/list-strategy.html。
標記:execution
會累積 --strategy=<a '[name=]value1[,..,valueN]' assignment> 個用途
指定如何分配其他生成動作的編譯作業。接受一份以半形逗號分隔的策略清單,其中包含最高優先順序至最低的策略。Bazel 會根據每個動作選擇可執行動作的優先順序最高策略。預設值為「remote,worker,sandboxed,local」。這個標記會覆寫 --spawn_strategy 設定的值 (如果與 mnemonic Genrule 搭配使用,則會傳回 --genrule_strategy 設定的值。詳情請參閱 https://blog.bazel.build/2019/06/19/list-strategy.html。
標記:execution
會累積 --strategy_regexp=<a '<RegexFilter>=value[,value]' assignment> 個用途
覆寫要使用哪個產生的策略,執行說明符合特定 regex_filter 的產生動作。如要進一步瞭解 regex_filter 比對,請參閱 --per_file_copt。系統會採用最後一個符合說明的 regex_filter。這個選項會覆寫用於指定策略的其他旗標。範例:--strategy_regexp=//foo.*\.cc,-//foo/bar=local 表示使用本機策略執行動作時,前提是其說明符合 //foo.*.cc,而不是 //foo/bar。範例:--strategy_regexp='Compiling.*/bar=local --strategy_regexp=Compiling=sandboxed 會使用「local」策略執行「Compiling //foo/bar/baz'」,但反轉順序則使用「sandboxed」執行。
標記:execution
--[no]use_target_platform_for_tests 預設值:「false」
如果為 true,Bazel 會使用目標平台來執行測試,而非測試執行群組。
標記: execution
設定用於執行動作的工具鍊的選項:
--android_compiler=<a string> 預設:查看說明
Android 目標編譯器。
標記:affects_outputsloading_and_analysisloses_incremental_state
--android_crosstool_top=<a build target label> 預設值:「//external:android/crosstool」
用於 Android 建構作業的 C++ 編譯器的位置。
標記:affects_outputschanges_inputsloading_and_analysisloses_incremental_state
--android_grte_top=<a label> 預設:查看說明
Android 目標 grte_top。
標記:changes_inputsloading_and_analysisloses_incremental_state
--android_manifest_merger=<legacy, android or force_android> 預設值:「android」
選取要用於 android_binary 規則的資訊清單合併工具。協助從舊版合併工具轉換至 Android 資訊清單合併工具的旗標。
標記:affects_outputsloading_and_analysisloses_incremental_state
--android_platforms=<a build target label> 預設值:「」
設定 android_binary 目標使用的平台。如果指定多個平台,二進位檔就是笨重的 APK,其中包含每個指定目標平台的原生二進位檔。
標記:changes_inputsloading_and_analysisloses_incremental_state
--android_sdk=<a build target label> 預設值:「@bazel_tools//tools/android:sdk」
指定用於建構 Android 應用程式的 Android SDK/平台。
標記:changes_inputsloading_and_analysisloses_incremental_state
--apple_crosstool_top=<a build target label> 預設值:「@bazel_tools//tools/cpp:toolchain」
用於 Apple 和 Objc 規則及其依附元件的 Crosstool 套件標籤。
標記:loses_incremental_statechanges_inputs
--cc_output_directory_tag=<a string> 預設值:「」
指定要新增至設定目錄的後置字串。
標記:affects_outputs
--compiler=<a string> 預設:查看說明
用於編譯目標的 C++ 編譯器。
標記:loading_and_analysisexecution
--coverage_output_generator=<a build target label> 預設值:「@bazel_tools//tools/test:lcov_merger」
用於後處理原始涵蓋率報表的二進位檔位置。這必須是包含單一檔案 (即二進位) 的檔案群組。預設值為「//tools/test:lcov_merger」。
標記:changes_inputsaffects_outputsloading_and_analysis
--coverage_report_generator=<a build target label> 預設值:「@bazel_tools//tools/test:coverage_report_generator」
用於產生涵蓋率報表的二進位檔案位置。這必須是包含單一檔案 (即二進位) 的檔案群組。預設值為「//tools/test:coverage_report_generator」。
標記:changes_inputsaffects_outputsloading_and_analysis
--coverage_support=<a build target label> 預設值:「@bazel_tools//tools/test:coverage_support」
每個測試動作收集程式碼涵蓋率的測試動作所需的支援檔案位置。預設值為「//tools/test:coverage_support」。
標記:changes_inputsaffects_outputsloading_and_analysis
--custom_malloc=<a build target label> 預設:查看說明
指定自訂 Malloc 實作。這項設定會覆寫建構規則中的 Malloc 屬性。
標記:changes_inputsaffects_outputs
會累積 --experimental_add_exec_constraints_to_targets=<a '<RegexFilter>=<label1>[,<label2>,...]' assignment> 個用途
逗號分隔的規則運算式清單,每個運算式都會按照「-」(排除運算式) 開頭,指派 (=) 至以半形逗號分隔的限制值目標清單。如果目標未符合排除運算式,且至少有一個正運算式,系統會假設該運算式將限制值宣告為執行限制,並據此執行該目標工具鍊的解析作業。範例://demo,-test=@platforms//cpus:x86_64 會在 //demo 底下的任何目標中加入「x86_64」,但名稱包含「test」的目標除外。
標記:loading_and_analysis
--[no]experimental_include_xcode_execution_requirements 預設值:「false」
如果已設定,則在每個 Xcode 動作中加入「requires-xcode:{version}」執行要求。如果 Xcode 版本具有連字號標籤,請同時加入「requires-xcode-label:{version_label}」執行要求。
標記:loses_incremental_stateloading_and_analysisexecution
--[no]experimental_prefer_mutual_xcode預設值:「true」
如果為 true,請使用本機和遠端可用的最新 Xcode。如果設為 False 或沒有共同可用的版本,請使用 xcode-select 選取的本機 Xcode 版本。
標記:loses_incremental_state
--extra_execution_platforms=<comma-separated list of options> 預設值:「」
可做為執行平台來執行動作的平台。平台可以根據確切目標或目標模式指定。系統會先考量這些平台,再透過暫存_execution_platforms() 宣告到 WORKSPACE 檔案中的平台。這個選項只能設定一次,之後的項目會覆寫先前的旗標設定。
標記:execution
會累積 --extra_toolchains=<comma-separated list of options> 個用途
在工具鍊解析期間要考量的工具鍊規則。工具鍊可以根據確切目標或目標模式指定。系統會先考量這些工具鍊,再透過暫存_toolchains() 在 WORKSPACE 檔案內宣告的項目。
標記:affects_outputschanges_inputsloading_and_analysis
--grte_top=<a label> 預設:查看說明
已勾選 libc 程式庫的標籤。預設值是由跨工具工具鍊選取,您幾乎不需要覆寫這個值。
標記:action_command_linesaffects_outputs
--host_compiler=<a string> 預設:查看說明
免人工管理標記。將在日後推出的版本中移除。
標記:loading_and_analysisexecution
--host_grte_top=<a label> 預設:查看說明
如果指定此選項,這項設定會覆寫執行設定的 libc 頂層目錄 (--grte_top)。
標記:action_command_linesaffects_outputs
--host_platform=<a build target label> 預設值:「@local_config_platform//:host」
描述主機系統的平台規則標籤。
標記:affects_outputschanges_inputsloading_and_analysis
--[no]incompatible_dont_enable_host_nonhost_crosstool_features預設值:「true」
如果設為 True,Bazel 就不會啟用 c++ 工具鍊中的「主機」和「非主機」功能 (詳情請參閱 https://github.com/bazelbuild/bazel/issues/7407)。
標記:loading_and_analysisincompatible_change
--[no]incompatible_enable_android_toolchain_resolution預設值:「true」
使用工具鍊解析度選取 Android 規則 (Starlark 和原生) 的 Android SDK
標記: loading_and_analysisincompatible_change
--[no]incompatible_enable_apple_toolchain_resolution 預設值:「false」
使用工具鍊解析功能,選取 Apple SDK for Apple 規則 (Starlark 和原生程式碼)
代碼: loading_and_analysisincompatible_change
--[no]incompatible_make_thinlto_command_lines_standalone預設值:「true」
這個標記為 noop,且已排定移除時間。
標記:no_opincompatible_change
--[no]incompatible_remove_legacy_whole_archive預設值:「true」
如果設為 True,Bazel 預設不會連結整個封存檔中的程式庫依附元件 (如需遷移操作說明,請參閱 https://github.com/bazelbuild/bazel/issues/7362)。
標記:loading_and_analysisincompatible_change
--[no]incompatible_require_ctx_in_configure_features預設值:「true」
這個標記為 noop,且已排定移除時間。
標記:no_opincompatible_change
--[no]incompatible_strip_executable_safely 預設值:「false」
如果為 true,可執行檔的移除動作會使用旗標 -x,這不會破壞動態符號解析功能。
標記:action_command_linesincompatible_change
--[no]interface_shared_objects預設值:「true」
如果工具鍊支援介面共用物件,請使用介面共用物件。所有 ELF 工具鍊目前都支援這項設定。
標記:loading_and_analysisaffects_outputsaffects_outputs
--ios_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
指定用於建構 iOS 應用程式的 iOS SDK 版本。如果未指定,則會使用「xcode_version」中的預設 iOS SDK 版本。
標記:loses_incremental_state
--macos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
指定要用於建構 macOS 應用程式的 macOS SDK 版本。如果未指定,系統會使用「xcode_version」中的預設 macOS SDK 版本。
標記:loses_incremental_state
--minimum_os_version=<a string> 預設:查看說明
編譯目標的最低作業系統版本。
標記:loading_and_analysisaffects_outputs
--platform_mappings=<a relative path> 預設值:「」
對應檔案的位置,用於說明如未設定任何平台,或該平台已存在時要設定哪些平台,該平台會使用哪個平台。此值必須與主要工作區根層級相關。預設值為「platform_mappings」(直接位於工作區根目錄下的檔案)。
標記:affects_outputschanges_inputsloading_and_analysisimmutable
--platforms=<a build target label> 預設值:「」
平台規則標籤,用於說明目前指令的目標平台。
標記:affects_outputschanges_inputsloading_and_analysis
--python2_path=<a string> 預設:查看說明
已淘汰,無人工管理,已由「--incompatible_use_python_toolchains」停用。
標記:no_opdeprecated
--python3_path=<a string> 預設:查看說明
已淘汰,無人工管理,已由「--incompatible_use_python_toolchains」停用。
標記:no_opdeprecated
--python_path=<a string> 預設:查看說明
為在目標平台執行 Python 目標而叫用的 Python 解譯器絕對路徑。已淘汰;已由 --incompatible_use_python_toolchains 停用。
標記:loading_and_analysisaffects_outputs
--python_top=<a build target label> 預設:查看說明
代表已叫用 Python 解譯器在目標平台上執行 Python 目標的 py_runtime 標籤。已淘汰;已由 --incompatible_use_python_toolchains 停用。
標記:loading_and_analysisaffects_outputs
--tvos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
指定用於建構 tvOS 應用程式的 tvOS SDK 版本。如果未指定,系統會使用「xcode_version」中的預設 tvOS SDK 版本。
標記:loses_incremental_state
--watchos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
指定用於建構 watchOS 應用程式的 watchOS SDK 版本。如果未指定,系統會使用「xcode_version」中的預設 watchOS SDK 版本。
標記:loses_incremental_state
--xcode_version=<a string> 預設:查看說明
如有指定,系統會使用指定版本的 Xcode 進行相關建構動作。如未指定,系統會使用執行程式預設版本的 Xcode。
標記:loses_incremental_state
--xcode_version_config=<a build target label> 預設值:「@bazel_tools//tools/cpp:host_xcodes」
在建構設定中選取 Xcode 版本所使用的 xcode_config 規則標籤。
標記:loses_incremental_stateloading_and_analysis
控制指令輸出內容的選項:
--[no]apple_generate_dsym 預設值:「false」
是否要產生偵錯符號 (.dSYM) 檔案。
標記:affects_outputsaction_command_lines
--[no]build預設值:「true」
執行建構作業,這是一般的行為。指定 --nobuild 會導致建構在執行建構動作前停止;如果套件載入和分析階段順利完成,則傳回零;這個模式在測試這些階段時非常實用。
標記:executionaffects_outputs
如果為 true,請針對所有目標建構執行檔案符號連結樹系。設為 false 時,請只在本地動作、測試或執行指令必要時寫入。
標記:affects_outputs
--[no]build_runfile_manifests預設值:「true」
如果為 true,請為所有目標寫入執行檔案資訊清單。如果設為 false,請省略這些參數。如果為 false,本機測試就無法執行。
標記:affects_outputs
--[no]build_test_dwp 預設值:「false」
啟用後,以靜態方式建構 C++ 測試時,系統也會自動建構測試二進位檔的 .dwp 檔案。
標記:loading_and_analysisaffects_outputs
--cc_proto_library_header_suffixes=<comma-separated set of options> 預設值:「.pb.h」
設定 cc_proto_library 建立的標頭檔案後置字串。
標記:affects_outputsloading_and_analysis
--cc_proto_library_source_suffixes=<comma-separated set of options> 預設值:「.pb.cc」
設定 cc_proto_library 建立的來源檔案後置字串。
標記:affects_outputsloading_and_analysis
--[no]experimental_proto_descriptor_sets_include_source_info 預設值:「false」
針對 proto_library 中的替代 Java API 版本執行額外動作。
標記:affects_outputsloading_and_analysisexperimental
--[no]experimental_proto_extra_actions 預設值:「false」
針對 proto_library 中的替代 Java API 版本執行額外動作。
標記:affects_outputsloading_and_analysisexperimental
--[no]experimental_save_feature_state 預設值:「false」
將已啟用和要求的功能狀態儲存為編譯的輸出內容。
標記:affects_outputsexperimental
--[no]experimental_use_validation_aspect 預設值:「false」
是否要使用切面執行驗證動作 (用於與測試平行處理)。
標記:executionaffects_outputs
--fission=<a set of compilation modes> 預設值:「no」
指定哪些編譯模式會對 C++ 編譯和連結使用擴散。可以是 {'fastbuild', 'dbg', 'opt'} 的組合或特殊值「yes」,即可啟用所有模式,而設為「no」以停用所有模式。
標記:loading_and_analysisaction_command_linesaffects_outputs
--[no]incompatible_always_include_files_in_data預設值:「true」
如果為 true,原生規則會將資料依附元件的 <code>DefaultInfo.files</code> 新增至 runfile,以符合 Starlark 規則的建議行為 (https://bazel.build/extending/rules#runfiles_features_to_avoid) 。
標記:affects_outputsincompatible_change
--[no]legacy_external_runfiles預設值:「true」
如果為 true,請針對 .runfiles/wsname/external/repo 和 .runfiles/repo 中的外部存放區建構 runfile symlink 樹系。
標記:affects_outputs
--[no]objc_generate_linkmap 預設值:「false」
指定是否要產生連結對應檔案。
標記:affects_outputs
會累積 --output_groups=<comma-separated list of options> 個用途
輸出群組名稱清單 (以半形逗號分隔),每個群組名稱後面可選擇以 + 或 a - 開頭。系統會將前方加上 + 的分組新增至預設的輸出群組組合,前置字串為「-」的群組則會從預設設定中移除。如果至少有一個群組未加上前置字元,系統會忽略預設的輸出群組組合。舉例來說,--output_groups=+foo,+bar 會建構預設集、foo 和長條的聯集;而 --output_groups=foo,bar 會覆寫預設設定,只建構 foo 和長條。
標記:executionaffects_outputs
--[no]run_validations預設值:「true」
是否要在建構作業中執行驗證動作。請參閱 https://bazel.build/extending/rules#validation_actions
標記:executionaffects_outputs
--[no]save_temps 預設值:「false」
如有設定,系統會儲存 gcc 的暫時輸出。其中包括 .s 檔案 (組合器程式碼)、.i 檔案 (預先處理的 C) 和 .ii 檔案 (預先處理的 C++)。
標記:affects_outputs
可讓使用者設定預定輸出內容的選項,這會影響其值,但其值與存在不同:
會累積 --action_env=<a 'name=value' assignment with an optional value part> 個用途
指定要用於目標設定動作的環境變數組合。變數可以用名稱指定;在此情況下,值會從叫用環境取得;您也可以用 name=value 組合 (用來設定與叫用環境無關的值)。這個選項可以多次使用;對於同一個變數而言,選項有「最新的勝出項目」,以及因不同變數而累積的選項。
標記:action_command_lines
--android_cpu=<a string> 預設值:「armeabi-v7a」
Android 目標 CPU。
標記:affects_outputsloading_and_analysisloses_incremental_state
--[no]android_databinding_use_androidx預設值:「true」
產生與 AndroidX 相容的資料繫結檔案。這個函式只能搭配資料繫結 v2 使用。這個旗標為免人工管理。
標記:affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]android_databinding_use_v3_4_args預設值:「true」
將 Android Databinding v2 與 3.4.0 引數搭配使用。這個旗標為免人工管理。
標記:affects_outputsloading_and_analysisloses_incremental_stateexperimental
--android_dynamic_mode=<off, default or fully> 預設值:「關閉」
決定當 cc_binary 未明確建立共用程式庫時,是否要動態連結 Android 規則的 C++ 解碼。「default」表示 pzel 會選擇是否要動態連結。「完整」表示所有程式庫將動態連結。如果關閉,則主要會以靜態模式連結所有程式庫。
標記:affects_outputsloading_and_analysis
--android_manifest_merger_order=<alphabetical, alphabetical_by_configuration or dependency> 預設值:「alphabetical」
設定要傳遞至 Android 二進位檔資訊清單合併工具的資訊清單順序。ALPHABETICAL 表示資訊清單會依照執行作業根目錄的路徑排序。ALPHABETICAL_BY_CONFIGURATION 代表資訊清單會依照輸出目錄中設定目錄的路徑排序。DEPENDENCY 表示資訊清單會按照各個程式庫的資訊清單排序,在依附元件的資訊清單前面。
標記:action_command_linesexecution
--[no]android_resource_shrinking 預設值:「false」
為使用 ProGuard 的 android_binary APK 啟用資源縮減功能。
標記:affects_outputsloading_and_analysis
會累積 --aspects=<comma-separated list of options> 個用途
要套用至頂層目標的面向清單,以半形逗號分隔。在清單中,如果 some_aspect 透過 required_aspect_providers 指定必要的切面提供者,有些部分_aspect 會在切分項目清單 (其宣傳提供者符合 some_aspect 要求切面提供者) 之前的每個元素之後執行。此外,some_aspect 會在要求屬性指定的所有必要切面後執行,而部分_aspect 可以存取這些切面提供者的值。<bzl-file-label>%<aspect_name>,例如「//tools:my_def.bzl%my_aspect」,其中「my_aspect」是檔案 tools/my_def.bzl 的頂層值
--[no]build_python_zip 預設值:「auto」
建構 Python 執行檔 ZIP 檔案;在 Windows 上,關閉其他平台
標記: affects_outputs
會累積 --catalyst_cpus=<comma-separated list of options> 個用途
用於建構 Apple Catalyst 二進位檔的架構清單 (以半形逗號分隔)。
標記:loses_incremental_stateloading_and_analysis
--[no]collect_code_coverage 預設值:「false」
如有指定,Bazel 就會檢測程式碼 (盡可能使用離線檢測功能),並在測試期間收集涵蓋率資訊。只有相符的目標 --instrumentation_filter 會受到影響。一般而言,不應直接指定這個選項,請改用「bazelCoverage」指令。
標記:affects_outputs
--compilation_mode=<fastbuild, dbg or opt> [-c] 預設值:「Fastbuild」
指定二進位檔的建構模式。值:「fastbuild」、「dbg」、「opt」。
標記:affects_outputsaction_command_lines
會累積 --conlyopt=<a string> 個用途
編譯 C 來源檔案時,可傳送至 gcc 的其他選項。
標記:action_command_linesaffects_outputs
會累積 --copt=<a string> 個用途
傳送至 gcc 的其他選項。
標記:action_command_linesaffects_outputs
--cpu=<a string> 預設值:「」
目標 CPU。
標記:changes_inputsaffects_outputs
--cs_fdo_absolute_path=<a string> 預設:查看說明
使用 CSFDO 設定檔資訊最佳化編譯。為內含設定檔、原始或已建立索引 LLVM 設定檔的 ZIP 檔案指定絕對路徑名稱。
標記:affects_outputs
--cs_fdo_instrument=<a string> 預設:查看說明
產生具有情境敏感 FDO 檢測的二進位檔。使用 Clang/LLVM 編譯器時,也接受在執行階段傾印原始設定檔檔案的目錄名稱。
標記:affects_outputs
--cs_fdo_profile=<a build target label> 預設:查看說明
cs_fdo_profile,代表要用於最佳化的結構定義敏感設定檔。
標記:affects_outputs
會累積 --cxxopt=<a string> 個用途
在編譯 C++ 來源檔案時,傳送至 gcc 的其他選項。
標記:action_command_linesaffects_outputs
會累積 --define=<a 'name=value' assignment> 個用途
每個 --Definition 選項會指定建構變數的指派作業。如果變數有多個值,則會傳回最後一個值。
標記:changes_inputsaffects_outputs
--dynamic_mode=<off, default or fully> 預設值:「default」
決定 C++ 二進位檔是否會動態連結。「default」表示 Bazel 會選擇是否要動態連結。「完整」表示所有程式庫將動態連結。如果關閉,則主要會以靜態模式連結所有程式庫。
標記:loading_and_analysisaffects_outputs
--[no]enable_fdo_profile_absolute_path預設值:「true」
如果設定此設定,使用 fdo_清楚說明_profile_path 會引發錯誤。
標記:affects_outputs
--[no]enable_runfiles 預設值:「auto」
啟用執行檔案符號連結樹狀結構。根據預設,在 Windows 在其他平台上是關閉狀態。
標記:affects_outputs
會累積 --experimental_action_listener=<a build target label> 個用途
建議使用切面。使用 action_listener 將 extra_action 附加至現有的建構動作。
標記:executionexperimental
--[no]experimental_android_compress_java_resources 預設值:「false」
壓縮 APK 中的 Java 資源
標記:affects_outputsloading_and_analysisexperimental
--[no]experimental_android_databinding_v2預設值:「true」
使用 Android 資料繫結第 2 版。這個旗標為免人工管理。
標記:affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]experimental_android_resource_shrinking 預設值:「false」
為使用 ProGuard 的 android_binary APK 啟用資源縮減功能。
標記:affects_outputsloading_and_analysis
--[no]experimental_android_rewrite_dexes_with_rex 預設值:「false」
使用 Rex 工具重新編寫 dex 檔案
標記:affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]experimental_collect_code_coverage_for_generated_files 預設值:「false」
如有指定,Bazel 也會針對產生的檔案產生涵蓋率資訊。
標記:affects_outputs
這個標記可控制便利符號連結 (建構後工作區中顯示的符號連結) 的管理方式。可能的值:正常 (預設):每種類型的便利符號連結都會建立或刪除,具體取決於建構作業。乾淨:系統會無條件刪除所有符號連結。忽略:符號連結會保留。log_only:視為通過「normal」時產生記錄訊息,但實際上不執行任何檔案系統作業 (對工具而言很實用)。 請注意,只有名稱由 --symlink_prefix 目前值產生的符號連結才會受到影響;如果前置字串有所變更,現有的符號連結會維持不變。
標記:affects_outputs
這個旗標會控管是否要將建構 eventConvenienceSymlinksIdentified 發布至 BuildEventProtocol。如果值是 true,BuildEventProtocol 會有一個便利符號連結,列出您在工作區中建立的所有便利符號連結。如果為 false,BuildEventProtocol 中的函式 SymlinksIdentified 將為空白。
標記:affects_outputs
--experimental_objc_fastbuild_options=<comma-separated list of options> 預設值:「-O0,-DDEBUG=1」
使用這些字串做為 objc Fastbuild 編譯器選項。
標記:action_command_lines
--[no]experimental_omitfp 預設值:「false」
如果為 True,請使用 libunwind 進行堆疊展開,並使用 -fomit-frame-pointer 和 -fasync-unwind-tables 編譯。
標記:action_command_linesaffects_outputsexperimental
--experimental_output_paths=<off, content or strip> 預設值:「關閉」
要在輸出樹狀結構規則中的哪個位置寫入輸出內容,特別是針對多平台 / 多設定版本。這是非常實驗性。詳情請參閱 https://github.com/bazelbuild/bazel/issues/6526。Starlark 動作可將「supports-path-mapping」鍵新增至「execution_requirements」索引,選擇採用路徑對應。
標記:loses_incremental_statebazel_internal_configurationaffects_outputsexecution
會累積 --experimental_override_name_platform_in_output_dir=<a 'label=value' assignment> 個用途
每個項目均應採用格式為「label=value」,其中標籤是指平台,而值則是要在輸出路徑中使用的簡稱。僅適用於 --experimental_platform_in_output_dir 為 true 的情況。命名優先順序最高。
標記:affects_outputsexperimental
--[no]experimental_platform_in_output_dir 預設值:「false」
如果為 true,輸出目錄名稱會使用目標平台的簡稱,而不是 CPU。確切機制屬於實驗性質,隨時可能變更:首先,在極少數的情況下,--platforms 選項沒有確切的值,系統會使用平台選項的雜湊值。接下來,如果目前平台的任何簡稱是由 --experimental_override_name_platform_in_output_dir 註冊,系統會使用簡稱。然後,如果已設定 --experimental_use_platforms_in_output_dir_legacy_heuristic,請使用以目前平台標籤為依據的簡稱。最後,平台選項的雜湊只有在不得已的情況下才能使用。
標記:affects_outputsexperimental
--[no]experimental_use_llvm_covmap 預設值:「false」
如有指定,Bazel 會在啟用 collect_code_coverage 時,產生 llvm-cov 涵蓋範圍地圖資訊,而非 gcov。
標記:changes_inputsaffects_outputsloading_and_analysisexperimental
--[no]experimental_use_platforms_in_output_dir_legacy_heuristic預設值:「true」
請將這個標記僅用於建議的遷移或測試策略。請注意,經驗法則有已知的不足之處,建議您改用 --experimental_override_name_platform_in_output_dir。
標記:affects_outputsexperimental
--fat_apk_cpu=<comma-separated set of options> 預設值:「armeabi-v7a」
設定這個選項會啟用笨重 APK,此 APK 會包含所有指定目標架構的原生二進位檔,例如--fat_apk_cpu=x86,armeabi-v7a. 如果指定這個旗標,Android_binary 規則的依附元件會忽略 --android_cpu。
標記:affects_outputsloading_and_analysisloses_incremental_state
--[no]fat_apk_hwasan 預設值:「false」
免人工管理標記。將在日後推出的版本中移除。
標記:no_op
--fdo_instrument=<a string> 預設:查看說明
使用 FDO 檢測功能產生二進位檔。使用 Clang/LLVM 編譯器時,也接受在執行階段傾印原始設定檔檔案的目錄名稱。
標記:affects_outputs
--fdo_optimize=<a string> 預設:查看說明
使用 FDO 設定檔資訊最佳化編譯。指定含有 .gcda 檔案樹狀結構的 ZIP 檔案名稱、包含自動設定檔的 afdo 檔案,或是 LLVM 設定檔檔案。此旗標也接受指定為標籤的檔案 (例如「//foo/bar:file.afdo」,因此您可能需要將「exports_files」指令加入對應的套件),以及指向「fdo_profile」目標的標籤。此旗標將由「fdo_profile」規則取代。
標記:affects_outputs
--fdo_prefetch_hints=<a build target label> 預設:查看說明
使用快取預先擷取提示。
標記:affects_outputs
--fdo_profile=<a build target label> 預設:查看說明
代表要用於最佳化的設定檔 fdo_profile。
標記:affects_outputs
會累積 --features=<a string> 個用途
系統會針對在目標設定中建立的目標,預設啟用或停用特定功能。如果指定 -<feature>,該功能就會停用。排除功能一律會覆寫正值。另請參閱 --host_features
標記: changes_inputsaffects_outputs
--[no]force_pic 預設值:「false」
如果啟用這個選項,所有 C++ 編譯就會產生位置獨立程式碼 (「-fPIC」),連結偏好 PIC 預先建構程式庫,而非非 PIC 程式庫,而連結會產生位置獨立的執行檔 (「-pie」)。
標記:loading_and_analysisaffects_outputs
會累積 --host_action_env=<a 'name=value' assignment with an optional value part> 個用途
指定適用於執行設定動作的環境變數組合。變數可以用名稱指定;在此情況下,值會從叫用環境取得;您也可以用 name=value 組合 (用來設定與叫用環境無關的值)。這個選項可以多次使用;對於同一個變數而言,選項有「最新的勝出項目」,以及因不同變數而累積的選項。
標記:action_command_lines
--host_compilation_mode=<fastbuild, dbg or opt> 預設值:「opt」
指定建構期間用來內建工具的模式。值:「fastbuild」、「dbg」、「opt」。
標記:affects_outputsaction_command_lines
會累積 --host_conlyopt=<a string> 個用途
在執行設定中編譯 C (而非 C++) 來源檔案時,可傳送至 C 編譯器的其他選項。
標記:action_command_linesaffects_outputs
會累積 --host_copt=<a string> 個用途
針對執行設定中建立的工具,傳送至 C 編譯器的其他選項。
標記:action_command_linesaffects_outputs
--host_cpu=<a string> 預設值:「」
主機 CPU。
標記:changes_inputsaffects_outputs
會累積 --host_cxxopt=<a string> 個用途
針對執行設定中建立的工具,傳送至 C++ 編譯器的其他選項。
標記:action_command_linesaffects_outputs
會累積 --host_features=<a string> 個用途
針對在執行設定中建立的目標,系統預設會啟用或停用特定功能。如果指定 -<feature>,該功能就會停用。排除功能一律會覆寫正值。
標記:changes_inputsaffects_outputs
--host_force_python=<PY2 or PY3> 預設:查看說明
覆寫執行設定的 Python 版本。可以是「PY2」或「PY3」。
標記:loading_and_analysisaffects_outputs
會累積 --host_linkopt=<a string> 個用途
在執行設定中連結工具時,將傳送至連結器的其他選項。
標記:action_command_linesaffects_outputs
--host_macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
主機目標的最低相容 macOS 版本。如果未指定,請使用「macos_sdk_version」。
標記:loses_incremental_state
會累積 --host_per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options> 個用途
在執行設定中編譯特定檔案時,選擇性傳送至 C/C++ 編譯器的其他選項。這個選項可以多次傳送。語法:regex_filter@option_1,option_2,...,option_n. regex_filter 代表包含和排除規則運算式模式的清單 (另請參閱 --instrumentation_filter)。 option_1 表示選項_n 代表任意指令列選項。如果選項中含有半形逗號,必須使用反斜線加上引號。選項可以包含 @。只有第一個 @ 用來分割字串。範例:--host_per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 會在 //foo/ 中所有 cc 檔案的 gcc 命令列中加上 -O0 指令列選項 ( bar.cc 除外)。
標記:action_command_linesaffects_outputs
--[no]incompatible_auto_exec_groups 預設值:「false」
啟用後,系統會自動為規則使用的每個工具鍊建立執行群組。為此,工作規則需要在其動作中指定「toolchain」參數。詳情請參閱 https://github.com/bazelbuild/bazel/issues/17134。
標記:affects_outputsincompatible_change
--[no]incompatible_merge_genfiles_directory預設值:「true」
如果為 true,genfiles 目錄會併入 bin 目錄。
標記:affects_outputsincompatible_change
--[no]instrument_test_targets 預設值:「false」
啟用涵蓋率功能後,用於指定是否要考量檢測測試規則。設定之後,系統會檢測 --instrumentation_filter 包含的測試規則。否則,測試規則一律會從涵蓋率檢測作業中排除。
標記:affects_outputs
--instrumentation_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths> 預設值:「-/javatests[/:],-/test/java[/:]」
涵蓋率啟用後,系統只會檢測規則中含有指定規則運算式 (以規則運算式為準) 所含名稱的規則。系統會改為排除前置字串「-」。請注意,只有在已啟用 --instrument_test_targets 時,系統才會檢測非測試規則。
標記:affects_outputs
--ios_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
目標模擬器和裝置相容的 iOS 最低版本。如果未指定,請使用「ios_sdk_version」。
標記:loses_incremental_state
會累積 --ios_multi_cpus=<comma-separated list of options> 個用途
用於建構 ios_application 的架構清單 (以半形逗號分隔)。結果是通用二進位檔,其中包含所有指定架構。
標記:loses_incremental_stateloading_and_analysis
--[no]legacy_whole_archive預設值:「true」
已淘汰,並由 --incompatible_remove_legacy_whole_Archive (詳情請參閱 https://github.com/bazelbuild/bazel/issues/7362)。開啟時,針對含有 linkshared=True 且含有 linkstatic=True 或「-static」連結的 cc_binary 規則的 --whole-Archive。這僅適用於回溯相容性。更理想的替代方法是在必要時使用 alwayslink=1。
標記:action_command_linesaffects_outputsdeprecated
會累積 --linkopt=<a string> 個用途
連結時傳送至 gCC 的其他選項。
標記:action_command_linesaffects_outputs
會累積 --ltobackendopt=<a string> 個用途
這是傳送至 LTO 後端步驟的其他選項 (在 --features=thin_lto 之下)。
標記:action_command_linesaffects_outputs
會累積 --ltoindexopt=<a string> 個用途
這個選項可讓你傳送至 LTO 索引步驟 (位於 --features=thin_lto 下方)。
標記:action_command_linesaffects_outputs
會累積 --macos_cpus=<comma-separated list of options> 個用途
用於建構 Apple macOS 二進位檔的逗號分隔架構清單。
標記:loses_incremental_stateloading_and_analysis
--macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
目標的相容 macOS 最低版本。如果未指定,請使用「macos_sdk_version」。
標記:loses_incremental_state
--memprof_profile=<a build target label> 預設:查看說明
使用 memprof 設定檔。
標記:affects_outputs
--[no]objc_debug_with_GLIBCXX 預設值:「false」
如果已設定,並將編譯模式設為「dbg」,請定義 GLIBCXX_DEBUG、GLIBCXX_DEBUG_PEDANTIC 和 GLIBCPP_CONCEPT_CHECKS。
標記:action_command_lines
--[no]objc_enable_binary_stripping 預設值:「false」
是否要在連結的二進位檔上執行符號和去解碼器去除。如果同時指定這個旗標和 --compile_mode=opt,系統就會執行二進位檔清理作業。
標記:action_command_lines
會累積 --objccopt=<a string> 個用途
編譯 Objective-C/C++ 來源檔案時,可傳送至 gcc 的其他選項。
標記:action_command_lines
會累積 --per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options> 個用途
編譯特定檔案時選擇性傳送至 gcc 的其他選項。這個選項可以多次傳送。語法:regex_filter@option_1,option_2,...,option_n. regex_filter 代表包含和排除規則運算式模式的清單 (另請參閱 --instrumentation_filter)。 option_1 表示選項_n 代表任意指令列選項。如果選項中含有半形逗號,必須使用反斜線加上引號。選項可以包含 @。只有第一個 @ 用來分割字串。範例:--per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 會在 //foo/ 中所有 cc 檔案的 gcc 命令列中加上 -O0 指令列選項 ( bar.cc 除外)。
標記:action_command_linesaffects_outputs
會累積 --per_file_ltobackendopt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options> 個用途
編譯特定後端物件時,選擇性傳遞至 LTO 後端的其他選項 (在 --features=thin_lto 底下)。這個選項可以多次傳送。語法:regex_filter@option_1,option_2,...,option_n. regex_filter 代表包含和排除規則運算式模式的清單, option_1 代表選項_n 代表任意指令列選項。如果選項中含有半形逗號,必須使用反斜線加上引號。選項可以包含 @。只有第一個 @ 用來分割字串。範例:--per_file_ltobackendopt=//foo/.*\.o,-//foo/bar\.o@-O0 會在 //foo/ 中所有檔案的 LTO 後端指令列中加入 -O0 指令列選項,但 bar.o 除外。
標記: action_command_linesaffects_outputs
--platform_suffix=<a string> 預設:查看說明
指定要新增至設定目錄的後置字串。
標記:loses_incremental_stateaffects_outputsloading_and_analysis
--propeller_optimize=<a build target label> 預設:查看說明
使用 Propeller 設定檔資訊將建構目標最佳化。螺旋槳設定檔必須包含至少一個檔案:CCC 設定檔和 ld 設定檔。此旗標接受建構標籤,該標籤必須參照探測器設定檔輸入檔案。舉例來說,定義標籤的 BUILD 檔案可能必須在 a/b/BUILD:propeller_optimize( name = "propeller_profile", cc_profile = "propeller_cc_profile.txt", ld_profile = "propeller_ld_profile.txt",)Exports_files 中,您都必須新增至對應檔案才能檢視。選項必須使用以下格式:--propeller_optimize=//a/b:propeller_profile
標記: action_command_linesaffects_outputs
--propeller_optimize_absolute_cc_profile=<a string> 預設:查看說明
Propeller 最佳化建構作業的 cc_profile 檔案的絕對路徑名稱。
標記:affects_outputs
--propeller_optimize_absolute_ld_profile=<a string> 預設:查看說明
Propeller 最佳化版本的 ld_profile 檔案的絕對路徑名稱。
標記:affects_outputs
--run_under=<a prefix in front of command> 預設:查看說明
在「test」和「run」指令的執行檔之前插入的前置字串。如果值為「foo -bar」,且執行命令列是「test_binary -baz」,則最終命令列是「foo -bar test_binary -baz」。這也可以是執行檔目標的標籤。例如:「valgrind」、「strace」、「strace -c」、「valgrind --quiet --num-callers=20」、「//package:target'」、「//package:target --options」。
標記:action_command_lines
--[no]share_native_deps預設值:「true」
如果為 True,系統會在不同目標之間共用包含相同功能的原生資料庫
標記: loading_and_analysisaffects_outputs
--[no]stamp 預設值:「false」
含有日期、使用者名稱、主機名稱、工作區資訊等的戳記二進位檔。
標記: affects_outputs
--strip=<always, sometimes or never> 預設值:「有時」
指定是否要移除二進位檔和共用程式庫 (使用「-Wl,--strip-debug」)。「sometimes」的預設值表示 iff --compile_mode=fastbuild。
標記:affects_outputs
會累積 --stripopt=<a string> 個用途
產生「<name>.stripped」二進位檔時的其他選項。
標記:action_command_linesaffects_outputs
在建構完成後建立的任何便利符號連結前面的前置字串。如果省略此值,預設值為建構工具的名稱後面加上連字號。如果傳遞「/」,系統不會建立符號連結,也不會發出警告。警告:「/」的特殊功能即將淘汰,請改用 --experimental_convenience_symlinks=ignore。
標記:affects_outputs
會累積 --tvos_cpus=<comma-separated list of options> 個用途
用於建構 Apple tvOS 二進位檔的架構清單 (以半形逗號分隔)。
標記:loses_incremental_stateloading_and_analysis
--tvos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
目標模擬器和裝置相容的最低 tvOS 版本。如果未指定,請使用「tvos_sdk_version」。
標記:loses_incremental_state
會累積 --visionos_cpus=<comma-separated list of options> 個用途
用於建構 Apple visionOS 二進位檔的架構清單 (以半形逗號分隔)。
標記:loses_incremental_stateloading_and_analysis
會累積 --watchos_cpus=<comma-separated list of options> 個用途
用於建構 Apple watchOS 二進位檔的架構清單 (以半形逗號分隔)。
標記:loses_incremental_stateloading_and_analysis
--watchos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
目標模擬器和裝置適用的最低相容 watchOS 版本。如果未指定,請使用「watchos_sdk_version」。
標記:loses_incremental_state
--xbinary_fdo=<a build target label> 預設:查看說明
使用 XbinaryFDO 設定檔資訊最佳化編譯。指定預設跨二進位設定檔的名稱。這個選項搭配 --fdo_instrument/--fdo_optimize/--fdo_profile 與未指定 xbinary_fdo 的情況一起採用時,一律會採用這些選項。
標記:affects_outputs
會影響 Bazel 強制執行有效建構輸入內容 (規則定義、旗標組合等) 的選項:
--auto_cpu_environment_group=<a build target label> 預設值:「」
宣告用於將 CPU 值自動對應至 target_environment 值的環境_group。
標記:changes_inputsloading_and_analysisexperimental
--[no]check_licenses 預設值:「false」
確認相依套件設下的授權限制不會與建構的目標發布模式相衝突。根據預設,系統不會勾選授權。
標記:build_file_semantics
--[no]check_visibility預設值:「true」
如果停用這項設定,目標依附元件的瀏覽權限錯誤會降級為警告。
標記:build_file_semantics
--[no]desugar_for_android預設值:「true」
是否要在 dex 之前對 Java 8 位元碼進行脫糖。
標記:affects_outputsloading_and_analysisloses_incremental_state
--[no]desugar_java8_libs 預設值:「false」
是否要在舊版裝置的應用程式中納入支援的 Java 8 程式庫。
標記:affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]enforce_constraints預設值:「true」
檢查每個目標是否相容,並在任何目標含有不支援相同環境的依附元件時回報錯誤
標記: build_file_semantics
--[no]experimental_check_desugar_deps預設值:「true」
是否要在 Android 二進位檔層級仔細檢查正確的脫糖程序。
標記:eagerness_to_exitloading_and_analysisexperimental
--experimental_import_deps_checking=<off, warning or error> 預設值:「關閉」
啟用後,請檢查 aar_import 的依附元件是否完成。這項強制執行作業可能會破壞建構,也可能只會產生警告。
標記:loading_and_analysis
--experimental_strict_java_deps=<off, warn, error, strict or default> 預設值:「default」
如果為 true,檢查 Java 目標是否明確宣告所有直接使用的目標做為依附元件。
標記:build_file_semanticseagerness_to_exit
--[no]incompatible_check_testonly_for_output_files 預設值:「false」
如果啟用這個選項,請查詢產生規則的測試項目,只針對輸出檔案先決目標進行測試。這與瀏覽權限檢查相符。
標記:build_file_semanticsincompatible_change
--[no]incompatible_check_visibility_for_toolchains 預設值:「false」
如果啟用,瀏覽權限檢查設定也會套用至工具鍊實作。
標記:build_file_semanticsincompatible_change
--[no]incompatible_disable_native_android_rules 預設值:「false」
啟用後,系統會停用直接使用原生 Android 規則的功能。請使用位於 https://github.com/bazelbuild/rules_android 的 Starlark Android 規則
標記:eagerness_to_exitincompatible_change
--[no]incompatible_disable_native_apple_binary_rule 預設值:「false」
免人工管理。為顧及回溯相容性,請繼續保留。
標記:eagerness_to_exitincompatible_change
--[no]incompatible_python_disable_py2預設值:「true」
如果為 true,使用 Python 2 設定就會發生錯誤。這包括 python_version=PY2、srcs_version=PY2 和 srcs_version=PY2ONLY。詳情請參閱 https://github.com/bazelbuild/bazel/issues/15684。
標記:loading_and_analysisincompatible_change
--[no]incompatible_validate_top_level_header_inclusions預設值:「true」
這個標記為 noop,且已排定移除時間。
標記:no_opincompatible_change
--python_native_rules_allowlist=<a build target label> 預設:查看說明
強制執行 --incompatible_python_禁止_native_rules 時使用的許可清單 (package_group target)。
標記:loading_and_analysis
--[no]strict_filesets 預設值:「false」
如果啟用這個選項,跨越套件界線的檔案集會回報為錯誤。
標記:build_file_semanticseagerness_to_exit
--strict_proto_deps=<off, warn, error, strict or default> 預設值:「錯誤」
除非「關閉」,否則檢查 proto_library 目標是否明確宣告所有直接使用的目標做為依附元件。
標記:build_file_semanticseagerness_to_exitincompatible_change
--strict_public_imports=<off, warn, error, strict or default> 預設值:「關閉」
除非設為「關閉」,否則檢查 proto_library 目標是否明確將「匯入公開」中使用的所有目標宣告為匯出項目。
標記:build_file_semanticseagerness_to_exitincompatible_change
--[no]strict_system_includes 預設值:「false」
如果為 True,您也必須宣告透過系統 include 路徑 (-isystem) 找到的標頭。
標記:loading_and_analysiseagerness_to_exit
會累積 --target_environment=<a build target label> 個用途
宣告此建構作業的目標環境。必須是「環境」規則的標籤參照。如有指定,所有頂層目標都必須與這個環境相容。
標記:changes_inputs
會影響建構作業簽署輸出內容的選項:
--apk_signing_method=<v1, v2, v1_v2 or v4> 預設值:「v1_v2」
用於簽署 APK 的實作程序
標記:action_command_linesaffects_outputsloading_and_analysis
--[no]device_debug_entitlements預設值:「true」
如果已設定,但編譯模式不是「opt」,objc 應用程式會在簽署時納入偵錯授權。
標記:changes_inputs
--ios_signing_cert_name=<a string> 預設:查看說明
用於 iOS 簽署的憑證名稱。如未設定,系統會改回使用佈建設定檔。可以是憑證的鑰匙圈身分偏好設定或憑證通用名稱的子字串,並按照圖碼簽署的手冊頁面 (SIGNING IDENTITIES) 取得。
標記:action_command_lines
這個選項會影響 Starlark 語言的語意,或是 BUILD 檔案、.bzl 檔案或 WORKSPACE 檔案使用的建構 API。
--[no]incompatible_config_setting_private_default_visibility 預設值:「false」
如果 incompatible_enforce_config_setting_visibility=false,即為不相容性。此外,如果這個旗標為 false,任何沒有明確瀏覽權限屬性的 config_setting 都是 //visibility:public。如果這個標記為 true,config_setting 的瀏覽權限邏輯與其他規則相同。請參閱 https://github.com/bazelbuild/bazel/issues/12933。
標記:loading_and_analysisincompatible_change
--[no]incompatible_disallow_legacy_py_provider預設值:「true」
不操作,我們很快就會移除。
標記:loading_and_analysisincompatible_change
--[no]incompatible_disallow_sdk_frameworks_attributes 預設值:「false」
如果為 true,請禁止 objc_library andobjc_import 中的 sdk_frameworks 和 weak_sdk_frameworks 屬性。
標記:build_file_semanticsincompatible_change
--[no]incompatible_enforce_config_setting_visibility預設值:「true」
如果設為 true,請強制執行 config_setting 瀏覽權限限制。如果設為 False,每個目標都會顯示所有 config_setting。請參閱 https://github.com/bazelbuild/bazel/issues/12932。
標記:loading_and_analysisincompatible_change
如果為 true,請將 objc_library 和 objc_import 中的 alwayslink 屬性設定為 true。
標記:build_file_semanticsincompatible_change
--[no]incompatible_python_disallow_native_rules 預設值:「false」
如果為 true,使用內建的 py_* 規則時會發生錯誤;請改用 rules_python 規則。如需詳細資訊和遷移操作說明,請前往 https://github.com/bazelbuild/bazel/issues/17773。
標記:loading_and_analysisincompatible_change
控制測試環境或測試執行器行為的選項:
--[no]allow_analysis_failures 預設值:「false」
如果為 true,規則目標的分析失敗會使目標的 AnalysisFailureInfo 執行個體傳播包含錯誤說明,不會導致建構失敗。
標記:loading_and_analysisexperimental
--analysis_testing_deps_limit=<an integer> 預設值:「2000」
透過 for_analysis_testing 設定轉換的規則屬性,設定遞移依附元件的數量上限。超過這項限制會產生規則錯誤。
標記:loading_and_analysis
--[no]break_build_on_parallel_dex2oat_failure 預設值:「false」
如果實際的 dex2oat 操作失敗,將導致建構失敗,而不是在測試執行階段中執行 dex2oat。
標記:loading_and_analysisexperimental
--[no]check_tests_up_to_date 預設值:「false」
不要執行測試,只要檢查測試是否已更新即可。如果所有測試結果都是最新的,表示測試已成功完成。如果需要建構或執行任何測試,系統會回報錯誤,且測試會失敗。這個選項隱含 --check_up_to_date 行為。
標記:execution
會累積 --default_test_resources=<a resource name followed by equal and 1 float or 4 float, e.g memory=10,30,60,100> 個用途
覆寫測試的預設資源量。預期格式為 <resource>=<value>。如果將單一正數指定為 <value>,則會覆寫所有測試大小的預設資源。如果指定 4 個以半形逗號分隔的數字,就會分別覆寫小型、中、大、巨大測試大小的資源數量。值也可以是 HOST_RAM/HOST_CPU,後面加上 [-|*]<float> (例如:memory=HOST_RAM*.1,HOST_RAM*.2,HOST_RAM*.3,HOST_RAM*.4)。此標記指定的預設測試資源會由標記中指定的明確資源覆寫。
--[no]experimental_android_use_parallel_dex2oat 預設值:「false」
並行使用 dex2oat 以加快 android_test 的速度。
標記:loading_and_analysishost_machine_resource_optimizationsexperimental
會累積 --flaky_test_attempts=<a positive integer, the string "default", or test_regex@attempts. This flag may be passed more than once> 個用途
如果測試失敗,系統最多會重試每次測試。如果測試需要多次通過才能通過,測試摘要中會標示為「FLAKY」。通常指定的值只是整數或字串「default」。如果為整數,所有測試最多將執行 N 次。如果設為 'default',系統只會針對一般測試和 3 項明確標示為不穩定的測試 (flaky=1 屬性) 進行測試。替代語法:regex_filter@flaky_test_attempts。其中 flaky_test_attempts 如上所示,而 regex_filter 表示包含及排除規則運算式模式的清單 (另請參閱 --runs_per_test)。範例:--flaky_test_attempts=//foo/.*,-//foo/bar/.*@3 會解碼 //foo/ 中的所有測試,但 foo/bar 之下的測試除外 3 次。這個選項可以多次傳送。系統會優先採用最近傳遞的相符引數。如果沒有相符的項目,行為將與上述的「預設」相同。
標記:execution
--[no]ios_memleaks 預設值:「false」
啟用 ios_test 目標中的記憶體流失檢查功能。
標記:action_command_lines
--ios_simulator_device=<a string> 預設:查看說明
在模擬器中執行 iOS 應用程式時模擬的裝置,例如「iPhone 6」。如要取得裝置清單,請在要執行模擬器的機器上執行「xcrun simctl list devicetypes」。
標記:test_runner
--ios_simulator_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
執行或測試時要在模擬器上執行的 iOS 版本。如果已在規則中指定目標裝置,則 ios_test 規則會忽略這個欄位。
標記:test_runner
--local_test_jobs=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5"> 預設值:「auto」
可同時執行的本機測試工作數量上限。可接受整數或關鍵字 ("auto"、"HOST_CPUS"、"HOST_RAM"),並視需要後面加上運算 ([-|*]<float>),例如「auto」、「HOST_CPUS*.5」。0 表示本機資源會限制並行執行的本機測試工作數量。將這個值大於 --jobs 的值並不會生效。
標記:execution
會累積 --runs_per_test=<a positive integer or test_regex@runs. This flag may be passed more than once> 個用途
指定各項測試的執行次數。如果有任何一項嘗試因任何原因失敗,整個測試視同失敗。通常指定的值只有整數。範例:--runs_per_test=3 會執行所有測試 3 次。替代語法:regex_filter@runs_per_test。run_per_test 代表整數值,而 regex_filter 表示包含及排除規則運算式模式的清單 (另請參閱 --instrumentation_filter)。範例:--runs_per_test=//foo/.*,-//foo/bar/.*@3 會在 //foo/ 中執行所有測試,但 foo/bar 之下的結果除外。這個選項可以多次傳送。系統會優先採用最近傳遞的相符引數。如果沒有相符結果,測試只會執行一次。
會累積 --test_env=<a 'name=value' assignment with an optional value part> 個用途
指定要插入測試執行工具環境的其他環境變數。您可以用名稱指定變數;如果發生這種情況,系統會從 Bazel 用戶端環境或 name=value 組合讀取變數的值。這個選項可多次使用以指定多個變數。僅用於「bazel test」指令。
標記:test_runner
--[no]test_keep_going預設值:「true」
如果停用這項設定,任何未傳遞的測試都會導致整個建構作業停止。根據預設,所有測試都會執行,即使部分測試未通過也一樣。
標記:execution
--test_strategy=<a string> 預設值:「」
指定執行測試時要使用的策略。
標記:execution
--test_timeout=<a single integer or comma-separated list of 4 integers> 預設值:「-1」
覆寫測試逾時的預設測試逾時值 (以秒為單位)。如果指定單一正整數值,則會覆寫所有類別。如果指定 4 個以半形逗號分隔的整數,就會覆寫短、中、長和橢圓的逾時時間 (按照此順序排列)。無論採用哪一種格式,值為 -1 均會指示 Blaze 針對該類別使用預設逾時。
--test_tmpdir=<a path> 預設:查看說明
指定要使用的「bazel test」基本臨時目錄。
--[no]zip_undeclared_test_outputs預設值:「true」
如果設為 True,系統會將未宣告的測試輸出內容封存為 ZIP 檔案。
標記:test_runner
會觸發建構時間最佳化的選項:
--cache_computed_file_digests=<a long integer> 預設值:「50000」
如果大於 0,您可以設定 Bazel 根據中繼資料將檔案摘要快取至記憶體中,而不要在每次需要時重新計算磁碟中的摘要。設為 0 可確保檔案正確,因為系統無法從檔案中繼資料中指出所有檔案變更。非 0 時,數字代表快取大小,做為要快取的檔案摘要數量。
--[no]experimental_enable_skyfocus 預設值:「false」
如果為 true,請啟用 --experimental_working_set 來減少 Bazel 的記憶體用量,以減少漸進式建構作業的記憶體用量。此功能稱為「天空」。
標記:host_machine_resource_optimizations
--[no]experimental_filter_library_jar_with_program_jar 預設值:「false」
篩選 ProGuard ProgramJar,以移除 LibraryJar 中的所有類別。
標記:action_command_lines
--[no]experimental_inmemory_dotd_files預設值:「true」
啟用後,C++ .d 檔案會直接從遠端建構節點在記憶體中傳遞,而不是寫入磁碟。
標記:loading_and_analysisexecutionaffects_outputsexperimental
--[no]experimental_inmemory_jdeps_files預設值:「true」
如果啟用,Java 編譯作業產生的依附元件 (.jdeps) 檔案就會直接從遠端建構節點在記憶體中傳遞,而不會寫入磁碟。
標記:loading_and_analysisexecutionaffects_outputsexperimental
--[no]experimental_retain_test_configuration_across_testonly 預設值:「false」
啟用後,--trim_test_configuration 不會為標示為 testonly=1 的規則修剪測試設定。這是為了減少非測試規則取決於 cc_test 規則時的動作衝突問題。如果 --trim_test_configuration 為 false,則不會產生任何效果。
標記:loading_and_analysisloses_incremental_state
--[no]experimental_starlark_cc_import 預設值:「false」
啟用後,即可使用 cc_import 的 Starlark 版本。
標記:loading_and_analysisexperimental
--[no]experimental_unsupported_and_brittle_include_scanning 預設值:「false」
是否要透過剖析輸入檔案中的 #include 行,將輸入範圍縮小為 C/C++ 編譯。進而縮減編譯輸入樹狀結構的大小,進而改善效能和成效增幅。不過,由於 include 掃描器未完全實作 C 預先處理器語意,因此也可能導致建構作業失敗。具體而言,它不瞭解動態 #include 指令,且會忽略預先處理工具的條件邏輯。使用時需自行承擔風險。凡是與這個檢舉有關的問題都會遭到關閉。
標記:loading_and_analysisexecutionchanges_inputs
--experimental_working_set=<comma-separated list of options> 預設值:「」
天空對焦的工作組。請指定為工作區根相關路徑 (以半形逗號分隔)。這是有狀態的標記。定義工作集後,後續叫用就會保留該工作集,直到使用新的集合重新定義其為止。
標記:host_machine_resource_optimizations
--[no]incremental_dexing預設值:「true」
大部分的工作都是針對各個 Jar 檔案個別進行 DEX 處理。
標記:affects_outputsloading_and_analysisloses_incremental_state
--local_cpu_resources=<an integer, or "HOST_CPUS", optionally followed by [-|*]<float>.> 預設值:「HOST_CPUS」
請明確設定 Bazel 可用的本機 CPU 核心總數,用於在本機執行的建構動作。擷取整數或「HOST_CPUS」,後面可選擇加上 [-|*]<float> (例如HOST_CPUS*.5,使用一半的可用 CPU 核心。根據預設,Bazel 會查詢系統設定,估算可用的 CPU 核心數量。
標記:host_machine_resource_optimizations
會累積 --local_extra_resources=<a named float, 'name=value'> 個用途
設定 Bazel 可用的額外資源數量。採用字串浮點值。可用來多次指定多種類型的額外資源。Bazel 會根據可用額外資源和所需的額外資源,限制並行執行的動作。測試可以使用「resources:<resoucename>:<amount>」格式的標記,宣告所需的額外資源數量。無法使用這個標記設定可用的 CPU、RAM 和資源。
標記:host_machine_resource_optimizations
--local_ram_resources=<an integer number of MBs, or "HOST_RAM", optionally followed by [-|*]<float>.> 預設值:「HOST_RAM*.67」
請明確設定 Bazel 可用的本機主機 RAM 總量 (以 MB 為單位),將這些資料用於在本機執行的建構動作。擷取整數或「HOST_RAM」,並視需要後面加上 [-|*]<float> (例如HOST_RAM*.5:使用一半的可用 RAM)。根據預設 (「HOST_RAM*.67」),Bazel 會查詢系統設定估算可用的 RAM 容量,並使用 67% 的 RAM。
標記:host_machine_resource_optimizations
會累積 --local_resources=<a named double, 'name=value', where value is an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5"> 個用途
設定 Bazel 可用的資源數量。指派給浮點值或 HOST_RAM/HOST_CPUS,視需要在後面加上 [-|*]<float> (例如:memory=HOST_RAM*.5,以便使用一半可用的 RAM)。可用於多次指定多種類型的資源。Bazel 會根據可用資源和所需的資源,限制並行執行的操作。測試可以使用「resources:<resource name>:<amount>」格式的標記,宣告所需的資源數量。覆寫 --local_{cpu|ram|extra}_resources 指定的資源。
標記:host_machine_resource_optimizations
--[no]objc_use_dotd_pruning預設值:「true」
如果已設定,將由 clang 發出的 .d 檔案剪裁至 objc 編譯的輸入內容。
標記:changes_inputsloading_and_analysis
--[no]process_headers_in_dependencies 預設值:「false」
建立目標 //a:a 時,處理 //a:a 依附的所有目標 (如果工具鍊已啟用標頭處理功能)。
標記:execution
--[no]trim_test_configuration預設值:「true」
啟用後,系統會在建構項目頂層下方清除測試相關選項。啟用這個旗標後,就無法將測試當做非測試規則的依附元件進行建構,但變更測試相關選項並不會導致系統重新分析非測試規則。
標記:loading_and_analysisloses_incremental_state
影響記錄詳細程度、格式或位置的選項:
--build_event_upload_max_retries=<an integer> 預設值:「4」
Bazel 重試上傳建構事件的次數上限。
標記:bazel_internal_configuration
--[no]experimental_bep_target_summary 預設值:「false」
是否要發布 TargetSummary 事件。
--[no]experimental_build_event_expand_filesets 預設值:「false」
如果為 true,請在顯示輸出檔案時展開 BEP 內的檔案集。
標記:affects_outputs
如果為 true,則在顯示輸出檔案時,會完整解析 BEP 中的相對檔案集符號連結。必須使用 --experimental_build_event_expand_filesets。
標記:affects_outputs
--experimental_build_event_upload_retry_minimum_delay=<An immutable length of time.> 預設值:「1s」
初始,在 BEP 上傳失敗時,指數輪詢重試的最短延遲時間。(指數:1.6)
標記: bazel_internal_configuration
--experimental_build_event_upload_strategy=<a string> 預設:查看說明
選取如何上傳建構事件通訊協定中參照的構件。
標記:affects_outputs
--[no]experimental_materialize_param_files_directly 預設值:「false」
如要具體化參數檔案,請直接寫入磁碟。
標記:execution
--[no]experimental_run_bep_event_include_residue 預設值:「false」
是否要在可能包含主體的執行建構事件中加入指令列留存。根據預設,殘留設定不會納入可能包含殘存的執行指令建構事件中。
標記:affects_outputs
--experimental_skyfocus_dump_keys=<none, count or verbose>預設值:「無」
用於對 Skyfocus 偵錯。轉儲聚焦的 SkyKey (根、葉、聚焦、聚焦輸入端)。
標記:terminal_output
--[no]experimental_skyfocus_dump_post_gc_stats 預設值:「false」
用於對 Skyfocus 偵錯。啟用後,在焦點之前/之後觸發手動 GC,回報堆積大小縮減量。這會增加天空對焦延遲時間。
標記:terminal_output
--[no]experimental_stream_log_file_uploads 預設值:「false」
將記錄檔上傳檔案直接串流至遠端儲存空間,而非將記錄檔寫入磁碟。
標記:affects_outputs
--explain=<a path> 預設:查看說明
讓建構系統說明每個執行建構步驟的原因。說明會寫入指定的記錄檔。
標記:affects_outputs
--[no]legacy_important_outputs預設值:「true」
請使用這個選項,略過 TargetComplete 事件中舊版 important_outputs 時產生的情況。如要使用 Bazel 與 ResultStore 進行整合作業,就必須使用 important_outputs。
標記:affects_outputs
--[no]materialize_param_files 預設值:「false」
即使執行遠端動作,也能寫入中繼參數檔案以輸出樹狀結構。對動作進行偵錯時相當實用。--subcommands 和 --verbose_failures 表示此屬性。
標記:execution
--max_config_changes_to_show=<an integer> 預設值:「3」
當您因建構選項變更而捨棄分析快取時,最多會顯示指定數量的變更選項名稱。如果指定數字為 -1,系統會顯示所有已變更的選項。
標記:terminal_output
--max_test_output_bytes=<an integer> 預設值:「-1」
指定當 --test_output 為「errors」或「all」時,每個測試記錄可以發出的大小上限。適合避免輸出內容含有過多雜訊的測試輸出內容。測試標頭會包含在記錄檔大小中。負值表示無限制。輸出結果完全無效。
標記:test_runnerterminal_outputexecution
--output_filter=<a valid Java regular expression> 預設:查看說明
只有名稱與所提供規則運算式相符的規則,才會顯示警告和動作輸出內容。
標記:affects_outputs
--progress_report_interval=<an integer in 0-3600 range> 預設值:「0」
查看執行中工作報表之間的等待秒數。預設值 0 表示會在 10 秒後列印第一份報告、30 秒後列印,且每分鐘會回報一次進度。啟用 --curses 後,系統會每秒回報進度。
標記:affects_outputs
--show_result=<an integer> 預設值:「1」
顯示建構的結果。請說明每個目標是否已顯示為最新版本;如果有的話,會顯示已建立的輸出檔案清單。列印的檔案是便利的字串,可用來複製和貼到殼層,以便執行檔案。這個選項需要整數引數,也就是未列印結果資訊的目標門檻數量。因此,零會導致訊息遭到抑制,而 MAX_INT 會導致一律列印結果。預設值為 1。如果目標沒有任何建構項目,則可能會省略其結果,讓輸出內容保持在門檻內。
標記:affects_outputs
--[no]subcommands [-s] 預設值:「false」
顯示建構期間執行的子指令。相關標記:--execution_log_json_file、--execution_log_binary_file (用於將子指令記錄為適合工具的格式檔案)。
標記:terminal_output
--test_output=<summary, errors, all or streamed>預設值:「摘要」
指定所需的輸出模式。有效的值為「summary」:只能輸出測試狀態摘要,「errors」則可輸出失敗測試的測試記錄;「all」可輸出所有測試的記錄,「streamed」則會即時輸出所有測試的記錄 (無論 --test_strategy 值為何,系統會強制在本機只執行一項測試)。
標記:test_runnerterminal_outputexecution
--test_summary=<short, terse, detailed, none or testcase> 預設值:「short」
指定所需的測試摘要格式。有效值為「short」,僅顯示執行測試的相關資訊「tere」,用於列印失敗測試的相關資訊;「detailed」,以列印失敗測試案例的詳細資訊;在測試案例解決方案中,以「testcase」輸出摘要;請勿輸出失敗測試案例的詳細資訊,而省略摘要的「無」以省略摘要。
標記:terminal_output
--toolchain_resolution_debug=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths> 預設值:「-.*」
在工具鍊解析期間輸出偵錯資訊。旗標會採用規則運算式,並與工具鍊類型和特定目標進行比對,以找出需要偵錯的項目。如有多個規則運算式,請以半形逗號分隔,然後再分別檢查每個規則運算式。注意:此標記的輸出內容非常複雜,可能僅對工具鍊解決方案的專家有所幫助。
標記:terminal_output
--[no]verbose_explanations 預設值:「false」
啟用 --explain 時,即可提高所核發說明的詳細程度。在未啟用 --explain 的情況下不會有任何作用。
標記:affects_outputs
--[no]verbose_failures 預設值:「false」
如果指令失敗,請輸出完整的指令列。
標記:terminal_output
可為不屬於其他類別的 Bazel 指令指定或變更一般輸入的選項:
會累積 --aspects_parameters=<a 'name=value' assignment> 個用途
指定指令列切面參數的值。每個參數值都是透過 <param_name>=<param_value> 指定,例如 'my_param=my_val',其中「my_param」是部分切面的參數,或清單中某個方面所需的參數。這個選項可以多次使用。不過,系統不允許重複將值指派給同一個參數。
標記:loading_and_analysis
會累積 --flag_alias=<a 'name=value' flag alias> 個用途
設定 Starlark 標記的簡短名稱。這會使用格式為「<key>=<value>」的單一鍵/值組合做為引數。
標記:changes_inputs
--[no]incompatible_default_to_explicit_init_py 預設值:「false」
這個標記會變更預設行為,讓 __init__.py 檔案不再在 Python 目標的執行檔案中自動建立。準確來說,當 py_binary 或 py_test 目標將 legacy_create_init 設為「auto」(預設值) 時,只有在設定了此旗標時,才會視為 false。請參閱 https://github.com/bazelbuild/bazel/issues/10076。
標記:affects_outputsincompatible_change
--[no]incompatible_py2_outputs_are_suffixed預設值:「true」
如果為 True,則透過 Python 2 設定建構的目標會顯示在輸出根目錄中,且包含後置字串「-py2」,而針對 Python 3 建構的目標會顯示在根層級中,且沒有 Python 相關後置字串。也就是說,`bazel-bin` 便利符號連結會指向 Python 3 目標,而不是 Python 2。如果啟用這個選項,建議一併啟用「--incompatible_py3_is_default」。
標記:affects_outputsincompatible_change
--[no]incompatible_py3_is_default預設值:「true」
如果為 True,系統會將未設定「python_version」(或「default_python_version」) 屬性的「py_binary」和「py_test」目標預設為 PY3,而非 PY2。如果你設定了這個旗標,也建議你設定「--incompatible_py2_outputs_are_suffixed」。
標記:loading_and_analysisaffects_outputsincompatible_change
--[no]incompatible_use_python_toolchains預設值:「true」
如果設為 True,可執行的原生 Python 規則將使用 Python 工具鍊指定的 Python 執行階段,而非由 --python_top 等舊版旗標提供的執行階段。
標記:loading_and_analysisincompatible_change
--python_version=<PY2 or PY3> 預設:查看說明
Python 主要版本模式,可以是「PY2」或「PY3」。請注意,此模式會遭到「py_binary」和「py_test」目標覆寫 (即使他們未明確指定版本也是如此),因此通常沒有太多理由提供這個標記。
標記:loading_and_analysisaffects_outputs
--target_pattern_file=<a string> 預設值:「」
如果已設定,建構作業就會從此處命名的檔案讀取模式,而不是從指令列讀取。在這裡指定檔案以及指令列模式會發生錯誤。
標記: changes_inputs
遠端快取和執行選項:
--experimental_remote_cache_eviction_retries=<an integer> 預設值:「0」
建構作業遇到遠端快取撤銷錯誤時,重試的次數上限。系統會以非零值的隱含值,將 --incompatible_remote_use_new_exit_code_for_lost_inputs 設為 true。每次嘗試會產生新的叫用 ID。如果您產生叫用 ID,並且使用 --invocation_id 將其提供給 Bazel,請勿使用這個標記。請改為設定 --incompatible_remote_use_new_exit_code_for_lost_inputs,並檢查結束代碼 39。
標記:execution
--[no]incompatible_remote_use_new_exit_code_for_lost_inputs預設值:「true」
如果設為 True,當遠端快取在建構期間清除 blob 時,Bazel 將使用新的結束代碼 39,而非 34。
標記: incompatible_change
其他未分類的選項。
--[no]allow_analysis_cache_discard預設值:「true」
如果因為建構系統的變更而捨棄分析快取,將這個選項設為 false 會導致 Bazel 結束,而非繼續執行建構作業。如果同時設定了「discard_analysis_cache」設定,這個選項就不會有任何作用。
標記:eagerness_to_exit
--[no]build_manual_tests 預設值:「false」
強制建立標記為「manual」的測試目標。系統不會處理「手動」測試。這個選項會強制建構這些變數 (但不會執行)。
--build_tag_filters=<comma-separated list of options> 預設值:「」
指定以半形逗號分隔的標記清單。您可視需要在每個標記前面加上「-」來指定要排除的標記。系統只會建立含有至少一個內含代碼且不包含任何排除代碼的目標。這個選項不會影響使用「test」指令執行的測試組合,這些測試會受測試篩選選項規範,例如「--test_tag_filters」
--[no]build_tests_only 預設值:「false」
如有指定,系統只會建立 *_test 和 test_suite 規則,並忽略指令列中指定的其他目標。根據預設,系統將建構所有要求的內容。
--[no]cache_test_results [-t] 預設值:「auto」
如果設為「auto」,Bazel 只會在發生以下情況時重新執行測試:(1) Bazel 偵測到測試或其依附元件的變更,(2) 系統會將測試標示為外部;(3) 使用 --runs_per_test 要求多次測試執行;或(4) 先前失敗的測試。如果設為「是」,Bazel 會快取所有測試結果,但標示為外部的測試除外。如果設為「否」,Bazel 就不會快取任何測試結果。
--[no]compile_one_dependency 預設值:「false」
編譯引數檔案的單一依附元件。這適合用於檢查 IDE 中的語法,例如重新建構依附於來源檔案的單一目標,以便在編輯/建構/測試循環中盡早偵測錯誤。此引數會影響所有非旗標引數的解讀方式;這些引數並不是用於建構的目標,而是來源檔案名稱。系統會為每個來源檔案名稱建立一個任何仰賴它的目標檔案。
會累積 --deleted_packages=<comma-separated list of package names> 個用途
逗號分隔的套件名稱清單,即使這些套件出現在套件路徑中,建構系統也不會將其視為不存在。 刪除現有套件「x」的子套件「x/y」時,請使用這個選項。舉例來說,在用戶端刪除 x/y/BUILD 後,如果建構系統發現標籤「//x:y/z」仍由另一個 package_path 項目提供,可能會抱怨。指定 --deleted_packages x/y 以避免這個問題。
--[no]discard_analysis_cache 預設值:「false」
分析階段完成後,請立即捨棄分析快取。減少約 10% 的記憶體用量,但進一步逐步增量建構速度會變慢。
--execution_log_binary_file=<a path> 預設:查看說明
根據 src/main/protobuf/spawn.proto,將執行中的版本記錄成檔案為長度分隔的 SpawnExec proto。相關旗標:--execution_log_json_file (文字 JSON 格式;互斥)、--execution_log_sort (是否排序執行記錄檔)、--subcommands (用於在終端機輸出內容中顯示子指令)。
--execution_log_json_file=<a path> 預設:查看說明
根據 src/main/protobuf/spawn.proto,執行後,系統會將執行內容記錄為 SpawnExec proto 的以換行符號分隔的 JSON 表示法。相關標記:--execution_log_binary_file (二進位 protobuf 格式;互斥)、--execution_log_sort (是否排序執行記錄檔)、--subcommands (用於在終端機輸出中顯示子指令)。
--[no]execution_log_sort預設值:「true」
是否要排序執行記錄檔,以便比較不同叫用的記錄。設為 false,可避免叫用結束時產生大量的 CPU 和記憶體用量,但代價是按不確定執行順序產生記錄。僅適用於二進位和 JSON 格式;精簡格式一律不會排序。
--[no]expand_test_suites預設值:「true」
將 test_suite 目標納入分析前的最終測試範圍。啟用此標記 (預設) 後,排除目標模式會套用至屬於測試套件的測試,否則則不會。若在指令列中套用頂層切面,停用此旗標會很有用:隨後他們就能分析 test_suite 目標。
標記:loading_and_analysis
--[no]experimental_cancel_concurrent_tests 預設值:「false」
如果為 true,Blaze 會取消首次成功執行時同時執行的測試。這個方法只有在搭配 --runs_per_test_Detects_flakes 時實用。
標記:affects_outputsloading_and_analysis
--experimental_execution_log_compact_file=<a path> 預設:查看說明
根據 src/main/protobuf/spawn.proto,將執行中的版本記錄成檔案,做為長度分隔的 ExecLogEntry proto。整個檔案都經過 zstd 壓縮。此為實驗性格式,仍在開發中,隨時可能變更。相關標記:--execution_log_binary_file (二進位 protobuf 格式;互斥)、--execution_log_json_file (文字 JSON 格式;互斥)、--subcommands (用於在終端機輸出中顯示子指令)。
--experimental_extra_action_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths> 預設值:「」
建議使用切面。用於排定 extra_actions 的目標組合。
--[no]experimental_extra_action_top_level_only 預設值:「false」
建議使用切面。只能為頂層目標排定 extra_actions。
--[no]experimental_fetch_all_coverage_outputs 預設值:「false」
如果設為 true,Bazel 會在涵蓋率執行期間為每項測試擷取整個涵蓋範圍資料目錄。
標記:affects_outputsloading_and_analysis
--[no]experimental_generate_llvm_lcov 預設值:「false」
如果設為「true」,Clang 的涵蓋率就會產生 LCOV 報告。
標記:affects_outputsloading_and_analysis
--[no]experimental_j2objc_header_map預設值:「true」
是否要同時產生 J2ObjC 標頭對應,以及 J2ObjC 轉譯。
--[no]experimental_j2objc_shorter_header_path 預設值:「false」
指定是否要使用較短的標頭路徑 (使用「_ios」而非「_j2objc」) 產生。
標記:affects_outputs
--experimental_java_classpath=<off, javabuilder or bazel> 預設值:「javabuilder」
針對 Java 編譯啟用縮減的類別路徑。
--[no]experimental_limit_android_lint_to_android_constrained_java 預設值:「false」
將 --experimental_run_android_lint_on_java_rules 限制在與 Android 相容的程式庫。
標記:affects_outputs
--[no]experimental_run_android_lint_on_java_rules 預設值:「false」
是否要驗證 java_* 來源。
標記:affects_outputs
--[no]explicit_java_test_deps 預設值:「false」
在 java_test 中明確指定 JUnit 或 Hamcrest 的依附元件,而非意外從 TestRunner 的依附元件中取得。目前僅適用於 bazel。
--[no]fetch預設值:「true」
允許指令擷取外部依附元件。如果設為 False,這個指令會使用依附元件的任何快取版本;如果不存在,該指令就會導致失敗。
--host_java_launcher=<a build target label> 預設:查看說明
在建構期間執行的工具所使用的 Java 啟動器。
會累積 --host_javacopt=<a string> 個用途
建構在建構期間執行的工具時,傳送至 javac 的其他選項。
會累積 --host_jvmopt=<a string> 個用途
建構在建構期間執行的工具時,傳送至 Java VM 的其他選項。這些選項會新增至每個 java_binary 目標的 VM 啟動選項。
--[no]incompatible_check_sharding_support預設值:「true」
如果為 true,當測試執行器未指出 TEST_SHARD_STATUS_FILE 路徑中的檔案,表示可支援分割作業,Bazel 就會失敗的資料分割測試。如果設為 false,則不支援資料分割的測試執行器會導致每個資料分割中執行的所有測試。
標記:incompatible_change
--[no]incompatible_exclusive_test_sandboxed預設值:「true」
如果為 true,專屬測試將使用沙箱策略執行。新增「local」標記,強制在本機執行專屬測試
標記: incompatible_change
--[no]incompatible_strict_action_env 預設值:「false」
如果設為 True,Bazel 使用的環境會是 PATH 的靜態值,且不會沿用 LD_LIBRARY_PATH。如果想沿用用戶端的特定環境變數,請使用 --action_env=ENV_VARIABLE。不過請注意,這麼做可能會在使用共用快取時,避免跨使用者快取。
標記:loading_and_analysisincompatible_change
會累積 --j2objc_translation_flags=<comma-separated list of options> 個用途
傳遞至 J2ObjC 工具的其他選項。
--java_debug
造成 Java 測試的 Java 虛擬機器,先等待符合 JDWP 規範的偵錯工具 (例如 jdb) 連線後,再開始測試。隱含 -test_output=streamed。
擴展至:
  --test_arg=--wrapper_script_flag=--debug
  --test_output=streamed
  --test_strategy=exclusive
  --test_timeout=9999
  --nocache_test_results
--[no]java_deps預設值:「true」
為每個 Java 目標產生依附元件資訊 (目前為編譯時間類別路徑)。
--[no]java_header_compilation預設值:「true」
直接從原始碼編譯 ijar。
--java_language_version=<a string> 預設值:「」
Java 語言版本
--java_launcher=<a build target label> 預設:查看說明
建構 Java 二進位檔時使用的 Java 啟動器。如果此旗標設為空白字串,系統會使用 JDK 啟動器。「launcher」屬性會覆寫此標記。
--java_runtime_version=<a string> 預設值:「local_jdk」
Java 執行階段版本
會累積 --javacopt=<a string> 個用途
要傳遞至 javac 的其他選項。
會累積 --jvmopt=<a string> 個用途
傳送至 Java VM 的其他選項。這些選項會新增至每個 java_binary 目標的 VM 啟動選項。
--legacy_main_dex_list_generator=<a build target label> 預設:查看說明
指定二進位檔,用於產生編譯舊版 Multidex 時必須位於主要 dex 的類別清單。
--local_termination_grace_seconds=<an integer> 預設值:「15」
因逾時而終止本機程序並強制關閉之間,應等待的時間。
--optimizing_dexer=<a build target label> 預設:查看說明
指定二進位檔,用於在不進行資料分割的情況下執行 DEX 作業。
--package_path=<colon-separated list of options>預設值:「%workspace%」
尋找套件的位置清單 (以半形冒號分隔)。開頭為「%workspace%」的元素與所屬工作區相對。如果省略或留空,則預設值為「bazel info default-package-path」的輸出內容。
會累積 --plugin=<a build target label> 個用途
要在建構作業中使用的外掛程式。目前可與 java_plugin 搭配使用。
--proguard_top=<a build target label> 預設:查看說明
指定在建構 Java 二進位檔時,用於移除程式碼的 ProGuard 版本。
--proto_compiler=<a build target label> 預設:「@bazel_tools//tools/proto:protoc」
proto-編譯器的標籤。
標記:affects_outputsloading_and_analysis
--proto_toolchain_for_cc=<a build target label> 預設值:「@bazel_tools//tools/proto:cc_toolchain」
proto_lang_toolchain() 的標籤,說明如何編譯 C++ proto
標記: affects_outputsloading_and_analysis
--proto_toolchain_for_j2objc=<a build target label> 預設語言:「@bazel_tools//tools/j2objc:j2objc_proto_toolchain」
proto_lang_toolchain() 的標籤,說明如何編譯 j2objc proto
標記:affects_outputsloading_and_analysis
--proto_toolchain_for_java=<a build target label> 預設值:「@bazel_tools//tools/proto:java_toolchain」
proto_lang_toolchain() 的標籤,說明如何編譯 Java proto
標記:affects_outputsloading_and_analysis
--proto_toolchain_for_javalite=<a build target label> 預設值:「@bazel_tools//tools/proto:javalite_toolchain」
proto_lang_toolchain() 的標籤,說明如何編譯 JavaLite proto。
標記:affects_outputsloading_and_analysis
會累積 --protocopt=<a string> 個用途
傳送至 protobuf 編譯器的其他選項。
標記:affects_outputs
--[no]runs_per_test_detects_flakes 預設值:「false」
如果為 true,所有至少執行/嘗試通過一次且有至少一項執行/嘗試失敗的資料分割,都會顯示 FLAKY 狀態。
--shell_executable=<a path> 預設:查看說明
殼層執行檔的絕對路徑,可供 Bazel 使用。如果未設定,但第一次 Bazel 叫用 (啟動 Bazel 伺服器) 時設定了 BAZEL_SH 環境變數,Bazel 就會使用該環境變數。如果兩者皆未設定,Bazel 將根據在 Windows 上執行的作業系統使用硬式編碼預設路徑 (Windows:c:/tools/msys64/usr/bin/bash.exe,FreeBSD:/usr/local/bin/bash 和所有其他檔案:/bin/bash)。請注意,如果您使用的殼層與 bash 不相容,可能會導致建構失敗,或所產生二進位檔的執行階段失敗。
標記:loading_and_analysis
--[no]show_loading_progress預設值:「true」
啟用後,Bazel 就會顯示「Loading package:」訊息。
會累積 --test_arg=<a string> 個用途
指定應傳遞至測試執行檔的其他選項和引數。可多次用於指定多個引數。如果執行多個測試,每個測試都會收到相同的引數。僅用於「bazel test」指令。
--test_filter=<a string> 預設:查看說明
指定要轉送至測試架構的篩選器。用於限制測試執行。請注意,這不會影響建構的目標。
--test_lang_filters=<comma-separated list of options> 預設值:「」
指定測試語言清單,以半形逗號分隔。您可以視需要在每個語言前面加上「-」來指定排除的語言。只找到以指定語言撰寫的測試目標。每種語言使用的名稱應與 *_test 規則中的語言前置字元相同,例如「cc」、「java」、「py」等等。這個選項會影響 --build_tests_only 行為和測試指令。
--test_result_expiration=<an integer> 預設值:「-1」
這個選項已淘汰,因此不會產生任何作用。
--[no]test_runner_fail_fast 預設值:「false」
將失敗的快速選項轉送至測試執行器。測試執行工具應在首次失敗時停止執行。
--test_sharding_strategy=<explicit, disabled or forced=k where k is the number of shards to enforce> 預設值:「煽情露骨內容」
指定測試資料分割的策略:「explicit」只有在已有「shard_count」BUILD 屬性時才會使用資料分割。設為「disabled」後,就不必使用測試資料分割。「forced=k」可強制執行「k」資料分割以供測試,無論「shard_count」BUILD 屬性為何。
--test_size_filters=<comma-separated list of values: small, medium, large or enormous> 預設值:「」
指定測試大小的逗號分隔清單。您可以視需要在每個大小前面加上「-」來指定排除的大小。系統會找到這些測試目標,其中至少包含一個已納入的大小,且不包含任何排除的大小。這個選項會影響 --build_tests_only 行為和測試指令。
--test_tag_filters=<comma-separated list of options> 預設值:「」
指定測試標記的清單 (以半形逗號分隔)。您可視需要在每個標記前面加上「-」來指定要排除的標記。只有這些測試目標會找到至少內含一個已納入代碼且不含任何排除代碼。這個選項會影響 --build_tests_only 行為和測試指令。
--test_timeout_filters=<comma-separated list of values: short, moderate, long or eternal> 預設值:「」
指定測試逾時的逗號分隔清單。每個逾時都可以視需要加上「-」符號,指定排除的逾時時間。系統會找到這些測試目標,其中至少包含一個已包含的逾時時間,並不包含任何排除的逾時時間。這個選項會影響 --build_tests_only 行為和測試指令。
--tool_java_language_version=<a string> 預設值:「」
用於執行建構期間必要工具的 Java 語言版本
--tool_java_runtime_version=<a string> 預設:「remotejdk_11」
在建構期間執行工具時使用的 Java 執行階段版本
--[no]use_ijars預設值:「true」
啟用這個選項後,Java 編譯會使用介面 jar 檔案。這麼做可以加快漸進式編譯速度,但錯誤訊息也可能不同。

標準化標記選項

繼承 build 的所有選項。

這些選項會顯示在指令之前,並由用戶端剖析:
會累積 --distdir=<a path> 個用途
還有許多地方可以搜尋封存檔案,以便透過網路下載封存內容。
標記:bazel_internal_configuration
如有設定,存放區快取會在快取成功時將檔案硬式編碼,而非複製檔案。以便節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 預設值:「0」
重試下載錯誤的次數上限。如果設為 0,系統就會停用重試功能。
標記:experimental
--experimental_scale_timeouts=<a double> 預設值:「1.0」
按照這項係數調整 Starlark 存放區規則中的所有逾時時間。如此一來,即使效能低於規則作者預期的機器,外部存放區也能在不變更原始碼的情況下正常運作。
標記:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 預設值:「8」
http 下載作業的次數上限。
標記:bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 預設值:「0s」
http 下載重試的逾時時間上限。如果值為 0,就不會定義逾時上限。
標記:bazel_internal_configuration
--http_timeout_scaling=<a double> 預設值:「1.0」
依指定係數調整所有與 http 下載相關的逾時時間
標記: bazel_internal_configuration
--repository_cache=<a path> 預設:查看說明
指定擷取外部存放區時取得的已下載值的快取位置。將空字串做為引數要求停用快取,否則會使用預設的「<output_user_root>/cache/repos/v1」
標記: bazel_internal_configuration
--[no]repository_disable_download 預設值:「false」
如果已設定,無法在存放區擷取期間使用 ctx.download{,_and_extract} 進行下載。請注意,網路存取權並未完全停用;ctx.execute 仍可以執行存取網際網路的任意執行檔。
標記:bazel_internal_configuration
控制建構執行作業的選項:
--gc_thrashing_threshold=<an integer in 0-100 range> 預設值:「100」
上方 GcThrashingDetector 會將記憶體壓力事件視為其配額限制 (--gc_thrashing_limits),而佔用空間佔用的空間百分比 (0-100)。如果設為 100,系統會停用 GcThrashingDetector。
標記:host_machine_resource_optimizations
控制指令輸出內容的選項:
--[no]canonicalize_policy 預設值:「false」
展開及篩選後,輸出標準政策。為了讓輸出內容保持簡潔,如果這個選項設為 true,系統就不會顯示標準化指令引數。請注意,--for_command 指定的指令會影響篩選的政策。如未指定,則預設指令為「build」。
標記:affects_outputsterminal_output
--[no]experimental_include_default_values預設值:「true」
指出是否要在輸出內容中加入 Starlark 選項設為預設值。
標記:affects_outputsterminal_output
這個選項會影響 Starlark 語言的語意,或是 BUILD 檔案、.bzl 檔案或 WORKSPACE 檔案使用的建構 API。
--[no]incompatible_config_setting_private_default_visibility 預設值:「false」
如果 incompatible_enforce_config_setting_visibility=false,即為不相容性。此外,如果這個旗標為 false,任何沒有明確瀏覽權限屬性的 config_setting 都是 //visibility:public。如果這個標記為 true,config_setting 的瀏覽權限邏輯與其他規則相同。請參閱 https://github.com/bazelbuild/bazel/issues/12933。
標記:loading_and_analysisincompatible_change
--[no]incompatible_depset_for_java_output_source_jars預設值:「true」
免人工管理。
標記: loading_and_analysisincompatible_change
--[no]incompatible_enforce_config_setting_visibility預設值:「true」
如果設為 true,請強制執行 config_setting 瀏覽權限限制。如果設為 False,每個目標都會顯示所有 config_setting。請參閱 https://github.com/bazelbuild/bazel/issues/12932。
標記:loading_and_analysisincompatible_change
--[no]incompatible_new_actions_api預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]incompatible_visibility_private_attributes_at_definition預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]separate_aspect_deps預設值:「true」
免人工管理
標記: no_op
與 Bzlmod 輸出內容和語意相關的選項:
會累積 --allow_yanked_versions=<a string> 個用途
指定模組版本時,請以「<module1>@<version1>,<module2>@<version2>」格式指定在已解析的依附元件圖中,即使這些版本來源不是來自 NonRegistryOverride,仍可在存放區中宣告這些版本。否則,分割版本會導致解析失敗。您也可以使用「BZLMOD_ALLOW_YANKED_VERSIONS」環境變數定義允許的分割版本。您可使用關鍵字「全部」停用這項檢查 (不建議使用)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off> 預設值:「錯誤」
檢查 Bazel 模組的 Bazel 版本相容性。有效值為「error」:可將其提報至解決失敗;設為「off」可停用檢查,「warning」則能在偵測到不相符時顯示警告。
標記:loading_and_analysis
--check_direct_dependencies=<off, warning or error> 預設值:「warning」
檢查根模組中宣告的直接「bazel_dep」依附元件,是否與已解析依附元件圖表中的版本相同。有效值為「off」可停用檢查,「warning」會在偵測到不相符時顯示警告,或是「error」將問題提報至解決失敗。
標記:loading_and_analysis
--[no]ignore_dev_dependency 預設值:「false」
如果為 true,Bazel 會忽略根模組 MODULE.bazel 中宣告為「dev_dependency」的「bazel_dep」和「use_extension」。請注意,如果根模組不是根模組,無論此標記的值為何,系統一律會忽略這些開發依附元件。
標記:loading_and_analysis
--lockfile_mode=<off, update or error> (預設):「更新」
指定使用 Lockfile 的方式,以及是否要使用。有效值為「update」可使用 Lockfile,並在出現變更時進行更新;「error」表示使用 Lockfile,但並非最新版本,會擲回錯誤;如果未更新,則為「off」。
標記:loading_and_analysis
會累積 --override_module=<an equals-separated mapping of module name to path> 個用途
以 <module name>=<path> 的格式覆寫本機路徑的模組。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則該路徑會與目前的工作目錄相對。如果指定路徑的開頭是「%workspace%」,代表與工作區根目錄 (也就是「bazel info workspace」的輸出內容) 有關。
會累積 --registry=<a string> 個用途
指定要用來尋找 Bazel 模組依附元件的登錄檔。順序很重要:系統會先在較早的登錄檔中查詢模組,而且只有在之後的登錄檔中缺少模組時,才會改回使用之後的登錄檔。
標記:changes_inputs
--vendor_dir=<a path> 預設:查看說明
指定應在廠商模式下保存外部存放區的目錄,不論是用於擷取或建立使用這些存放區。路徑可以指定為絕對路徑或相對於工作區目錄的路徑。
標記:loading_and_analysis
會觸發建構時間最佳化的選項:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 預設值:「1s:2,20s:3,1m:5」
限制如果已達到,GcThrashingDetector 會透過 OOM 讓 Bazel 當機,每項限制都以 <period>:<count> 指定,週期為時間長度,計數代表正整數。如果 <period> 內連續 <count> 個 GC 數量超過 --gc_thrashing_threshold 百分比,系統就會觸發 OOM。如要指定多個限制,請以半形逗號分隔。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生完整 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示完整 GC 事件永遠不會觸發下降。如果達到上限,在完整 GC 事件發生且超過保留堆積百分比門檻時,系統不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生輕微 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示次要 GC 事件永遠不會觸發下降。一旦達到限制,發生輕微 GC 事件且超過保留堆積百分比門檻時,系統就不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 預設值:「85」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量至少達到這個門檻,就會捨棄不必要的暫時性 SkyFrame 狀態。調整這個做法,即可減少垃圾收集造成的實際時間影響,也就是以下情形:GC 輾轉現象,是:(i) 這個臨時狀態的記憶體用量造成,(ii) 比在需要時重新建構狀態的成本高昂。
標記: host_machine_resource_optimizations
影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock> 預設:查看說明
記錄指令期間的 Java 航班/機票記錄工具設定檔。支援的剖析事件類型之一 (CPU、牆、分配或鎖定) 必須以引數的形式指定。設定檔將寫入一個檔案,並以事件類型在輸出基本目錄下命名。這個旗標的語法和語意日後可能會變更,以支援其他設定檔類型或輸出格式,請自行承擔風險。
--[no]experimental_record_metrics_for_all_mnemonics 預設值:「false」
根據預設,動作類型數量限制為已執行次數最多的 20 種記憶。如果設定這個選項,系統將寫入所有助測器的統計資料。
指定或變更不屬於其他類別 Bazel 指令的一般輸入選項:
--experimental_resolved_file_instead_of_workspace=<a string> 預設值:「」
如果讀取指定的已解析檔案 (而非 WORKSPACE 檔案) 為非空白檔案
標記: changes_inputs
--for_command=<a string> 預設值:「build」
應標準化選項的指令。
標記:affects_outputsterminal_output
--invocation_policy=<a string> 預設值:「」
將叫用政策套用至要標準化的選項。
標記:affects_outputsterminal_output
遠端快取和執行選項:
--experimental_downloader_config=<a string> 預設:查看說明
指定要用於設定遠端下載程式的檔案。這個檔案由各行組成,每個指令都是以指令 (「allow」、「block」或「rewrite」) 開頭,後面接有主機名稱 (適用於「allow」和「block」) 或兩個模式,一個要比對做為替代網址,另一個則做為替代網址,並以「$1」開頭的反向參照。即使多個「重新編寫」指令,也可視為相同網址的「rewrite」指令。
--experimental_worker_for_repo_fetching=<off, platform, virtual or auto> 預設值:「auto」
用於存放區擷取的執行緒模式。如果設為「off」,系統就不會使用任何工作站執行緒,且會重新啟動存放區擷取作業。如果設為「平台」,則會使用平台執行緒 (即 OS 執行緒) 或虛擬執行緒 (如設為「virtual」)。如果設為「auto」,系統就會在可用的情況下使用虛擬執行緒 (即在 JDK 21 以上版本中執行),否則就不會使用工作站執行緒。
其他未分類的選項。
會累積 --deleted_packages=<comma-separated list of package names> 個用途
逗號分隔的套件名稱清單,即使這些套件出現在套件路徑中,建構系統也不會將其視為不存在。 刪除現有套件「x」的子套件「x/y」時,請使用這個選項。舉例來說,在用戶端刪除 x/y/BUILD 後,如果建構系統發現標籤「//x:y/z」仍由另一個 package_path 項目提供,可能會抱怨。指定 --deleted_packages x/y 以避免這個問題。
--[no]fetch預設值:「true」
允許指令擷取外部依附元件。如果設為 False,這個指令會使用依附元件的任何快取版本;如果不存在,該指令就會導致失敗。
會累積 --override_repository=<an equals-separated mapping of repository name to path> 個用途
用 <repository name>=<path> 的格式覆寫本機路徑的存放區。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則以相對路徑為準。如果指定路徑的開頭是「%workspace%」,代表與工作區根目錄 (也就是「bazel info workspace」的輸出內容) 有關。
--package_path=<colon-separated list of options>預設值:「%workspace%」
尋找套件的位置清單 (以半形冒號分隔)。開頭為「%workspace%」的元素與所屬工作區相對。如果省略或留空,則預設值為「bazel info default-package-path」的輸出內容。
--[no]show_loading_progress預設值:「true」
啟用後,Bazel 就會顯示「Loading package:」訊息。

清除選項

繼承 build 的所有選項。

這些選項會顯示在指令之前,並由用戶端剖析:
會累積 --distdir=<a path> 個用途
還有許多地方可以搜尋封存檔案,以便透過網路下載封存內容。
標記:bazel_internal_configuration
如有設定,存放區快取會在快取成功時將檔案硬式編碼,而非複製檔案。以便節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 預設值:「0」
重試下載錯誤的次數上限。如果設為 0,系統就會停用重試功能。
標記:experimental
--experimental_scale_timeouts=<a double> 預設值:「1.0」
按照這項係數調整 Starlark 存放區規則中的所有逾時時間。如此一來,即使效能低於規則作者預期的機器,外部存放區也能在不變更原始碼的情況下正常運作。
標記:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 預設值:「8」
http 下載作業的次數上限。
標記:bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 預設值:「0s」
http 下載重試的逾時時間上限。如果值為 0,就不會定義逾時上限。
標記:bazel_internal_configuration
--http_timeout_scaling=<a double> 預設值:「1.0」
依指定係數調整所有與 http 下載相關的逾時時間
標記: bazel_internal_configuration
--repository_cache=<a path> 預設:查看說明
指定擷取外部存放區時取得的已下載值的快取位置。將空字串做為引數要求停用快取,否則會使用預設的「<output_user_root>/cache/repos/v1」
標記: bazel_internal_configuration
--[no]repository_disable_download 預設值:「false」
如果已設定,無法在存放區擷取期間使用 ctx.download{,_and_extract} 進行下載。請注意,網路存取權並未完全停用;ctx.execute 仍可以執行存取網際網路的任意執行檔。
標記:bazel_internal_configuration
控制建構執行作業的選項:
--gc_thrashing_threshold=<an integer in 0-100 range> 預設值:「100」
上方 GcThrashingDetector 會將記憶體壓力事件視為其配額限制 (--gc_thrashing_limits),而佔用空間佔用的空間百分比 (0-100)。如果設為 100,系統會停用 GcThrashingDetector。
標記:host_machine_resource_optimizations
控制指令輸出內容的選項:
--[no]async 預設值:「false」
如果為 true,輸出內容清理作業就會以非同步方式執行。指令執行完畢後,即使刪除作業可能會在背景持續執行,您還是可以安全地在同一個用戶端中執行新指令。
標記:host_machine_resource_optimizations
--[no]expunge 預設值:「false」
如果為 True,請清除這個 bazel 執行個體的整個工作樹狀結構,包括所有 bazel 建立的暫存檔案和建構輸出檔案,並停止執行中的 Bazel 伺服器。
標記:host_machine_resource_optimizations
--expunge_async
如有指定,請以非同步方式清除這個 Bazel 執行個體的整個運作樹狀結構,包括所有 bazel 建立的暫存檔案和建構輸出檔案,並停止執行中的 Bazel 伺服器。指令執行完畢後,即使刪除作業可能會在背景持續執行,您還是可以安全地在同一個用戶端中執行新指令。
展開至:
  --expunge
  --async

標記: host_machine_resource_optimizations
這個選項會影響 Starlark 語言的語意,或是 BUILD 檔案、.bzl 檔案或 SPACE 檔案可存取的建構 API。
--[no]incompatible_depset_for_java_output_source_jars預設值:「true」
免人工管理。
標記: loading_and_analysisincompatible_change
--[no]incompatible_new_actions_api預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]incompatible_visibility_private_attributes_at_definition預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]separate_aspect_deps預設值:「true」
免人工管理
標記: no_op
與 Bzlmod 輸出內容和語意相關的選項:
會累積 --allow_yanked_versions=<a string> 個用途
指定模組版本時,請以「<module1>@<version1>,<module2>@<version2>」格式指定在已解析的依附元件圖中,即使這些版本來源不是來自 NonRegistryOverride,仍可在存放區中宣告這些版本。否則,分割版本會導致解析失敗。您也可以使用「BZLMOD_ALLOW_YANKED_VERSIONS」環境變數定義允許的分割版本。您可使用關鍵字「全部」停用這項檢查 (不建議使用)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off> 預設值:「錯誤」
檢查 Bazel 模組的 Bazel 版本相容性。有效值為「error」:可將其提報至解決失敗;設為「off」可停用檢查,「warning」則能在偵測到不相符時顯示警告。
標記:loading_and_analysis
--check_direct_dependencies=<off, warning or error> 預設值:「warning」
檢查根模組中宣告的直接「bazel_dep」依附元件,是否與已解析依附元件圖表中的版本相同。有效值為「off」可停用檢查,「warning」會在偵測到不相符時顯示警告,或是「error」將問題提報至解決失敗。
標記:loading_and_analysis
--[no]ignore_dev_dependency 預設值:「false」
如果為 true,Bazel 會忽略根模組 MODULE.bazel 中宣告為「dev_dependency」的「bazel_dep」和「use_extension」。請注意,如果根模組不是根模組,無論此標記的值為何,系統一律會忽略這些開發依附元件。
標記:loading_and_analysis
--lockfile_mode=<off, update or error> (預設):「更新」
指定使用 Lockfile 的方式,以及是否要使用。有效值為「update」可使用 Lockfile,並在出現變更時進行更新;「error」表示使用 Lockfile,但並非最新版本,會擲回錯誤;如果未更新,則為「off」。
標記:loading_and_analysis
會累積 --override_module=<an equals-separated mapping of module name to path> 個用途
以 <module name>=<path> 的格式覆寫本機路徑的模組。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則該路徑會與目前的工作目錄相對。如果指定路徑的開頭是「%workspace%」,代表與工作區根目錄 (也就是「bazel info workspace」的輸出內容) 有關。
會累積 --registry=<a string> 個用途
指定要用來尋找 Bazel 模組依附元件的登錄檔。順序很重要:系統會先在較早的登錄檔中查詢模組,而且只有在之後的登錄檔中缺少模組時,才會改回使用之後的登錄檔。
標記:changes_inputs
--vendor_dir=<a path> 預設:查看說明
指定應在廠商模式下保存外部存放區的目錄,不論是用於擷取或建立使用這些存放區。路徑可以指定為絕對路徑或相對於工作區目錄的路徑。
標記:loading_and_analysis
會觸發建構時間最佳化的選項:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 預設值:「1s:2,20s:3,1m:5」
限制如果已達到,GcThrashingDetector 會透過 OOM 讓 Bazel 當機,每項限制都以 <period>:<count> 指定,週期為時間長度,計數代表正整數。如果 <period> 內連續 <count> 個 GC 數量超過 --gc_thrashing_threshold 百分比,系統就會觸發 OOM。如要指定多個限制,請以半形逗號分隔。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生完整 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示完整 GC 事件永遠不會觸發下降。如果達到上限,在完整 GC 事件發生且超過保留堆積百分比門檻時,系統不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生輕微 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示次要 GC 事件永遠不會觸發下降。一旦達到限制,發生輕微 GC 事件且超過保留堆積百分比門檻時,系統就不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 預設值:「85」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量至少達到這個門檻,就會捨棄不必要的暫時性 SkyFrame 狀態。調整這個做法,即可減少垃圾收集造成的實際時間影響,也就是以下情形:GC 輾轉現象,是:(i) 這個臨時狀態的記憶體用量造成,(ii) 比在需要時重新建構狀態的成本高昂。
標記: host_machine_resource_optimizations
影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock> 預設:查看說明
記錄指令期間的 Java 航班/機票記錄工具設定檔。支援的剖析事件類型之一 (CPU、牆、分配或鎖定) 必須以引數的形式指定。設定檔將寫入一個檔案,並以事件類型在輸出基本目錄下命名。這個旗標的語法和語意日後可能會變更,以支援其他設定檔類型或輸出格式,請自行承擔風險。
--[no]experimental_record_metrics_for_all_mnemonics 預設值:「false」
根據預設,動作類型數量限制為已執行次數最多的 20 種記憶。如果設定這個選項,系統將寫入所有助測器的統計資料。
指定或變更不屬於其他類別 Bazel 指令的一般輸入選項:
--experimental_resolved_file_instead_of_workspace=<a string> 預設值:「」
如果讀取指定的已解析檔案 (而非 WORKSPACE 檔案) 為非空白檔案
標記: changes_inputs
遠端快取和執行選項:
--experimental_downloader_config=<a string> 預設:查看說明
指定要用於設定遠端下載程式的檔案。這個檔案由各行組成,每個指令都是以指令 (「allow」、「block」或「rewrite」) 開頭,後面接有主機名稱 (適用於「allow」和「block」) 或兩個模式,一個要比對做為替代網址,另一個則做為替代網址,並以「$1」開頭的反向參照。即使多個「重新編寫」指令,也可視為相同網址的「rewrite」指令。
--experimental_worker_for_repo_fetching=<off, platform, virtual or auto> 預設值:「auto」
用於存放區擷取的執行緒模式。如果設為「off」,系統就不會使用任何工作站執行緒,且會重新啟動存放區擷取作業。如果設為「平台」,則會使用平台執行緒 (即 OS 執行緒) 或虛擬執行緒 (如設為「virtual」)。如果設為「auto」,系統就會在可用的情況下使用虛擬執行緒 (即在 JDK 21 以上版本中執行),否則就不會使用工作站執行緒。
其他未分類的選項。
會累積 --override_repository=<an equals-separated mapping of repository name to path> 個用途
用 <repository name>=<path> 的格式覆寫本機路徑的存放區。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則以相對路徑為準。如果指定路徑的開頭是「%workspace%」,代表相對於工作區根目錄,也就是「bazel info workspace」的輸出內容

設定選項

涵蓋範圍選項

沿用 test 的所有選項。

這些選項會顯示在指令之前,並由用戶端剖析:
會累積 --distdir=<a path> 個用途
還有許多地方可以搜尋封存檔案,以便透過網路下載封存內容。
標記:bazel_internal_configuration
如有設定,存放區快取會在快取成功時將檔案硬式編碼,而非複製檔案。以便節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 預設值:「0」
重試下載錯誤的次數上限。如果設為 0,系統就會停用重試功能。
標記:experimental
--experimental_scale_timeouts=<a double> 預設值:「1.0」
按照這項係數調整 Starlark 存放區規則中的所有逾時時間。如此一來,即使效能低於規則作者預期的機器,外部存放區也能在不變更原始碼的情況下正常運作。
標記:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 預設值:「8」
http 下載作業的次數上限。
標記:bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 預設值:「0s」
http 下載重試的逾時時間上限。如果值為 0,就不會定義逾時上限。
標記:bazel_internal_configuration
--http_timeout_scaling=<a double> 預設值:「1.0」
依指定係數調整所有與 http 下載相關的逾時時間
標記: bazel_internal_configuration
--repository_cache=<a path> 預設:查看說明
指定擷取外部存放區時取得的已下載值的快取位置。將空字串做為引數要求停用快取,否則會使用預設的「<output_user_root>/cache/repos/v1」
標記: bazel_internal_configuration
--[no]repository_disable_download 預設值:「false」
如果已設定,無法在存放區擷取期間使用 ctx.download{,_and_extract} 進行下載。請注意,網路存取權並未完全停用;ctx.execute 仍可以執行存取網際網路的任意執行檔。
標記:bazel_internal_configuration
控制建構執行作業的選項:
--gc_thrashing_threshold=<an integer in 0-100 range> 預設值:「100」
上方 GcThrashingDetector 會將記憶體壓力事件視為其配額限制 (--gc_thrashing_limits),而佔用空間佔用的空間百分比 (0-100)。如果設為 100,系統會停用 GcThrashingDetector。
標記: host_machine_resource_optimizations
這個選項會影響 Starlark 語言的語意,或是 BUILD 檔案、.bzl 檔案或 WORKSPACE 檔案可用的建構 API。
--[no]incompatible_depset_for_java_output_source_jars預設值:「true」
免人工管理。
標記: loading_and_analysisincompatible_change
--[no]incompatible_new_actions_api預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]incompatible_visibility_private_attributes_at_definition預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]separate_aspect_deps預設值:「true」
免人工管理
標記: no_op
與 Bzlmod 輸出內容和語意相關的選項:
會累積 --allow_yanked_versions=<a string> 個用途
指定模組版本時,請以「<module1>@<version1>,<module2>@<version2>」格式指定在已解析的依附元件圖中,即使這些版本來源不是來自 NonRegistryOverride,仍可在存放區中宣告這些版本。否則,分割版本會導致解析失敗。您也可以使用「BZLMOD_ALLOW_YANKED_VERSIONS」環境變數定義允許的分割版本。您可使用關鍵字「全部」停用這項檢查 (不建議使用)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off> 預設值:「錯誤」
檢查 Bazel 模組的 Bazel 版本相容性。有效值為「error」:可將其提報至解決失敗;設為「off」可停用檢查,「warning」則能在偵測到不相符時顯示警告。
標記:loading_and_analysis
--check_direct_dependencies=<off, warning or error> 預設值:「warning」
檢查根模組中宣告的直接「bazel_dep」依附元件,是否與已解析依附元件圖表中的版本相同。有效值為「off」可停用檢查,「warning」會在偵測到不相符時顯示警告,或是「error」將問題提報至解決失敗。
標記:loading_and_analysis
--[no]ignore_dev_dependency 預設值:「false」
如果為 true,Bazel 會忽略根模組 MODULE.bazel 中宣告為「dev_dependency」的「bazel_dep」和「use_extension」。請注意,如果根模組不是根模組,無論此標記的值為何,系統一律會忽略這些開發依附元件。
標記:loading_and_analysis
--lockfile_mode=<off, update or error> (預設):「更新」
指定使用 Lockfile 的方式,以及是否要使用。有效值為「update」可使用 Lockfile,並在出現變更時進行更新;「error」表示使用 Lockfile,但並非最新版本,會擲回錯誤;如果未更新,則為「off」。
標記:loading_and_analysis
會累積 --override_module=<an equals-separated mapping of module name to path> 個用途
以 <module name>=<path> 的格式覆寫本機路徑的模組。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則該路徑會與目前的工作目錄相對。如果指定路徑的開頭是「%workspace%」,代表與工作區根目錄 (也就是「bazel info workspace」的輸出內容) 有關。
會累積 --registry=<a string> 個用途
指定要用來尋找 Bazel 模組依附元件的登錄檔。順序很重要:系統會先在較早的登錄檔中查詢模組,而且只有在之後的登錄檔中缺少模組時,才會改回使用之後的登錄檔。
標記:changes_inputs
--vendor_dir=<a path> 預設:查看說明
指定應在廠商模式下保存外部存放區的目錄,不論是用於擷取或建立使用這些存放區。路徑可以指定為絕對路徑或相對於工作區目錄的路徑。
標記:loading_and_analysis
會觸發建構時間最佳化的選項:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 預設值:「1s:2,20s:3,1m:5」
限制如果已達到,GcThrashingDetector 會透過 OOM 讓 Bazel 當機,每項限制都以 <period>:<count> 指定,週期為時間長度,計數代表正整數。如果 <period> 內連續 <count> 個 GC 數量超過 --gc_thrashing_threshold 百分比,系統就會觸發 OOM。如要指定多個限制,請以半形逗號分隔。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生完整 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示完整 GC 事件永遠不會觸發下降。如果達到上限,在完整 GC 事件發生且超過保留堆積百分比門檻時,系統不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生輕微 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示次要 GC 事件永遠不會觸發下降。一旦達到限制,發生輕微 GC 事件且超過保留堆積百分比門檻時,系統就不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 預設值:「85」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量至少達到這個門檻,就會捨棄不必要的暫時性 SkyFrame 狀態。調整這個做法,即可減少垃圾收集造成的實際時間影響,也就是以下情形:GC 輾轉現象,是:(i) 這個臨時狀態的記憶體用量造成,(ii) 比在需要時重新建構狀態的成本高昂。
標記: host_machine_resource_optimizations
影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock> 預設:查看說明
記錄指令期間的 Java 航班/機票記錄工具設定檔。支援的剖析事件類型之一 (CPU、牆、分配或鎖定) 必須以引數的形式指定。設定檔將寫入一個檔案,並以事件類型在輸出基本目錄下命名。這個旗標的語法和語意日後可能會變更,以支援其他設定檔類型或輸出格式,請自行承擔風險。
--[no]experimental_record_metrics_for_all_mnemonics 預設值:「false」
根據預設,動作類型數量限制為已執行次數最多的 20 種記憶。如果設定這個選項,系統將寫入所有助測器的統計資料。
指定或變更不屬於其他類別 Bazel 指令的一般輸入選項:
--experimental_resolved_file_instead_of_workspace=<a string> 預設值:「」
如果讀取指定的已解析檔案 (而非 WORKSPACE 檔案) 為非空白檔案
標記: changes_inputs
遠端快取和執行選項:
--experimental_downloader_config=<a string> 預設:查看說明
指定要用於設定遠端下載程式的檔案。這個檔案由各行組成,每個指令都是以指令 (「allow」、「block」或「rewrite」) 開頭,後面接有主機名稱 (適用於「allow」和「block」) 或兩個模式,一個要比對做為替代網址,另一個則做為替代網址,並以「$1」開頭的反向參照。即使多個「重新編寫」指令,也可視為相同網址的「rewrite」指令。
--experimental_worker_for_repo_fetching=<off, platform, virtual or auto> 預設值:「auto」
用於存放區擷取的執行緒模式。如果設為「off」,系統就不會使用任何工作站執行緒,且會重新啟動存放區擷取作業。如果設為「平台」,則會使用平台執行緒 (即 OS 執行緒) 或虛擬執行緒 (如設為「virtual」)。如果設為「auto」,系統就會在可用的情況下使用虛擬執行緒 (即在 JDK 21 以上版本中執行),否則就不會使用工作站執行緒。
其他未分類的選項。
會累積 --override_repository=<an equals-separated mapping of repository name to path> 個用途
用 <repository name>=<path> 的格式覆寫本機路徑的存放區。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則以相對路徑為準。如果指定路徑的開頭是「%workspace%」,代表相對於工作區根目錄,也就是「bazel info workspace」的輸出內容

Cquery 選項

沿用 test 的所有選項。

這些選項會顯示在指令之前,並由用戶端剖析:
會累積 --distdir=<a path> 個用途
還有許多地方可以搜尋封存檔案,以便透過網路下載封存內容。
標記:bazel_internal_configuration
如有設定,存放區快取會在快取成功時將檔案硬式編碼,而非複製檔案。以便節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 預設值:「0」
重試下載錯誤的次數上限。如果設為 0,系統就會停用重試功能。
標記:experimental
--experimental_scale_timeouts=<a double> 預設值:「1.0」
按照這項係數調整 Starlark 存放區規則中的所有逾時時間。如此一來,即使效能低於規則作者預期的機器,外部存放區也能在不變更原始碼的情況下正常運作。
標記:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 預設值:「8」
http 下載作業的次數上限。
標記:bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 預設值:「0s」
http 下載重試的逾時時間上限。如果值為 0,就不會定義逾時上限。
標記:bazel_internal_configuration
--http_timeout_scaling=<a double> 預設值:「1.0」
依指定係數調整所有與 http 下載相關的逾時時間
標記: bazel_internal_configuration
--repository_cache=<a path> 預設:查看說明
指定擷取外部存放區時取得的已下載值的快取位置。將空字串做為引數要求停用快取,否則會使用預設的「<output_user_root>/cache/repos/v1」
標記: bazel_internal_configuration
--[no]repository_disable_download 預設值:「false」
如果已設定,無法在存放區擷取期間使用 ctx.download{,_and_extract} 進行下載。請注意,網路存取權並未完全停用;ctx.execute 仍可以執行存取網際網路的任意執行檔。
標記:bazel_internal_configuration
控制建構執行作業的選項:
--gc_thrashing_threshold=<an integer in 0-100 range> 預設值:「100」
上方 GcThrashingDetector 會將記憶體壓力事件視為其配額限制 (--gc_thrashing_limits),而佔用空間佔用的空間百分比 (0-100)。如果設為 100,系統會停用 GcThrashingDetector。
標記: host_machine_resource_optimizations
這個選項會影響 Starlark 語言的語意,或是 BUILD 檔案、.bzl 檔案或 WORKSPACE 檔案可用的建構 API。
--[no]incompatible_depset_for_java_output_source_jars預設值:「true」
免人工管理。
標記: loading_and_analysisincompatible_change
--[no]incompatible_new_actions_api預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]incompatible_visibility_private_attributes_at_definition預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]separate_aspect_deps預設值:「true」
免人工管理
標記: no_op
查詢輸出和語意相關選項:
--aspect_deps=<off, conservative or precise> 預設值:「conservative」
當輸出格式是 {xml,proto,record} 時,如何解析切面依附元件。「off」代表未解析任何切面依附元件;「保守」(預設) 代表新增所有宣告的切面依附元件,不論是否提供直接依附元件的規則類別;「精確」代表僅新增可能根據直接依附元件的規則類別啟用的切面。請注意,由於精確模式需要載入其他套件來評估單一目標,因此速度比其他模式慢。另請注意,就算使用精確模式也無法完全精準,是否要在分析階段中決定是否運算,該階段不會在「bazel 查詢」期間執行。
標記:build_file_semantics
--[no]consistent_labels 預設值:「false」
啟用這項設定後,每個查詢指令都會發送標籤,就像由 Starlark <code>str</code> 函式套用至 <code>Label</code> 執行個體一樣。這項工具相當適合用於需要比對不同查詢指令和/或規則所發出標籤的輸出內容。如果不啟用,輸出格式設定器可改為發出明顯的存放區名稱 (相對於主要存放區),讓輸出內容更容易讀取。
標記:terminal_output
--[no]experimental_explicit_aspects 預設值:「false」

標記:terminal_output
--[no]graph:factored預設值:「true」
如果為 true,圖表會發出「因子」,也就是同質相等的節點會合併在一起,其標籤會串連。這個選項僅適用於 --output=graph。
標記:terminal_output
--graph:node_limit=<an integer> 預設值:「512」
輸出中圖形節點的標籤字串長度上限。較長的標籤會遭到截斷;-1 表示不會截斷。這個選項僅適用於 --output=graph。
標記:terminal_output
--[no]implicit_deps預設值:「true」
啟用後,隱含依附元件會納入查詢作業的依附元件圖中。隱含依附元件是指 BUILD 檔案中並未明確指定,但是由 bazel 新增的依附元件。針對 cquery,這個選項會控制篩選已解析的工具鍊。
標記:build_file_semantics
--[no]include_aspects預設值:「true」

標記:terminal_output
--[no]incompatible_package_group_includes_double_slash預設值:「true」
啟用後,在輸出 package_group 的「packages」屬性時,系統不會省略開頭的「//」。
標記:terminal_outputincompatible_change
--[no]infer_universe_scope 預設值:「false」
如果未設定 --universe_scope,將將 --universe_scope 的值推斷為查詢運算式中不重複目標模式的清單。請注意,使用單向範圍函式 (例如`allrdeps`) 的查詢運算式所推測的 --universe_scope 值可能不太符合您的需求,因此建議您在瞭解自己執行的操作時,才使用這個選項。如需詳細資訊和範例,請參閱 https://bazel.build/reference/query#sky-query。如果已設定 --universe_scope,系統就會忽略此選項的值。注意:這個選項僅適用於「query」(查詢),而非「cquery」。
標記: loading_and_analysis
--[no]line_terminator_null 預設值:「false」
指出每個格式是否會以 \0 (而非換行) 終止。
標記:terminal_output
--[no]nodep_deps預設值:「true」
如果啟用這項政策,從「nodep」屬性降級後,查詢作業的依附元件圖表就會包含該屬性。常見的「nodep」屬性為「visibility」。執行並剖析「資訊建構語言」的輸出內容,瞭解建構語言中的所有「nodep」屬性。
標記:build_file_semantics
--output=<a string>預設值:「label」
輸出 cquery 結果的格式。允許的 cquery 值為:label、label_Kind、textproto、轉換、proto、streamed_proto、jsonproto。如果選取「轉換」,就必須一併指定 --transitions=(lite|full) 選項。
標記:terminal_output
--[no]proto:default_values預設值:「true」
如果為 true,系統會納入 BUILD 檔案中未明確指定值的屬性,否則會省略。這個選項適用於 --output=proto
標記:terminal_output
--[no]proto:definition_stack 預設值:「false」
填入 definition_stack proto 欄位,該欄位會在定義規則類別時,記錄每個規則例項的 Starlark 呼叫堆疊。
標記:terminal_output
--[no]proto:flatten_selects預設值:「true」
啟用後,系統會整併 select() 建立的可設定屬性。對於清單類型而言,扁平化的表示式呈現為一份清單,其中僅包含選取地圖的每個值一次。純量類型會扁平化為空值。
標記:build_file_semantics
--[no]proto:include_attribute_source_aspects 預設值:「false」
為每個屬性的 source_aspect_name proto 欄位填入屬性來源切面的資訊 (如果沒有屬性,則為空白字串)。
標記:terminal_output
--[no]proto:include_configurations預設值:「true」
設為啟用後,proto 輸出內容會包含設定的相關資訊。停用後,cquery proto 輸出格式與查詢輸出格式類似。
標記:affects_outputs
--[no]proto:include_synthetic_attribute_hash 預設值:「false」
是否要計算及填入 $internal_attr_hash 屬性。
標記:terminal_output
--[no]proto:instantiation_stack 預設值:「false」
填入每項規則的例項化呼叫堆疊。請注意,如要這麼做,堆疊必須具有
標記:terminal_output
--[no]proto:locations預設值:「true」
是否要在 proto 輸出內容中輸出位置資訊。
標記:terminal_output
--proto:output_rule_attrs=<comma-separated list of options> 預設值:「全部」
要包含在輸出內容中的屬性清單 (以半形逗號分隔)。預設為所有屬性。設為空白字串不輸出任何屬性。這個選項適用於 --output=proto。
標記:terminal_output
--[no]proto:rule_inputs_and_outputs預設值:「true」
指定是否填入「Rule_input」和「Rule_output」欄位。
標記:terminal_output
--query_file=<a string> 預設值:「」
如有設定,查詢會從這裡命名的檔案讀取查詢,而不是透過指令列讀取。在這裡指定檔案以及指令列查詢會發生錯誤。
標記:changes_inputs
--[no]relative_locations 預設值:「false」
如果為 True,XML 和 proto 輸出內容中的 BUILD 檔案位置將會相對。根據預設,位置輸出是絕對路徑,而且在所有機器中不一致。您可以將這個選項設為 True,即可在不同機器中取得一致的結果。
標記:terminal_output
--show_config_fragments=<off, direct or transitive> 預設值:「關閉」
顯示規則所需的設定片段及其遞移依附元件。這項指標有助於評估設定的目標圖表可修剪的程度。
標記:affects_outputs
--starlark:expr=<a string> 預設值:「」
Starlark 運算式,用於在 cquery 的 --output=starlark 模式下設定各個設定的目標格式。設定的目標會繫結至「目標」。如果未指定 --starlark:expr 和 --starlark:file,則這個選項會預設為「str(target.label)」。同時指定 --starlark:expr 和 --starlark:file 是錯誤。
標記:terminal_output
--starlark:file=<a string> 預設值:「」
定義一個引數中名為「format」的 Starlark 函式檔案名稱,該函式會套用至各個已設定的目標,以做為字串格式。同時指定 --starlark:expr 和 --starlark:file 是錯誤。詳情請參閱「--output=starlark」說明。
標記:terminal_output
--[no]tool_deps預設值:「true」
查詢:如果停用,則「exec configuration」的依附元件不會包含在查詢作業的依附元件圖表中。「exec configuration」的依附元件邊緣 (例如從任何「proto_library」規則的依附元件到通訊協定編譯器的邊緣),通常指向在建構期間執行的工具,而非同一個「目標」程式的一部分。Cquery:如果停用,系統會從頂層目標中發現這個設定目標的頂層目標,篩選出所有已設定的目標。換句話說,如果頂層目標位於目標設定中,系統只會傳回同樣在目標設定中已設定的目標。如果頂層目標位於執行設定中,系統只會傳回執行設定的目標。這個選項「不會」排除已解析的工具鍊。
標記:build_file_semantics
--transitions=<full, lite or none>預設值:「無」
cquery 輸出轉換資訊的格式。
標記:affects_outputs
--universe_scope=<comma-separated list of options> 預設值:「」
以半形逗號分隔的目標模式組合 (加法和減法)。查詢可於由指定目標的遞移性通過所定義的宇宙中執行。這個選項可用於查詢和 cquery 指令。對 cquery 來說,這個選項的輸入內容就是所有答案的基礎,因此這個選項可能會影響設定和轉換。如未指定此選項,系統會假設頂層目標為查詢運算式剖析的目標。注意事項:在 cquery 中,如未指定這個選項,如果無法以頂層選項建構從查詢運算式剖析的目標,建構可能會中斷。
標記:loading_and_analysis
與 Bzlmod 輸出內容和語意相關的選項:
會累積 --allow_yanked_versions=<a string> 個用途
指定模組版本時,請以「<module1>@<version1>,<module2>@<version2>」格式指定在已解析的依附元件圖中,即使這些版本來源不是來自 NonRegistryOverride,仍可在存放區中宣告這些版本。否則,分割版本會導致解析失敗。您也可以使用「BZLMOD_ALLOW_YANKED_VERSIONS」環境變數定義允許的分割版本。您可使用關鍵字「全部」停用這項檢查 (不建議使用)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off> 預設值:「錯誤」
檢查 Bazel 模組的 Bazel 版本相容性。有效值為「error」:可將其提報至解決失敗;設為「off」可停用檢查,「warning」則能在偵測到不相符時顯示警告。
標記:loading_and_analysis
--check_direct_dependencies=<off, warning or error> 預設值:「warning」
檢查根模組中宣告的直接「bazel_dep」依附元件,是否與已解析依附元件圖表中的版本相同。有效值為「off」可停用檢查,「warning」會在偵測到不相符時顯示警告,或是「error」將問題提報至解決失敗。
標記:loading_and_analysis
--[no]ignore_dev_dependency 預設值:「false」
如果為 true,Bazel 會忽略根模組 MODULE.bazel 中宣告為「dev_dependency」的「bazel_dep」和「use_extension」。請注意,如果根模組不是根模組,無論此標記的值為何,系統一律會忽略這些開發依附元件。
標記:loading_and_analysis
--lockfile_mode=<off, update or error> (預設):「更新」
指定使用 Lockfile 的方式,以及是否要使用。有效值為「update」可使用 Lockfile,並在出現變更時進行更新;「error」表示使用 Lockfile,但並非最新版本,會擲回錯誤;如果未更新,則為「off」。
標記:loading_and_analysis
會累積 --override_module=<an equals-separated mapping of module name to path> 個用途
以 <module name>=<path> 的格式覆寫本機路徑的模組。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則該路徑會與目前的工作目錄相對。如果指定路徑的開頭是「%workspace%」,代表與工作區根目錄 (也就是「bazel info workspace」的輸出內容) 有關。
會累積 --registry=<a string> 個用途
指定要用來尋找 Bazel 模組依附元件的登錄檔。順序很重要:系統會先在較早的登錄檔中查詢模組,而且只有在之後的登錄檔中缺少模組時,才會改回使用之後的登錄檔。
標記:changes_inputs
--vendor_dir=<a path> 預設:查看說明
指定應在廠商模式下保存外部存放區的目錄,不論是用於擷取或建立使用這些存放區。路徑可以指定為絕對路徑或相對於工作區目錄的路徑。
標記:loading_and_analysis
會觸發建構時間最佳化的選項:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 預設值:「1s:2,20s:3,1m:5」
限制如果已達到,GcThrashingDetector 會透過 OOM 讓 Bazel 當機,每項限制都以 <period>:<count> 指定,週期為時間長度,計數代表正整數。如果 <period> 內連續 <count> 個 GC 數量超過 --gc_thrashing_threshold 百分比,系統就會觸發 OOM。如要指定多個限制,請以半形逗號分隔。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生完整 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示完整 GC 事件永遠不會觸發下降。如果達到上限,在完整 GC 事件發生且超過保留堆積百分比門檻時,系統不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生輕微 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示次要 GC 事件永遠不會觸發下降。一旦達到限制,發生輕微 GC 事件且超過保留堆積百分比門檻時,系統就不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 預設值:「85」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量至少達到這個門檻,就會捨棄不必要的暫時性 SkyFrame 狀態。調整這個做法,即可減少垃圾收集造成的實際時間影響,也就是以下情形:GC 輾轉現象,是:(i) 這個臨時狀態的記憶體用量造成,(ii) 比在需要時重新建構狀態的成本高昂。
標記: host_machine_resource_optimizations
影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock> 預設:查看說明
記錄指令期間的 Java 航班/機票記錄工具設定檔。支援的剖析事件類型之一 (CPU、牆、分配或鎖定) 必須以引數的形式指定。設定檔將寫入一個檔案,並以事件類型在輸出基本目錄下命名。這個旗標的語法和語意日後可能會變更,以支援其他設定檔類型或輸出格式,請自行承擔風險。
--[no]experimental_record_metrics_for_all_mnemonics 預設值:「false」
根據預設,動作類型數量限制為已執行次數最多的 20 種記憶。如果設定這個選項,系統將寫入所有助測器的統計資料。
指定或變更不屬於其他類別 Bazel 指令的一般輸入選項:
--experimental_resolved_file_instead_of_workspace=<a string> 預設值:「」
如果讀取指定的已解析檔案 (而非 WORKSPACE 檔案) 為非空白檔案
標記: changes_inputs
遠端快取和執行選項:
--experimental_downloader_config=<a string> 預設:查看說明
指定要用於設定遠端下載程式的檔案。這個檔案由各行組成,每個指令都是以指令 (「allow」、「block」或「rewrite」) 開頭,後面接有主機名稱 (適用於「allow」和「block」) 或兩個模式,一個要比對做為替代網址,另一個則做為替代網址,並以「$1」開頭的反向參照。即使多個「重新編寫」指令,也可視為相同網址的「rewrite」指令。
--experimental_worker_for_repo_fetching=<off, platform, virtual or auto> 預設值:「auto」
用於存放區擷取的執行緒模式。如果設為「off」,系統就不會使用任何工作站執行緒,且會重新啟動存放區擷取作業。如果設為「平台」,則會使用平台執行緒 (即 OS 執行緒) 或虛擬執行緒 (如設為「virtual」)。如果設為「auto」,系統就會在可用的情況下使用虛擬執行緒 (即在 JDK 21 以上版本中執行),否則就不會使用工作站執行緒。
其他未分類的選項。
會累積 --override_repository=<an equals-separated mapping of repository name to path> 個用途
用 <repository name>=<path> 的格式覆寫本機路徑的存放區。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則以相對路徑為準。如果指定路徑的開頭是「%workspace%」,代表該路徑與工作區根目錄 (也就是「bazel info workspace」的輸出內容) 有關
控制建構作業執行作業的選項:
是否要直接呼叫檔案系統來建立符號連結樹狀結構
標記:loading_and_analysisexecutionexperimental
--[no]experimental_persistent_aar_extractor 預設值:「false」
使用工作站啟用永久性擷取器。
標記:execution
--[no]experimental_remotable_source_manifests 預設值:「false」
是否要讓來源資訊清單動作可恢復運作
標記:loading_and_analysisexecutionexperimental
--[no]experimental_split_coverage_postprocessing 預設值:「false」
如果為 true,Bazel 會在新的另一個環境中執行涵蓋率後續處理來進行測試。
標記:execution
--[no]experimental_strict_fileset_output 預設值:「false」
如果啟用此選項,檔案集會將所有輸出構件視為一般檔案。不會週遊目錄,也不會對符號連結敏感。
標記:execution
--modify_execution_info=<regex=[+-]key,regex=[+-]key,...> 預設值:「」
根據動作記憶法,在動作的執行資訊中新增或移除鍵。僅適用於支援執行資訊的動作。許多常見動作都支援執行資訊,例如 Genrule、CppCompile、Javac、StarlarkAction、TestRunner。由於許多規則運算式都可能適用於同一個文法,因此指定多個值時,順序很重要。 語法:「regex=[+-]key,regex=[+-]key,...」。 範例: 「.*=+x,.*=-y,.*=+z」會將「x」和「z」加入,並從所有動作的執行作業資訊中移除「y」。 「Genrule=+requires-x」會在所有 Genrule 動作的執行資訊中加入「requires-x」。 「(?!Genrule).*=-requires-x' 會從所有非 Genrule 動作的執行資訊中移除「requires-x」。
標記:executionaffects_outputsloading_and_analysis
--persistent_android_dex_desugar
使用工作站啟用持續的 Android dex 和去糖動作。
展開至:
  --internal_persistent_android_dex_desugar
  --strategy=Desugar=worker
  --strategy=DexBuilder=worker

標記: host_machine_resource_optimizationsexecution
--persistent_android_resource_processor
使用工作站啟用永久 Android 資源處理器。
展開至:
--internal_persistent_busybox_tools
--strategy=AaptPackage=worker
--strategy=AndroidResourceParser=worker
--strategy=AndroidResourceValidator=worker
--strategy=AndroidResourceCompiler=worker
--strategy=RClassGenerator=worker
--strategy=AndroidResourceLink=worker
--strategy=AndroidAapt2=worker
--strategy=AndroidAssetMerger=worker
--strategy=AndroidResourceMerger=worker
--strategy=AndroidCompiledResourceMerger=worker
--strategy=ManifestMerger=worker
--strategy=AndroidManifestMerger=worker
--strategy=ManifestMerger=worker
--strategy=AndroidManifestMerger=worker



--strategy=Aapt2Optimize=worker--strategy=AARGenerator=worker--strategy=ProcessDatabinding=worker--strategy=GenerateDataBindingBaseClasses=workerhost_machine_resource_optimizationsexecution
--persistent_multiplex_android_dex_desugar
使用工作站啟用持續的多工處理 Android dex 和去糖動作。
展開至:
  --persistent_android_dex_desugar
  --internal_persistent_multiplex_android_dex_desugar

標記: host_machine_resource_optimizationsexecution
--persistent_multiplex_android_resource_processor
使用工作站啟用永久多工 Android 資源處理器。
展開至:
--persistent_android_resource_processor
--modify_execution_info=AaptPackage=+supports-multiplex-workers
--modify_execution_info=AndroidResourceParser=+supports-multiplex-workers
--modify_execution_info=AndroidResourceValidator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceCompiler=+supports-multiplex-workers
--modify_execution_info=RClassGenerator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceLink=+supports-multiplex-workers
--modify_execution_info=AndroidAapt2=+supports-multiplex-workers
--modify_execution_info=AndroidAssetMerger=+supports-multiplex-workers
--modify_execution_info=AndroidResourceMerger=+supports-multiplex-workers
--modify_execution_info=AndroidCompiledResourceMerger=+supports-multiplex-workers
--modify_execution_info=ManifestMerger=+supports-multiplex-workers
--modify_execution_info=AndroidManifestMerger=+supports-multiplex-workers
--modify_execution_info=ManifestMerger=+supports-multiplex-workers
--modify_execution_info=AndroidManifestMerger=+supports-multiplex-workers
--modify_execution_info=Aapt2Optimize=+supports-multiplex-workers
1}
--modify_execution_info=AARGenerator=+supports-multiplex-workershost_machine_resource_optimizationsexecution
--persistent_multiplex_android_tools
啟用永久和多工處理 Android 工具 (DEX 處理、脫糖、資源處理)。
展開至:
  --internal_persistent_multiplex_busybox_tools
  --persistent_multiplex_android_resource_processor
  --persistent_multiplex_android_dex_desugar

標記: host_machine_resource_optimizationsexecution
--[no]use_target_platform_for_tests 預設值:「false」
如果為 true,Bazel 會使用目標平台來執行測試,而非測試執行群組。
標記: execution
設定用於執行動作的工具鍊的選項:
--android_compiler=<a string> 預設:查看說明
Android 目標編譯器。
標記:affects_outputsloading_and_analysisloses_incremental_state
--android_crosstool_top=<a build target label> 預設值:「//external:android/crosstool」
用於 Android 建構作業的 C++ 編譯器的位置。
標記:affects_outputschanges_inputsloading_and_analysisloses_incremental_state
--android_grte_top=<a label> 預設:查看說明
Android 目標 grte_top。
標記:changes_inputsloading_and_analysisloses_incremental_state
--android_manifest_merger=<legacy, android or force_android> 預設值:「android」
選取要用於 android_binary 規則的資訊清單合併工具。協助從舊版合併工具轉換至 Android 資訊清單合併工具的旗標。
標記:affects_outputsloading_and_analysisloses_incremental_state
--android_platforms=<a build target label> 預設值:「」
設定 android_binary 目標使用的平台。如果指定多個平台,二進位檔就是笨重的 APK,其中包含每個指定目標平台的原生二進位檔。
標記:changes_inputsloading_and_analysisloses_incremental_state
--android_sdk=<a build target label> 預設值:「@bazel_tools//tools/android:sdk」
指定用於建構 Android 應用程式的 Android SDK/平台。
標記:changes_inputsloading_and_analysisloses_incremental_state
--apple_crosstool_top=<a build target label> 預設值:「@bazel_tools//tools/cpp:toolchain」
用於 Apple 和 Objc 規則及其依附元件的 Crosstool 套件標籤。
標記:loses_incremental_statechanges_inputs
--cc_output_directory_tag=<a string> 預設值:「」
指定要新增至設定目錄的後置字串。
標記:affects_outputs
--compiler=<a string> 預設:查看說明
用於編譯目標的 C++ 編譯器。
標記:loading_and_analysisexecution
--coverage_output_generator=<a build target label> 預設值:「@bazel_tools//tools/test:lcov_merger」
用於後處理原始涵蓋率報表的二進位檔位置。這必須是包含單一檔案 (即二進位) 的檔案群組。預設值為「//tools/test:lcov_merger」。
標記:changes_inputsaffects_outputsloading_and_analysis
--coverage_report_generator=<a build target label> 預設值:「@bazel_tools//tools/test:coverage_report_generator」
用於產生涵蓋率報表的二進位檔案位置。這必須是包含單一檔案 (即二進位) 的檔案群組。預設值為「//tools/test:coverage_report_generator」。
標記:changes_inputsaffects_outputsloading_and_analysis
--coverage_support=<a build target label> 預設值:「@bazel_tools//tools/test:coverage_support」
每個測試動作收集程式碼涵蓋率的測試動作所需的支援檔案位置。預設值為「//tools/test:coverage_support」。
標記:changes_inputsaffects_outputsloading_and_analysis
--custom_malloc=<a build target label> 預設:查看說明
指定自訂 Malloc 實作。這項設定會覆寫建構規則中的 Malloc 屬性。
標記:changes_inputsaffects_outputs
會累積 --experimental_add_exec_constraints_to_targets=<a '<RegexFilter>=<label1>[,<label2>,...]' assignment> 個用途
逗號分隔的規則運算式清單,每個運算式都會按照「-」(排除運算式) 開頭,指派 (=) 至以半形逗號分隔的限制值目標清單。如果目標未符合排除運算式,且至少有一個正運算式,系統會假設該運算式將限制值宣告為執行限制,並據此執行該目標工具鍊的解析作業。範例://demo,-test=@platforms//cpus:x86_64 會在 //demo 底下的任何目標中加入「x86_64」,但名稱包含「test」的目標除外。
標記:loading_and_analysis
--[no]experimental_include_xcode_execution_requirements 預設值:「false」
如果已設定,則在每個 Xcode 動作中加入「requires-xcode:{version}」執行要求。如果 Xcode 版本具有連字號標籤,請同時加入「requires-xcode-label:{version_label}」執行要求。
標記:loses_incremental_stateloading_and_analysisexecution
--[no]experimental_prefer_mutual_xcode預設值:「true」
如果為 true,請使用本機和遠端可用的最新 Xcode。如果設為 False 或沒有共同可用的版本,請使用 xcode-select 選取的本機 Xcode 版本。
標記:loses_incremental_state
--extra_execution_platforms=<comma-separated list of options> 預設值:「」
可做為執行平台來執行動作的平台。平台可以根據確切目標或目標模式指定。系統會先考量這些平台,再透過暫存_execution_platforms() 宣告到 WORKSPACE 檔案中的平台。這個選項只能設定一次,之後的項目會覆寫先前的旗標設定。
標記:execution
會累積 --extra_toolchains=<comma-separated list of options> 個用途
在工具鍊解析期間要考量的工具鍊規則。工具鍊可以根據確切目標或目標模式指定。系統會先考量這些工具鍊,再透過暫存_toolchains() 在 WORKSPACE 檔案內宣告的項目。
標記:affects_outputschanges_inputsloading_and_analysis
--grte_top=<a label> 預設:查看說明
已勾選 libc 程式庫的標籤。預設值是由跨工具工具鍊選取,您幾乎不需要覆寫這個值。
標記:action_command_linesaffects_outputs
--host_compiler=<a string> 預設:查看說明
免人工管理標記。將在日後推出的版本中移除。
標記:loading_and_analysisexecution
--host_grte_top=<a label> 預設:查看說明
如果指定此選項,這項設定會覆寫執行設定的 libc 頂層目錄 (--grte_top)。
標記:action_command_linesaffects_outputs
--host_platform=<a build target label> 預設值:「@local_config_platform//:host」
描述主機系統的平台規則標籤。
標記:affects_outputschanges_inputsloading_and_analysis
--[no]incompatible_dont_enable_host_nonhost_crosstool_features預設值:「true」
如果設為 True,Bazel 就不會啟用 c++ 工具鍊中的「主機」和「非主機」功能 (詳情請參閱 https://github.com/bazelbuild/bazel/issues/7407)。
標記:loading_and_analysisincompatible_change
--[no]incompatible_enable_android_toolchain_resolution預設值:「true」
使用工具鍊解析度選取 Android 規則 (Starlark 和原生) 的 Android SDK
標記: loading_and_analysisincompatible_change
--[no]incompatible_enable_apple_toolchain_resolution 預設值:「false」
使用工具鍊解析功能,選取 Apple SDK for Apple 規則 (Starlark 和原生程式碼)
代碼: loading_and_analysisincompatible_change
--[no]incompatible_make_thinlto_command_lines_standalone預設值:「true」
這個標記為 noop,且已排定移除時間。
標記:no_opincompatible_change
--[no]incompatible_remove_legacy_whole_archive預設值:「true」
如果設為 True,Bazel 預設不會連結整個封存檔中的程式庫依附元件 (如需遷移操作說明,請參閱 https://github.com/bazelbuild/bazel/issues/7362)。
標記:loading_and_analysisincompatible_change
--[no]incompatible_require_ctx_in_configure_features預設值:「true」
這個標記為 noop,且已排定移除時間。
標記:no_opincompatible_change
--[no]incompatible_strip_executable_safely 預設值:「false」
如果為 true,可執行檔的移除動作會使用旗標 -x,這不會破壞動態符號解析功能。
標記:action_command_linesincompatible_change
--[no]interface_shared_objects預設值:「true」
如果工具鍊支援介面共用物件,請使用介面共用物件。所有 ELF 工具鍊目前都支援這項設定。
標記:loading_and_analysisaffects_outputsaffects_outputs
--ios_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
指定用於建構 iOS 應用程式的 iOS SDK 版本。如果未指定,則會使用「xcode_version」中的預設 iOS SDK 版本。
標記:loses_incremental_state
--macos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
指定要用於建構 macOS 應用程式的 macOS SDK 版本。如果未指定,系統會使用「xcode_version」中的預設 macOS SDK 版本。
標記:loses_incremental_state
--minimum_os_version=<a string> 預設:查看說明
編譯目標的最低作業系統版本。
標記:loading_and_analysisaffects_outputs
--platform_mappings=<a relative path> 預設值:「」
對應檔案的位置,用於說明如未設定任何平台,或該平台已存在時要設定哪些平台,該平台會使用哪個平台。此值必須與主要工作區根層級相關。預設值為「platform_mappings」(直接位於工作區根目錄下的檔案)。
標記:affects_outputschanges_inputsloading_and_analysisimmutable
--platforms=<a build target label> 預設值:「」
平台規則標籤,用於說明目前指令的目標平台。
標記:affects_outputschanges_inputsloading_and_analysis
--python2_path=<a string> 預設:查看說明
已淘汰,無人工管理,已由「--incompatible_use_python_toolchains」停用。
標記:no_opdeprecated
--python3_path=<a string> 預設:查看說明
已淘汰,無人工管理,已由「--incompatible_use_python_toolchains」停用。
標記:no_opdeprecated
--python_path=<a string> 預設:查看說明
為在目標平台執行 Python 目標而叫用的 Python 解譯器絕對路徑。已淘汰;已由 --incompatible_use_python_toolchains 停用。
標記:loading_and_analysisaffects_outputs
--python_top=<a build target label> 預設:查看說明
代表已叫用 Python 解譯器在目標平台上執行 Python 目標的 py_runtime 標籤。已淘汰;已由 --incompatible_use_python_toolchains 停用。
標記:loading_and_analysisaffects_outputs
--tvos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
指定用於建構 tvOS 應用程式的 tvOS SDK 版本。如果未指定,系統會使用「xcode_version」中的預設 tvOS SDK 版本。
標記:loses_incremental_state
--watchos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
指定用於建構 watchOS 應用程式的 watchOS SDK 版本。如果未指定,系統會使用「xcode_version」中的預設 watchOS SDK 版本。
標記:loses_incremental_state
--xcode_version=<a string> 預設:查看說明
如有指定,系統會使用指定版本的 Xcode 進行相關建構動作。如未指定,系統會使用執行程式預設版本的 Xcode。
標記:loses_incremental_state
--xcode_version_config=<a build target label> 預設值:「@bazel_tools//tools/cpp:host_xcodes」
在建構設定中選取 Xcode 版本所使用的 xcode_config 規則標籤。
標記:loses_incremental_stateloading_and_analysis
控制指令輸出內容的選項:
--[no]apple_generate_dsym 預設值:「false」
是否要產生偵錯符號 (.dSYM) 檔案。
標記:affects_outputsaction_command_lines
如果為 true,請針對所有目標建構執行檔案符號連結樹系。設為 false 時,請只在本地動作、測試或執行指令必要時寫入。
標記:affects_outputs
--[no]build_runfile_manifests預設值:「true」
如果為 true,請為所有目標寫入執行檔案資訊清單。如果設為 false,請省略這些參數。如果為 false,本機測試就無法執行。
標記:affects_outputs
--[no]build_test_dwp 預設值:「false」
啟用後,以靜態方式建構 C++ 測試時,系統也會自動建構測試二進位檔的 .dwp 檔案。
標記:loading_and_analysisaffects_outputs
--cc_proto_library_header_suffixes=<comma-separated set of options> 預設值:「.pb.h」
設定 cc_proto_library 建立的標頭檔案後置字串。
標記:affects_outputsloading_and_analysis
--cc_proto_library_source_suffixes=<comma-separated set of options> 預設值:「.pb.cc」
設定 cc_proto_library 建立的來源檔案後置字串。
標記:affects_outputsloading_and_analysis
--[no]experimental_proto_descriptor_sets_include_source_info 預設值:「false」
針對 proto_library 中的替代 Java API 版本執行額外動作。
標記:affects_outputsloading_and_analysisexperimental
--[no]experimental_proto_extra_actions 預設值:「false」
針對 proto_library 中的替代 Java API 版本執行額外動作。
標記:affects_outputsloading_and_analysisexperimental
--[no]experimental_save_feature_state 預設值:「false」
將已啟用和要求的功能狀態儲存為編譯的輸出內容。
標記:affects_outputsexperimental
--fission=<a set of compilation modes> 預設值:「no」
指定哪些編譯模式會對 C++ 編譯和連結使用擴散。可以是 {'fastbuild', 'dbg', 'opt'} 的組合或特殊值「yes」,即可啟用所有模式,而設為「no」以停用所有模式。
標記:loading_and_analysisaction_command_linesaffects_outputs
--[no]incompatible_always_include_files_in_data預設值:「true」
如果為 true,原生規則會將資料依附元件的 <code>DefaultInfo.files</code> 新增至 runfile,以符合 Starlark 規則的建議行為 (https://bazel.build/extending/rules#runfiles_features_to_avoid) 。
標記:affects_outputsincompatible_change
--[no]legacy_external_runfiles預設值:「true」
如果為 true,請針對 .runfiles/wsname/external/repo 和 .runfiles/repo 中的外部存放區建構 runfile symlink 樹系。
標記:affects_outputs
--[no]objc_generate_linkmap 預設值:「false」
指定是否要產生連結對應檔案。
標記:affects_outputs
--[no]save_temps 預設值:「false」
如有設定,系統會儲存 gcc 的暫時輸出。其中包括 .s 檔案 (組合器程式碼)、.i 檔案 (預先處理的 C) 和 .ii 檔案 (預先處理的 C++)。
標記:affects_outputs
可讓使用者設定預定輸出內容的選項,這會影響其值,但其值與存在不同:
會累積 --action_env=<a 'name=value' assignment with an optional value part> 個用途
指定要用於目標設定動作的環境變數組合。變數可以用名稱指定;在此情況下,值會從叫用環境取得;您也可以用 name=value 組合 (用來設定與叫用環境無關的值)。這個選項可以多次使用;對於同一個變數而言,選項有「最新的勝出項目」,以及因不同變數而累積的選項。
標記:action_command_lines
--android_cpu=<a string> 預設值:「armeabi-v7a」
Android 目標 CPU。
標記:affects_outputsloading_and_analysisloses_incremental_state
--[no]android_databinding_use_androidx預設值:「true」
產生與 AndroidX 相容的資料繫結檔案。這個函式只能搭配資料繫結 v2 使用。這個旗標為免人工管理。
標記:affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]android_databinding_use_v3_4_args預設值:「true」
將 Android Databinding v2 與 3.4.0 引數搭配使用。這個旗標為免人工管理。
標記:affects_outputsloading_and_analysisloses_incremental_stateexperimental
--android_dynamic_mode=<off, default or fully> 預設值:「關閉」
決定當 cc_binary 未明確建立共用程式庫時,是否要動態連結 Android 規則的 C++ 解碼。「default」表示 pzel 會選擇是否要動態連結。「完整」表示所有程式庫將動態連結。如果關閉,則主要會以靜態模式連結所有程式庫。
標記:affects_outputsloading_and_analysis
--android_manifest_merger_order=<alphabetical, alphabetical_by_configuration or dependency> 預設值:「alphabetical」
設定要傳遞至 Android 二進位檔資訊清單合併工具的資訊清單順序。ALPHABETICAL 表示資訊清單會依照執行作業根目錄的路徑排序。ALPHABETICAL_BY_CONFIGURATION 代表資訊清單會依照輸出目錄中設定目錄的路徑排序。DEPENDENCY 表示資訊清單會按照各個程式庫的資訊清單排序,在依附元件的資訊清單前面。
標記:action_command_linesexecution
--[no]android_resource_shrinking 預設值:「false」
為使用 ProGuard 的 android_binary APK 啟用資源縮減功能。
標記:affects_outputsloading_and_analysis
--[no]build_python_zip 預設值:「auto」
建構 Python 執行檔 ZIP 檔案;在 Windows 上,關閉其他平台
標記: affects_outputs
會累積 --catalyst_cpus=<comma-separated list of options> 個用途
用於建構 Apple Catalyst 二進位檔的架構清單 (以半形逗號分隔)。
標記:loses_incremental_stateloading_and_analysis
--[no]collect_code_coverage 預設值:「false」
如有指定,Bazel 就會檢測程式碼 (盡可能使用離線檢測功能),並在測試期間收集涵蓋率資訊。只有相符的目標 --instrumentation_filter 會受到影響。一般而言,不應直接指定這個選項,請改用「bazelCoverage」指令。
標記:affects_outputs
--compilation_mode=<fastbuild, dbg or opt> [-c] 預設值:「Fastbuild」
指定二進位檔的建構模式。值:「fastbuild」、「dbg」、「opt」。
標記:affects_outputsaction_command_lines
會累積 --conlyopt=<a string> 個用途
編譯 C 來源檔案時,可傳送至 gcc 的其他選項。
標記:action_command_linesaffects_outputs
會累積 --copt=<a string> 個用途
傳送至 gcc 的其他選項。
標記:action_command_linesaffects_outputs
--cpu=<a string> 預設值:「」
目標 CPU。
標記:changes_inputsaffects_outputs
--cs_fdo_absolute_path=<a string> 預設:查看說明
使用 CSFDO 設定檔資訊最佳化編譯。為內含設定檔、原始或已建立索引 LLVM 設定檔的 ZIP 檔案指定絕對路徑名稱。
標記:affects_outputs
--cs_fdo_instrument=<a string> 預設:查看說明
產生具有情境敏感 FDO 檢測的二進位檔。使用 Clang/LLVM 編譯器時,也接受在執行階段傾印原始設定檔檔案的目錄名稱。
標記:affects_outputs
--cs_fdo_profile=<a build target label> 預設:查看說明
cs_fdo_profile,代表要用於最佳化的結構定義敏感設定檔。
標記:affects_outputs
會累積 --cxxopt=<a string> 個用途
在編譯 C++ 來源檔案時,傳送至 gcc 的其他選項。
標記:action_command_linesaffects_outputs
會累積 --define=<a 'name=value' assignment> 個用途
每個 --Definition 選項會指定建構變數的指派作業。如果變數有多個值,則會傳回最後一個值。
標記:changes_inputsaffects_outputs
--dynamic_mode=<off, default or fully> 預設值:「default」
決定 C++ 二進位檔是否會動態連結。「default」表示 Bazel 會選擇是否要動態連結。「完整」表示所有程式庫將動態連結。如果關閉,則主要會以靜態模式連結所有程式庫。
標記:loading_and_analysisaffects_outputs
--[no]enable_fdo_profile_absolute_path預設值:「true」
如果設定此設定,使用 fdo_清楚說明_profile_path 會引發錯誤。
標記:affects_outputs
--[no]enable_runfiles 預設值:「auto」
啟用執行檔案符號連結樹狀結構。根據預設,在 Windows 在其他平台上是關閉狀態。
標記:affects_outputs
會累積 --experimental_action_listener=<a build target label> 個用途
建議使用切面。使用 action_listener 將 extra_action 附加至現有的建構動作。
標記:executionexperimental
--[no]experimental_android_compress_java_resources 預設值:「false」
壓縮 APK 中的 Java 資源
標記:affects_outputsloading_and_analysisexperimental
--[no]experimental_android_databinding_v2預設值:「true」
使用 Android 資料繫結第 2 版。這個旗標為免人工管理。
標記:affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]experimental_android_resource_shrinking 預設值:「false」
為使用 ProGuard 的 android_binary APK 啟用資源縮減功能。
標記:affects_outputsloading_and_analysis
--[no]experimental_android_rewrite_dexes_with_rex 預設值:「false」
使用 Rex 工具重新編寫 dex 檔案
標記:affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]experimental_collect_code_coverage_for_generated_files 預設值:「false」
如有指定,Bazel 也會針對產生的檔案產生涵蓋率資訊。
標記:affects_outputs
--experimental_objc_fastbuild_options=<comma-separated list of options> 預設值:「-O0,-DDEBUG=1」
使用這些字串做為 objc Fastbuild 編譯器選項。
標記:action_command_lines
--[no]experimental_omitfp 預設值:「false」
如果為 True,請使用 libunwind 進行堆疊展開,並使用 -fomit-frame-pointer 和 -fasync-unwind-tables 編譯。
標記:action_command_linesaffects_outputsexperimental
--experimental_output_paths=<off, content or strip> 預設值:「關閉」
要在輸出樹狀結構規則中的哪個位置寫入輸出內容,特別是針對多平台 / 多設定版本。這是非常實驗性。詳情請參閱 https://github.com/bazelbuild/bazel/issues/6526。Starlark 動作可將「supports-path-mapping」鍵新增至「execution_requirements」索引,選擇採用路徑對應。
標記:loses_incremental_statebazel_internal_configurationaffects_outputsexecution
會累積 --experimental_override_name_platform_in_output_dir=<a 'label=value' assignment> 個用途
每個項目均應採用格式為「label=value」,其中標籤是指平台,而值則是要在輸出路徑中使用的簡稱。僅適用於 --experimental_platform_in_output_dir 為 true 的情況。命名優先順序最高。
標記:affects_outputsexperimental
--[no]experimental_platform_in_output_dir 預設值:「false」
如果為 true,輸出目錄名稱會使用目標平台的簡稱,而不是 CPU。確切機制屬於實驗性質,隨時可能變更:首先,在極少數的情況下,--platforms 選項沒有確切的值,系統會使用平台選項的雜湊值。接下來,如果目前平台的任何簡稱是由 --experimental_override_name_platform_in_output_dir 註冊,系統會使用簡稱。然後,如果已設定 --experimental_use_platforms_in_output_dir_legacy_heuristic,請使用以目前平台標籤為依據的簡稱。最後,平台選項的雜湊只有在不得已的情況下才能使用。
標記:affects_outputsexperimental
--[no]experimental_use_llvm_covmap 預設值:「false」
如有指定,Bazel 會在啟用 collect_code_coverage 時,產生 llvm-cov 涵蓋範圍地圖資訊,而非 gcov。
標記:changes_inputsaffects_outputsloading_and_analysisexperimental
--[no]experimental_use_platforms_in_output_dir_legacy_heuristic預設值:「true」
請將這個標記僅用於建議的遷移或測試策略。請注意,經驗法則有已知的不足之處,建議您改用 --experimental_override_name_platform_in_output_dir。
標記:affects_outputsexperimental
--fat_apk_cpu=<comma-separated set of options> 預設值:「armeabi-v7a」
設定這個選項會啟用笨重 APK,此 APK 會包含所有指定目標架構的原生二進位檔,例如--fat_apk_cpu=x86,armeabi-v7a. 如果指定這個旗標,Android_binary 規則的依附元件會忽略 --android_cpu。
標記:affects_outputsloading_and_analysisloses_incremental_state
--[no]fat_apk_hwasan 預設值:「false」
免人工管理標記。將在日後推出的版本中移除。
標記:no_op
--fdo_instrument=<a string> 預設:查看說明
使用 FDO 檢測功能產生二進位檔。使用 Clang/LLVM 編譯器時,也接受在執行階段傾印原始設定檔檔案的目錄名稱。
標記:affects_outputs
--fdo_optimize=<a string> 預設:查看說明
使用 FDO 設定檔資訊最佳化編譯。指定含有 .gcda 檔案樹狀結構的 ZIP 檔案名稱、包含自動設定檔的 afdo 檔案,或是 LLVM 設定檔檔案。此旗標也接受指定為標籤的檔案 (例如「//foo/bar:file.afdo」,因此您可能需要將「exports_files」指令加入對應的套件),以及指向「fdo_profile」目標的標籤。此旗標將由「fdo_profile」規則取代。
標記:affects_outputs
--fdo_prefetch_hints=<a build target label> 預設:查看說明
使用快取預先擷取提示。
標記:affects_outputs
--fdo_profile=<a build target label> 預設:查看說明
代表要用於最佳化的設定檔 fdo_profile。
標記:affects_outputs
會累積 --features=<a string> 個用途
系統會針對在目標設定中建立的目標,預設啟用或停用特定功能。如果指定 -<feature>,該功能就會停用。排除功能一律會覆寫正值。另請參閱 --host_features
標記: changes_inputsaffects_outputs
--[no]force_pic 預設值:「false」
如果啟用這個選項,所有 C++ 編譯就會產生位置獨立程式碼 (「-fPIC」),連結偏好 PIC 預先建構程式庫,而非非 PIC 程式庫,而連結會產生位置獨立的執行檔 (「-pie」)。
標記:loading_and_analysisaffects_outputs
會累積 --host_action_env=<a 'name=value' assignment with an optional value part> 個用途
指定適用於執行設定動作的環境變數組合。變數可以用名稱指定;在此情況下,值會從叫用環境取得;您也可以用 name=value 組合 (用來設定與叫用環境無關的值)。這個選項可以多次使用;對於同一個變數而言,選項有「最新的勝出項目」,以及因不同變數而累積的選項。
標記:action_command_lines
--host_compilation_mode=<fastbuild, dbg or opt> 預設值:「opt」
指定建構期間用來內建工具的模式。值:「fastbuild」、「dbg」、「opt」。
標記:affects_outputsaction_command_lines
會累積 --host_conlyopt=<a string> 個用途
在執行設定中編譯 C (而非 C++) 來源檔案時,可傳送至 C 編譯器的其他選項。
標記:action_command_linesaffects_outputs
會累積 --host_copt=<a string> 個用途
針對執行設定中建立的工具,傳送至 C 編譯器的其他選項。
標記:action_command_linesaffects_outputs
--host_cpu=<a string> 預設值:「」
主機 CPU。
標記:changes_inputsaffects_outputs
會累積 --host_cxxopt=<a string> 個用途
針對執行設定中建立的工具,傳送至 C++ 編譯器的其他選項。
標記:action_command_linesaffects_outputs
會累積 --host_features=<a string> 個用途
針對在執行設定中建立的目標,系統預設會啟用或停用特定功能。如果指定 -<feature>,該功能就會停用。排除功能一律會覆寫正值。
標記:changes_inputsaffects_outputs
--host_force_python=<PY2 or PY3> 預設:查看說明
覆寫執行設定的 Python 版本。可以是「PY2」或「PY3」。
標記:loading_and_analysisaffects_outputs
會累積 --host_linkopt=<a string> 個用途
在執行設定中連結工具時,將傳送至連結器的其他選項。
標記:action_command_linesaffects_outputs
--host_macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
主機目標的最低相容 macOS 版本。如果未指定,請使用「macos_sdk_version」。
標記:loses_incremental_state
會累積 --host_per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options> 個用途
在執行設定中編譯特定檔案時,選擇性傳送至 C/C++ 編譯器的其他選項。這個選項可以多次傳送。語法:regex_filter@option_1,option_2,...,option_n. regex_filter 代表包含和排除規則運算式模式的清單 (另請參閱 --instrumentation_filter)。 option_1 表示選項_n 代表任意指令列選項。如果選項中含有半形逗號,必須使用反斜線加上引號。選項可以包含 @。只有第一個 @ 用來分割字串。範例:--host_per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 會在 //foo/ 中所有 cc 檔案的 gcc 命令列中加上 -O0 指令列選項 ( bar.cc 除外)。
標記:action_command_linesaffects_outputs
--[no]incompatible_auto_exec_groups 預設值:「false」
啟用後,系統會自動為規則使用的每個工具鍊建立執行群組。為此,工作規則需要在其動作中指定「toolchain」參數。詳情請參閱 https://github.com/bazelbuild/bazel/issues/17134。
標記:affects_outputsincompatible_change
--[no]incompatible_merge_genfiles_directory預設值:「true」
如果為 true,genfiles 目錄會併入 bin 目錄。
標記:affects_outputsincompatible_change
--[no]instrument_test_targets 預設值:「false」
啟用涵蓋率功能後,用於指定是否要考量檢測測試規則。設定之後,系統會檢測 --instrumentation_filter 包含的測試規則。否則,測試規則一律會從涵蓋率檢測作業中排除。
標記:affects_outputs
--instrumentation_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths> 預設值:「-/javatests[/:],-/test/java[/:]」
涵蓋率啟用後,系統只會檢測規則中含有指定規則運算式 (以規則運算式為準) 所含名稱的規則。系統會改為排除前置字串「-」。請注意,只有在已啟用 --instrument_test_targets 時,系統才會檢測非測試規則。
標記:affects_outputs
--ios_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
目標模擬器和裝置相容的 iOS 最低版本。如果未指定,請使用「ios_sdk_version」。
標記:loses_incremental_state
會累積 --ios_multi_cpus=<comma-separated list of options> 個用途
用於建構 ios_application 的架構清單 (以半形逗號分隔)。結果是通用二進位檔,其中包含所有指定架構。
標記:loses_incremental_stateloading_and_analysis
--[no]legacy_whole_archive預設值:「true」
已淘汰,並由 --incompatible_remove_legacy_whole_Archive (詳情請參閱 https://github.com/bazelbuild/bazel/issues/7362)。開啟時,針對含有 linkshared=True 且含有 linkstatic=True 或「-static」連結的 cc_binary 規則的 --whole-Archive。這僅適用於回溯相容性。更理想的替代方法是在必要時使用 alwayslink=1。
標記:action_command_linesaffects_outputsdeprecated
會累積 --linkopt=<a string> 個用途
連結時傳送至 gCC 的其他選項。
標記:action_command_linesaffects_outputs
會累積 --ltobackendopt=<a string> 個用途
這是傳送至 LTO 後端步驟的其他選項 (在 --features=thin_lto 之下)。
標記:action_command_linesaffects_outputs
會累積 --ltoindexopt=<a string> 個用途
這個選項可讓你傳送至 LTO 索引步驟 (位於 --features=thin_lto 下方)。
標記:action_command_linesaffects_outputs
會累積 --macos_cpus=<comma-separated list of options> 個用途
用於建構 Apple macOS 二進位檔的逗號分隔架構清單。
標記:loses_incremental_stateloading_and_analysis
--macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
目標的相容 macOS 最低版本。如果未指定,請使用「macos_sdk_version」。
標記:loses_incremental_state
--memprof_profile=<a build target label> 預設:查看說明
使用 memprof 設定檔。
標記:affects_outputs
--[no]objc_debug_with_GLIBCXX 預設值:「false」
如果已設定,並將編譯模式設為「dbg」,請定義 GLIBCXX_DEBUG、GLIBCXX_DEBUG_PEDANTIC 和 GLIBCPP_CONCEPT_CHECKS。
標記:action_command_lines
--[no]objc_enable_binary_stripping 預設值:「false」
是否要在連結的二進位檔上執行符號和去解碼器去除。如果同時指定這個旗標和 --compile_mode=opt,系統就會執行二進位檔清理作業。
標記:action_command_lines
會累積 --objccopt=<a string> 個用途
編譯 Objective-C/C++ 來源檔案時,可傳送至 gcc 的其他選項。
標記:action_command_lines
會累積 --per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options> 個用途
編譯特定檔案時選擇性傳送至 gcc 的其他選項。這個選項可以多次傳送。語法:regex_filter@option_1,option_2,...,option_n. regex_filter 代表包含和排除規則運算式模式的清單 (另請參閱 --instrumentation_filter)。 option_1 表示選項_n 代表任意指令列選項。如果選項中含有半形逗號,必須使用反斜線加上引號。選項可以包含 @。只有第一個 @ 用來分割字串。範例:--per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 會在 //foo/ 中所有 cc 檔案的 gcc 命令列中加上 -O0 指令列選項 ( bar.cc 除外)。
標記:action_command_linesaffects_outputs
會累積 --per_file_ltobackendopt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options> 個用途
編譯特定後端物件時,選擇性傳遞至 LTO 後端的其他選項 (在 --features=thin_lto 底下)。這個選項可以多次傳送。語法:regex_filter@option_1,option_2,...,option_n. regex_filter 代表包含和排除規則運算式模式的清單, option_1 代表選項_n 代表任意指令列選項。如果選項中含有半形逗號,必須使用反斜線加上引號。選項可以包含 @。只有第一個 @ 用來分割字串。範例:--per_file_ltobackendopt=//foo/.*\.o,-//foo/bar\.o@-O0 會在 //foo/ 中所有檔案的 LTO 後端指令列中加入 -O0 指令列選項,但 bar.o 除外。
標記: action_command_linesaffects_outputs
--platform_suffix=<a string> 預設:查看說明
指定要新增至設定目錄的後置字串。
標記:loses_incremental_stateaffects_outputsloading_and_analysis
--propeller_optimize=<a build target label> 預設:查看說明
使用 Propeller 設定檔資訊將建構目標最佳化。螺旋槳設定檔必須包含至少一個檔案:CCC 設定檔和 ld 設定檔。此旗標接受建構標籤,該標籤必須參照探測器設定檔輸入檔案。舉例來說,定義標籤的 BUILD 檔案可能必須在 a/b/BUILD:propeller_optimize( name = "propeller_profile", cc_profile = "propeller_cc_profile.txt", ld_profile = "propeller_ld_profile.txt",)Exports_files 中,您都必須新增至對應檔案才能檢視。選項必須使用以下格式:--propeller_optimize=//a/b:propeller_profile
標記: action_command_linesaffects_outputs
--propeller_optimize_absolute_cc_profile=<a string> 預設:查看說明
Propeller 最佳化建構作業的 cc_profile 檔案的絕對路徑名稱。
標記:affects_outputs
--propeller_optimize_absolute_ld_profile=<a string> 預設:查看說明
Propeller 最佳化版本的 ld_profile 檔案的絕對路徑名稱。
標記:affects_outputs
--run_under=<a prefix in front of command> 預設:查看說明
在「test」和「run」指令的執行檔之前插入的前置字串。如果值為「foo -bar」,且執行命令列是「test_binary -baz」,則最終命令列是「foo -bar test_binary -baz」。這也可以是執行檔目標的標籤。例如:「valgrind」、「strace」、「strace -c」、「valgrind --quiet --num-callers=20」、「//package:target'」、「//package:target --options」。
標記:action_command_lines
--[no]share_native_deps預設值:「true」
如果為 True,系統會在不同目標之間共用包含相同功能的原生資料庫
標記: loading_and_analysisaffects_outputs
--[no]stamp 預設值:「false」
含有日期、使用者名稱、主機名稱、工作區資訊等的戳記二進位檔。
標記: affects_outputs
--strip=<always, sometimes or never> 預設值:「有時」
指定是否要移除二進位檔和共用程式庫 (使用「-Wl,--strip-debug」)。「sometimes」的預設值表示 iff --compile_mode=fastbuild。
標記:affects_outputs
會累積 --stripopt=<a string> 個用途
產生「<name>.stripped」二進位檔時的其他選項。
標記:action_command_linesaffects_outputs
會累積 --tvos_cpus=<comma-separated list of options> 個用途
用於建構 Apple tvOS 二進位檔的架構清單 (以半形逗號分隔)。
標記:loses_incremental_stateloading_and_analysis
--tvos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
目標模擬器和裝置相容的最低 tvOS 版本。如果未指定,請使用「tvos_sdk_version」。
標記:loses_incremental_state
會累積 --visionos_cpus=<comma-separated list of options> 個用途
用於建構 Apple visionOS 二進位檔的架構清單 (以半形逗號分隔)。
標記:loses_incremental_stateloading_and_analysis
會累積 --watchos_cpus=<comma-separated list of options> 個用途
用於建構 Apple watchOS 二進位檔的架構清單 (以半形逗號分隔)。
標記:loses_incremental_stateloading_and_analysis
--watchos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
目標模擬器和裝置適用的最低相容 watchOS 版本。如果未指定,請使用「watchos_sdk_version」。
標記:loses_incremental_state
--xbinary_fdo=<a build target label> 預設:查看說明
使用 XbinaryFDO 設定檔資訊最佳化編譯。指定預設跨二進位設定檔的名稱。這個選項搭配 --fdo_instrument/--fdo_optimize/--fdo_profile 與未指定 xbinary_fdo 的情況一起採用時,一律會採用這些選項。
標記:affects_outputs
會影響 Bazel 強制執行有效建構輸入內容 (規則定義、旗標組合等) 的選項:
--auto_cpu_environment_group=<a build target label> 預設值:「」
宣告用於將 CPU 值自動對應至 target_environment 值的環境_group。
標記:changes_inputsloading_and_analysisexperimental
--[no]check_licenses 預設值:「false」
確認相依套件設下的授權限制不會與建構的目標發布模式相衝突。根據預設,系統不會勾選授權。
標記:build_file_semantics
--[no]check_visibility預設值:「true」
如果停用這項設定,目標依附元件的瀏覽權限錯誤會降級為警告。
標記:build_file_semantics
--[no]desugar_for_android預設值:「true」
是否要在 dex 之前對 Java 8 位元碼進行脫糖。
標記:affects_outputsloading_and_analysisloses_incremental_state
--[no]desugar_java8_libs 預設值:「false」
是否要在舊版裝置的應用程式中納入支援的 Java 8 程式庫。
標記:affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]enforce_constraints預設值:「true」
檢查每個目標是否相容,並在任何目標含有不支援相同環境的依附元件時回報錯誤
標記: build_file_semantics
--[no]experimental_check_desugar_deps預設值:「true」
是否要在 Android 二進位檔層級仔細檢查正確的脫糖程序。
標記:eagerness_to_exitloading_and_analysisexperimental
--experimental_import_deps_checking=<off, warning or error> 預設值:「關閉」
啟用後,請檢查 aar_import 的依附元件是否完成。這項強制執行作業可能會破壞建構,也可能只會產生警告。
標記:loading_and_analysis
--experimental_strict_java_deps=<off, warn, error, strict or default> 預設值:「default」
如果為 true,檢查 Java 目標是否明確宣告所有直接使用的目標做為依附元件。
標記:build_file_semanticseagerness_to_exit
--[no]incompatible_check_testonly_for_output_files 預設值:「false」
如果啟用這個選項,請查詢產生規則的測試項目,只針對輸出檔案先決目標進行測試。這與瀏覽權限檢查相符。
標記:build_file_semanticsincompatible_change
--[no]incompatible_check_visibility_for_toolchains 預設值:「false」
如果啟用,瀏覽權限檢查設定也會套用至工具鍊實作。
標記:build_file_semanticsincompatible_change
--[no]incompatible_disable_native_android_rules 預設值:「false」
啟用後,系統會停用直接使用原生 Android 規則的功能。請使用位於 https://github.com/bazelbuild/rules_android 的 Starlark Android 規則
標記:eagerness_to_exitincompatible_change
--[no]incompatible_disable_native_apple_binary_rule 預設值:「false」
免人工管理。為顧及回溯相容性,請繼續保留。
標記:eagerness_to_exitincompatible_change
--[no]incompatible_python_disable_py2預設值:「true」
如果為 true,使用 Python 2 設定就會發生錯誤。這包括 python_version=PY2、srcs_version=PY2 和 srcs_version=PY2ONLY。詳情請參閱 https://github.com/bazelbuild/bazel/issues/15684。
標記:loading_and_analysisincompatible_change
--[no]incompatible_validate_top_level_header_inclusions預設值:「true」
這個標記為 noop,且已排定移除時間。
標記:no_opincompatible_change
--python_native_rules_allowlist=<a build target label> 預設:查看說明
強制執行 --incompatible_python_禁止_native_rules 時使用的許可清單 (package_group target)。
標記:loading_and_analysis
--[no]strict_filesets 預設值:「false」
如果啟用這個選項,跨越套件界線的檔案集會回報為錯誤。
標記:build_file_semanticseagerness_to_exit
--strict_proto_deps=<off, warn, error, strict or default> 預設值:「錯誤」
除非「關閉」,否則檢查 proto_library 目標是否明確宣告所有直接使用的目標做為依附元件。
標記:build_file_semanticseagerness_to_exitincompatible_change
--strict_public_imports=<off, warn, error, strict or default> 預設值:「關閉」
除非設為「關閉」,否則檢查 proto_library 目標是否明確將「匯入公開」中使用的所有目標宣告為匯出項目。
標記:build_file_semanticseagerness_to_exitincompatible_change
--[no]strict_system_includes 預設值:「false」
如果為 True,您也必須宣告透過系統 include 路徑 (-isystem) 找到的標頭。
標記:loading_and_analysiseagerness_to_exit
會累積 --target_environment=<a build target label> 個用途
宣告此建構作業的目標環境。必須是「環境」規則的標籤參照。如有指定,所有頂層目標都必須與這個環境相容。
標記:changes_inputs
會影響建構作業簽署輸出內容的選項:
--apk_signing_method=<v1, v2, v1_v2 or v4> 預設值:「v1_v2」
用於簽署 APK 的實作程序
標記:action_command_linesaffects_outputsloading_and_analysis
--[no]device_debug_entitlements預設值:「true」
如果已設定,但編譯模式不是「opt」,objc 應用程式會在簽署時納入偵錯授權。
標記:changes_inputs
--ios_signing_cert_name=<a string> 預設:查看說明
用於 iOS 簽署的憑證名稱。如未設定,系統會改回使用佈建設定檔。可以是憑證的鑰匙圈身分偏好設定或憑證通用名稱的子字串,並按照圖碼簽署的手冊頁面 (SIGNING IDENTITIES) 取得。
標記:action_command_lines
這個選項會影響 Starlark 語言的語意,或是 BUILD 檔案、.bzl 檔案或 WORKSPACE 檔案使用的建構 API。
--[no]incompatible_disallow_legacy_py_provider預設值:「true」
不操作,我們很快就會移除。
標記:loading_and_analysisincompatible_change
--[no]incompatible_disallow_sdk_frameworks_attributes 預設值:「false」
如果為 true,請禁止 objc_library andobjc_import 中的 sdk_frameworks 和 weak_sdk_frameworks 屬性。
標記:build_file_semanticsincompatible_change
如果為 true,請將 objc_library 和 objc_import 中的 alwayslink 屬性設定為 true。
標記:build_file_semanticsincompatible_change
--[no]incompatible_python_disallow_native_rules 預設值:「false」
如果為 true,使用內建的 py_* 規則時會發生錯誤;請改用 rules_python 規則。如需詳細資訊和遷移操作說明,請前往 https://github.com/bazelbuild/bazel/issues/17773。
標記:loading_and_analysisincompatible_change
控制測試環境或測試執行器行為的選項:
--[no]allow_analysis_failures 預設值:「false」
如果為 true,規則目標的分析失敗會使目標的 AnalysisFailureInfo 執行個體傳播包含錯誤說明,不會導致建構失敗。
標記:loading_and_analysisexperimental
--analysis_testing_deps_limit=<an integer> 預設值:「2000」
透過 for_analysis_testing 設定轉換的規則屬性,設定遞移依附元件的數量上限。超過這項限制會產生規則錯誤。
標記:loading_and_analysis
--[no]break_build_on_parallel_dex2oat_failure 預設值:「false」
如果實際的 dex2oat 操作失敗,將導致建構失敗,而不是在測試執行階段中執行 dex2oat。
標記:loading_and_analysisexperimental
會累積 --default_test_resources=<a resource name followed by equal and 1 float or 4 float, e.g memory=10,30,60,100> 個用途
覆寫測試的預設資源量。預期格式為 <resource>=<value>。如果將單一正數指定為 <value>,則會覆寫所有測試大小的預設資源。如果指定 4 個以半形逗號分隔的數字,就會分別覆寫小型、中、大、巨大測試大小的資源數量。值也可以是 HOST_RAM/HOST_CPU,後面加上 [-|*]<float> (例如:memory=HOST_RAM*.1,HOST_RAM*.2,HOST_RAM*.3,HOST_RAM*.4)。此標記指定的預設測試資源會由標記中指定的明確資源覆寫。
--[no]experimental_android_use_parallel_dex2oat 預設值:「false」
並行使用 dex2oat 以加快 android_test 的速度。
標記:loading_and_analysishost_machine_resource_optimizationsexperimental
--[no]ios_memleaks 預設值:「false」
啟用 ios_test 目標中的記憶體流失檢查功能。
標記:action_command_lines
--ios_simulator_device=<a string> 預設:查看說明
在模擬器中執行 iOS 應用程式時模擬的裝置,例如「iPhone 6」。如要取得裝置清單,請在要執行模擬器的機器上執行「xcrun simctl list devicetypes」。
標記:test_runner
--ios_simulator_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
執行或測試時要在模擬器上執行的 iOS 版本。如果已在規則中指定目標裝置,則 ios_test 規則會忽略這個欄位。
標記:test_runner
會累積 --runs_per_test=<a positive integer or test_regex@runs. This flag may be passed more than once> 個用途
指定各項測試的執行次數。如果有任何一項嘗試因任何原因失敗,整個測試視同失敗。通常指定的值只有整數。範例:--runs_per_test=3 會執行所有測試 3 次。替代語法:regex_filter@runs_per_test。run_per_test 代表整數值,而 regex_filter 表示包含及排除規則運算式模式的清單 (另請參閱 --instrumentation_filter)。範例:--runs_per_test=//foo/.*,-//foo/bar/.*@3 會在 //foo/ 中執行所有測試,但 foo/bar 之下的結果除外。這個選項可以多次傳送。系統會優先採用最近傳遞的相符引數。如果沒有相符結果,測試只會執行一次。
會累積 --test_env=<a 'name=value' assignment with an optional value part> 個用途
指定要插入測試執行工具環境的其他環境變數。您可以用名稱指定變數;如果發生這種情況,系統會從 Bazel 用戶端環境或 name=value 組合讀取變數的值。這個選項可多次使用以指定多個變數。僅用於「bazel test」指令。
標記:test_runner
--test_timeout=<a single integer or comma-separated list of 4 integers> 預設值:「-1」
覆寫測試逾時的預設測試逾時值 (以秒為單位)。如果指定單一正整數值,則會覆寫所有類別。如果指定 4 個以半形逗號分隔的整數,就會覆寫短、中、長和橢圓的逾時時間 (按照此順序排列)。無論採用哪一種格式,值為 -1 均會指示 Blaze 針對該類別使用預設逾時。
--[no]zip_undeclared_test_outputs預設值:「true」
如果設為 True,系統會將未宣告的測試輸出內容封存為 ZIP 檔案。
標記: test_runner
查詢輸出內容和語意相關選項:
--aspect_deps=<off, conservative or precise> 預設值:「conservative」
當輸出格式是 {xml,proto,record} 時,如何解析切面依附元件。「off」代表未解析任何切面依附元件;「保守」(預設) 代表新增所有宣告的切面依附元件,不論是否提供直接依附元件的規則類別;「精確」代表僅新增可能根據直接依附元件的規則類別啟用的切面。請注意,由於精確模式需要載入其他套件來評估單一目標,因此速度比其他模式慢。另請注意,就算使用精確模式也無法完全精準,是否要在分析階段中決定是否運算,該階段不會在「bazel 查詢」期間執行。
標記:build_file_semantics
--[no]consistent_labels 預設值:「false」
啟用這項設定後,每個查詢指令都會發送標籤,就像由 Starlark <code>str</code> 函式套用至 <code>Label</code> 執行個體一樣。這項工具相當適合用於需要比對不同查詢指令和/或規則所發出標籤的輸出內容。如果不啟用,輸出格式設定器可改為發出明顯的存放區名稱 (相對於主要存放區),讓輸出內容更容易讀取。
標記:terminal_output
--[no]experimental_explicit_aspects 預設值:「false」

標記:terminal_output
--[no]graph:factored預設值:「true」
如果為 true,圖表會發出「因子」,也就是同質相等的節點會合併在一起,其標籤會串連。這個選項僅適用於 --output=graph。
標記:terminal_output
--graph:node_limit=<an integer> 預設值:「512」
輸出中圖形節點的標籤字串長度上限。較長的標籤會遭到截斷;-1 表示不會截斷。這個選項僅適用於 --output=graph。
標記:terminal_output
--[no]implicit_deps預設值:「true」
啟用後,隱含依附元件會納入查詢作業的依附元件圖中。隱含依附元件是指 BUILD 檔案中並未明確指定,但是由 bazel 新增的依附元件。針對 cquery,這個選項會控制篩選已解析的工具鍊。
標記:build_file_semantics
--[no]include_aspects預設值:「true」

標記:terminal_output
--[no]incompatible_package_group_includes_double_slash預設值:「true」
啟用後,在輸出 package_group 的「packages」屬性時,系統不會省略開頭的「//」。
標記:terminal_outputincompatible_change
--[no]infer_universe_scope 預設值:「false」
如果未設定 --universe_scope,將將 --universe_scope 的值推斷為查詢運算式中不重複目標模式的清單。請注意,使用單向範圍函式 (例如`allrdeps`) 的查詢運算式所推測的 --universe_scope 值可能不太符合您的需求,因此建議您在瞭解自己執行的操作時,才使用這個選項。如需詳細資訊和範例,請參閱 https://bazel.build/reference/query#sky-query。如果已設定 --universe_scope,系統就會忽略此選項的值。注意:這個選項僅適用於「query」(查詢),而非「cquery」。
標記: loading_and_analysis
--[no]line_terminator_null 預設值:「false」
指出每個格式是否會以 \0 (而非換行) 終止。
標記:terminal_output
--[no]nodep_deps預設值:「true」
如果啟用這項政策,從「nodep」屬性降級後,查詢作業的依附元件圖表就會包含該屬性。常見的「nodep」屬性為「visibility」。執行並剖析「資訊建構語言」的輸出內容,瞭解建構語言中的所有「nodep」屬性。
標記:build_file_semantics
--output=<a string>預設值:「label」
輸出 cquery 結果的格式。允許的 cquery 值為:label、label_Kind、textproto、轉換、proto、streamed_proto、jsonproto。如果選取「轉換」,就必須一併指定 --transitions=(lite|full) 選項。
標記:terminal_output
--[no]proto:default_values預設值:「true」
如果為 true,系統會納入 BUILD 檔案中未明確指定值的屬性,否則會省略。這個選項適用於 --output=proto
標記:terminal_output
--[no]proto:definition_stack 預設值:「false」
填入 definition_stack proto 欄位,該欄位會在定義規則類別時,記錄每個規則例項的 Starlark 呼叫堆疊。
標記:terminal_output
--[no]proto:flatten_selects預設值:「true」
啟用後,系統會整併 select() 建立的可設定屬性。對於清單類型而言,扁平化的表示式呈現為一份清單,其中僅包含選取地圖的每個值一次。純量類型會扁平化為空值。
標記:build_file_semantics
--[no]proto:include_attribute_source_aspects 預設值:「false」
為每個屬性的 source_aspect_name proto 欄位填入屬性來源切面的資訊 (如果沒有屬性,則為空白字串)。
標記:terminal_output
--[no]proto:include_configurations預設值:「true」
設為啟用後,proto 輸出內容會包含設定的相關資訊。停用後,cquery proto 輸出格式與查詢輸出格式類似。
標記:affects_outputs
--[no]proto:include_synthetic_attribute_hash 預設值:「false」
是否要計算及填入 $internal_attr_hash 屬性。
標記:terminal_output
--[no]proto:instantiation_stack 預設值:「false」
填入每項規則的例項化呼叫堆疊。請注意,如要這麼做,堆疊必須具有
標記:terminal_output
--[no]proto:locations預設值:「true」
是否要在 proto 輸出內容中輸出位置資訊。
標記:terminal_output
--proto:output_rule_attrs=<comma-separated list of options> 預設值:「全部」
要包含在輸出內容中的屬性清單 (以半形逗號分隔)。預設為所有屬性。設為空白字串不輸出任何屬性。這個選項適用於 --output=proto。
標記:terminal_output
--[no]proto:rule_inputs_and_outputs預設值:「true」
指定是否填入「Rule_input」和「Rule_output」欄位。
標記:terminal_output
--query_file=<a string> 預設值:「」
如有設定,查詢會從這裡命名的檔案讀取查詢,而不是透過指令列讀取。在這裡指定檔案以及指令列查詢會發生錯誤。
標記:changes_inputs
--[no]relative_locations 預設值:「false」
如果為 True,XML 和 proto 輸出內容中的 BUILD 檔案位置將會相對。根據預設,位置輸出是絕對路徑,而且在所有機器中不一致。您可以將這個選項設為 True,即可在不同機器中取得一致的結果。
標記:terminal_output
--show_config_fragments=<off, direct or transitive> 預設值:「關閉」
顯示規則所需的設定片段及其遞移依附元件。這項指標有助於評估設定的目標圖表可修剪的程度。
標記:affects_outputs
--starlark:expr=<a string> 預設值:「」
Starlark 運算式,用於在 cquery 的 --output=starlark 模式下設定各個設定的目標格式。設定的目標會繫結至「目標」。如果未指定 --starlark:expr 和 --starlark:file,則這個選項會預設為「str(target.label)」。同時指定 --starlark:expr 和 --starlark:file 是錯誤。
標記:terminal_output
--starlark:file=<a string> 預設值:「」
定義一個引數中名為「format」的 Starlark 函式檔案名稱,該函式會套用至各個已設定的目標,以做為字串格式。同時指定 --starlark:expr 和 --starlark:file 是錯誤。詳情請參閱「--output=starlark」說明。
標記:terminal_output
--[no]tool_deps預設值:「true」
查詢:如果停用,則「exec configuration」的依附元件不會包含在查詢作業的依附元件圖表中。「exec configuration」的依附元件邊緣 (例如從任何「proto_library」規則的依附元件到通訊協定編譯器的邊緣),通常指向在建構期間執行的工具,而非同一個「目標」程式的一部分。Cquery:如果停用,系統會從頂層目標中發現這個設定目標的頂層目標,篩選出所有已設定的目標。換句話說,如果頂層目標位於目標設定中,系統只會傳回同樣在目標設定中已設定的目標。如果頂層目標位於執行設定中,系統只會傳回執行設定的目標。這個選項「不會」排除已解析的工具鍊。
標記:build_file_semantics
--transitions=<full, lite or none>預設值:「無」
cquery 輸出轉換資訊的格式。
標記:affects_outputs
--universe_scope=<comma-separated list of options> 預設值:「」
以半形逗號分隔的目標模式組合 (加法和減法)。查詢可於由指定目標的遞移性通過所定義的宇宙中執行。這個選項可用於查詢和 cquery 指令。對 cquery 來說,這個選項的輸入內容就是所有答案的基礎,因此這個選項可能會影響設定和轉換。如未指定此選項,系統會假設頂層目標為查詢運算式剖析的目標。注意事項:在 cquery 中,如未指定這個選項,如果無法以頂層選項建構從查詢運算式剖析的目標,建構可能會中斷。
標記: loading_and_analysis
會觸發建構時間最佳化的選項:
--[no]experimental_filter_library_jar_with_program_jar 預設值:「false」
篩選 ProGuard ProgramJar,以移除 LibraryJar 中的所有類別。
標記:action_command_lines
--[no]experimental_inmemory_dotd_files預設值:「true」
啟用後,C++ .d 檔案會直接從遠端建構節點在記憶體中傳遞,而不是寫入磁碟。
標記:loading_and_analysisexecutionaffects_outputsexperimental
--[no]experimental_inmemory_jdeps_files預設值:「true」
如果啟用,Java 編譯作業產生的依附元件 (.jdeps) 檔案就會直接從遠端建構節點在記憶體中傳遞,而不會寫入磁碟。
標記:loading_and_analysisexecutionaffects_outputsexperimental
--[no]experimental_retain_test_configuration_across_testonly 預設值:「false」
啟用後,--trim_test_configuration 不會為標示為 testonly=1 的規則修剪測試設定。這是為了減少非測試規則取決於 cc_test 規則時的動作衝突問題。如果 --trim_test_configuration 為 false,則不會產生任何效果。
標記:loading_and_analysisloses_incremental_state
--[no]experimental_starlark_cc_import 預設值:「false」
啟用後,即可使用 cc_import 的 Starlark 版本。
標記:loading_and_analysisexperimental
--[no]experimental_unsupported_and_brittle_include_scanning 預設值:「false」
是否要透過剖析輸入檔案中的 #include 行,將輸入範圍縮小為 C/C++ 編譯。進而縮減編譯輸入樹狀結構的大小,進而改善效能和成效增幅。不過,由於 include 掃描器未完全實作 C 預先處理器語意,因此也可能導致建構作業失敗。具體而言,它不瞭解動態 #include 指令,且會忽略預先處理工具的條件邏輯。使用時需自行承擔風險。凡是與這個檢舉有關的問題都會遭到關閉。
標記:loading_and_analysisexecutionchanges_inputs
--[no]incremental_dexing預設值:「true」
大部分的工作都是針對各個 Jar 檔案個別進行 DEX 處理。
標記:affects_outputsloading_and_analysisloses_incremental_state
--[no]objc_use_dotd_pruning預設值:「true」
如果已設定,將由 clang 發出的 .d 檔案剪裁至 objc 編譯的輸入內容。
標記:changes_inputsloading_and_analysis
--[no]process_headers_in_dependencies 預設值:「false」
建立目標 //a:a 時,處理 //a:a 依附的所有目標 (如果工具鍊已啟用標頭處理功能)。
標記:execution
--[no]trim_test_configuration預設值:「true」
啟用後,系統會在建構項目頂層下方清除測試相關選項。啟用這個旗標後,就無法將測試當做非測試規則的依附元件進行建構,但變更測試相關選項並不會導致系統重新分析非測試規則。
標記:loading_and_analysisloses_incremental_state
影響記錄詳細程度、格式或位置的選項:
--toolchain_resolution_debug=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths> 預設值:「-.*」
在工具鍊解析期間輸出偵錯資訊。旗標會採用規則運算式,並與工具鍊類型和特定目標進行比對,以找出需要偵錯的項目。如有多個規則運算式,請以半形逗號分隔,然後再分別檢查每個規則運算式。注意:此標記的輸出內容非常複雜,可能僅對工具鍊解決方案的專家有所幫助。
標記:terminal_output
可為不屬於其他類別的 Bazel 指令指定或變更一般輸入的選項:
會累積 --flag_alias=<a 'name=value' flag alias> 個用途
設定 Starlark 標記的簡短名稱。這會使用格式為「<key>=<value>」的單一鍵/值組合做為引數。
標記:changes_inputs
--[no]incompatible_default_to_explicit_init_py 預設值:「false」
這個標記會變更預設行為,讓 __init__.py 檔案不再在 Python 目標的執行檔案中自動建立。準確來說,當 py_binary 或 py_test 目標將 legacy_create_init 設為「auto」(預設值) 時,只有在設定了此旗標時,才會視為 false。請參閱 https://github.com/bazelbuild/bazel/issues/10076。
標記:affects_outputsincompatible_change
--[no]incompatible_py2_outputs_are_suffixed預設值:「true」
如果為 True,則透過 Python 2 設定建構的目標會顯示在輸出根目錄中,且包含後置字串「-py2」,而針對 Python 3 建構的目標會顯示在根層級中,且沒有 Python 相關後置字串。也就是說,`bazel-bin` 便利符號連結會指向 Python 3 目標,而不是 Python 2。如果啟用這個選項,建議一併啟用「--incompatible_py3_is_default」。
標記:affects_outputsincompatible_change
--[no]incompatible_py3_is_default預設值:「true」
如果為 True,系統會將未設定「python_version」(或「default_python_version」) 屬性的「py_binary」和「py_test」目標預設為 PY3,而非 PY2。如果你設定了這個旗標,也建議你設定「--incompatible_py2_outputs_are_suffixed」。
標記:loading_and_analysisaffects_outputsincompatible_change
--[no]incompatible_use_python_toolchains預設值:「true」
如果設為 True,可執行的原生 Python 規則將使用 Python 工具鍊指定的 Python 執行階段,而非由 --python_top 等舊版旗標提供的執行階段。
標記:loading_and_analysisincompatible_change
--python_version=<PY2 or PY3> 預設:查看說明
Python 主要版本模式,可以是「PY2」或「PY3」。請注意,此模式會遭到「py_binary」和「py_test」目標覆寫 (即使他們未明確指定版本也是如此),因此通常沒有太多理由提供這個標記。
標記:loading_and_analysisaffects_outputs
其他選項,未分類。
--[no]cache_test_results [-t] 預設值:「auto」
如果設為「auto」,Bazel 只會在發生以下情況時重新執行測試:(1) Bazel 偵測到測試或其依附元件的變更,(2) 系統會將測試標示為外部;(3) 使用 --runs_per_test 要求多次測試執行;或(4) 先前失敗的測試。如果設為「是」,Bazel 會快取所有測試結果,但標示為外部的測試除外。如果設為「否」,Bazel 就不會快取任何測試結果。
--[no]experimental_cancel_concurrent_tests 預設值:「false」
如果為 true,Blaze 會取消首次成功執行時同時執行的測試。這個方法只有在搭配 --runs_per_test_Detects_flakes 時實用。
標記:affects_outputsloading_and_analysis
--[no]experimental_fetch_all_coverage_outputs 預設值:「false」
如果設為 true,Bazel 會在涵蓋率執行期間為每項測試擷取整個涵蓋範圍資料目錄。
標記:affects_outputsloading_and_analysis
--[no]experimental_generate_llvm_lcov 預設值:「false」
如果設為「true」,Clang 的涵蓋率就會產生 LCOV 報告。
標記:affects_outputsloading_and_analysis
--[no]experimental_j2objc_header_map預設值:「true」
是否要同時產生 J2ObjC 標頭對應,以及 J2ObjC 轉譯。
--[no]experimental_j2objc_shorter_header_path 預設值:「false」
指定是否要使用較短的標頭路徑 (使用「_ios」而非「_j2objc」) 產生。
標記:affects_outputs
--experimental_java_classpath=<off, javabuilder or bazel> 預設值:「javabuilder」
針對 Java 編譯啟用縮減的類別路徑。
--[no]experimental_limit_android_lint_to_android_constrained_java 預設值:「false」
將 --experimental_run_android_lint_on_java_rules 限制在與 Android 相容的程式庫。
標記:affects_outputs
--[no]experimental_run_android_lint_on_java_rules 預設值:「false」
是否要驗證 java_* 來源。
標記:affects_outputs
--[no]explicit_java_test_deps 預設值:「false」
在 java_test 中明確指定 JUnit 或 Hamcrest 的依附元件,而非意外從 TestRunner 的依附元件中取得。目前僅適用於 bazel。
--host_java_launcher=<a build target label> 預設:查看說明
在建構期間執行的工具所使用的 Java 啟動器。
會累積 --host_javacopt=<a string> 個用途
建構在建構期間執行的工具時,傳送至 javac 的其他選項。
會累積 --host_jvmopt=<a string> 個用途
建構在建構期間執行的工具時,傳送至 Java VM 的其他選項。這些選項會新增至每個 java_binary 目標的 VM 啟動選項。
--[no]incompatible_check_sharding_support預設值:「true」
如果為 true,當測試執行器未指出 TEST_SHARD_STATUS_FILE 路徑中的檔案,表示可支援分割作業,Bazel 就會失敗的資料分割測試。如果設為 false,則不支援資料分割的測試執行器會導致每個資料分割中執行的所有測試。
標記:incompatible_change
--[no]incompatible_exclusive_test_sandboxed預設值:「true」
如果為 true,專屬測試將使用沙箱策略執行。新增「local」標記,強制在本機執行專屬測試
標記: incompatible_change
--[no]incompatible_strict_action_env 預設值:「false」
如果設為 True,Bazel 使用的環境會是 PATH 的靜態值,且不會沿用 LD_LIBRARY_PATH。如果想沿用用戶端的特定環境變數,請使用 --action_env=ENV_VARIABLE。不過請注意,這麼做可能會在使用共用快取時,避免跨使用者快取。
標記:loading_and_analysisincompatible_change
會累積 --j2objc_translation_flags=<comma-separated list of options> 個用途
傳遞至 J2ObjC 工具的其他選項。
--java_debug
造成 Java 測試的 Java 虛擬機器,先等待符合 JDWP 規範的偵錯工具 (例如 jdb) 連線後,再開始測試。隱含 -test_output=streamed。
擴展至:
  --test_arg=--wrapper_script_flag=--debug
  --test_output=streamed
  --test_strategy=exclusive
  --test_timeout=9999
  --nocache_test_results
--[no]java_deps預設值:「true」
為每個 Java 目標產生依附元件資訊 (目前為編譯時間類別路徑)。
--[no]java_header_compilation預設值:「true」
直接從原始碼編譯 ijar。
--java_language_version=<a string> 預設值:「」
Java 語言版本
--java_launcher=<a build target label> 預設:查看說明
建構 Java 二進位檔時使用的 Java 啟動器。如果此旗標設為空白字串,系統會使用 JDK 啟動器。「launcher」屬性會覆寫此標記。
--java_runtime_version=<a string> 預設值:「local_jdk」
Java 執行階段版本
會累積 --javacopt=<a string> 個用途
要傳遞至 javac 的其他選項。
會累積 --jvmopt=<a string> 個用途
傳送至 Java VM 的其他選項。這些選項會新增至每個 java_binary 目標的 VM 啟動選項。
--legacy_main_dex_list_generator=<a build target label> 預設:查看說明
指定二進位檔,用於產生編譯舊版 Multidex 時必須位於主要 dex 的類別清單。
--optimizing_dexer=<a build target label> 預設:查看說明
指定二進位檔,用於在不進行資料分割的情況下執行 DEX 作業。
會累積 --plugin=<a build target label> 個用途
要在建構作業中使用的外掛程式。目前可與 java_plugin 搭配使用。
--proguard_top=<a build target label> 預設:查看說明
指定在建構 Java 二進位檔時,用於移除程式碼的 ProGuard 版本。
--proto_compiler=<a build target label> 預設:「@bazel_tools//tools/proto:protoc」
proto-編譯器的標籤。
標記:affects_outputsloading_and_analysis
--proto_toolchain_for_cc=<a build target label> 預設值:「@bazel_tools//tools/proto:cc_toolchain」
proto_lang_toolchain() 的標籤,說明如何編譯 C++ proto
標記: affects_outputsloading_and_analysis
--proto_toolchain_for_j2objc=<a build target label> 預設語言:「@bazel_tools//tools/j2objc:j2objc_proto_toolchain」
proto_lang_toolchain() 的標籤,說明如何編譯 j2objc proto
標記:affects_outputsloading_and_analysis
--proto_toolchain_for_java=<a build target label> 預設值:「@bazel_tools//tools/proto:java_toolchain」
proto_lang_toolchain() 的標籤,說明如何編譯 Java proto
標記:affects_outputsloading_and_analysis
--proto_toolchain_for_javalite=<a build target label> 預設值:「@bazel_tools//tools/proto:javalite_toolchain」
proto_lang_toolchain() 的標籤,說明如何編譯 JavaLite proto。
標記:affects_outputsloading_and_analysis
會累積 --protocopt=<a string> 個用途
傳送至 protobuf 編譯器的其他選項。
標記:affects_outputs
--[no]runs_per_test_detects_flakes 預設值:「false」
如果為 true,所有至少執行/嘗試通過一次且有至少一項執行/嘗試失敗的資料分割,都會顯示 FLAKY 狀態。
--shell_executable=<a path> 預設:查看說明
殼層執行檔的絕對路徑,可供 Bazel 使用。如果未設定,但第一次 Bazel 叫用 (啟動 Bazel 伺服器) 時設定了 BAZEL_SH 環境變數,Bazel 就會使用該環境變數。如果兩者皆未設定,Bazel 將根據在 Windows 上執行的作業系統使用硬式編碼預設路徑 (Windows:c:/tools/msys64/usr/bin/bash.exe,FreeBSD:/usr/local/bin/bash 和所有其他檔案:/bin/bash)。請注意,如果您使用的殼層與 bash 不相容,可能會導致建構失敗,或所產生二進位檔的執行階段失敗。
標記:loading_and_analysis
會累積 --test_arg=<a string> 個用途
指定應傳遞至測試執行檔的其他選項和引數。可多次用於指定多個引數。如果執行多個測試,每個測試都會收到相同的引數。僅用於「bazel test」指令。
--test_filter=<a string> 預設:查看說明
指定要轉送至測試架構的篩選器。用於限制測試執行。請注意,這不會影響建構的目標。
--test_result_expiration=<an integer> 預設值:「-1」
這個選項已淘汰,因此不會產生任何作用。
--[no]test_runner_fail_fast 預設值:「false」
將失敗的快速選項轉送至測試執行器。測試執行工具應在首次失敗時停止執行。
--test_sharding_strategy=<explicit, disabled or forced=k where k is the number of shards to enforce> 預設值:「煽情露骨內容」
指定測試資料分割的策略:「explicit」只有在已有「shard_count」BUILD 屬性時才會使用資料分割。設為「disabled」後,就不必使用測試資料分割。「forced=k」可強制執行「k」資料分割以供測試,無論「shard_count」BUILD 屬性為何。
--tool_java_language_version=<a string> 預設值:「」
用於執行建構期間必要工具的 Java 語言版本
--tool_java_runtime_version=<a string> 預設:「remotejdk_11」
在建構期間執行工具時使用的 Java 執行階段版本
--[no]use_ijars預設值:「true」
啟用這個選項後,Java 編譯會使用介面 jar 檔案。這麼做可以加快漸進式編譯速度,但錯誤訊息也可能不同。

Dump 選項

這些選項會顯示在指令之前,並由用戶端剖析:
會累積 --distdir=<a path> 個用途
還有許多地方可以搜尋封存檔案,以便透過網路下載封存內容。
標記:bazel_internal_configuration
如有設定,存放區快取會在快取成功時將檔案硬式編碼,而非複製檔案。以便節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 預設值:「0」
重試下載錯誤的次數上限。如果設為 0,系統就會停用重試功能。
標記:experimental
--experimental_scale_timeouts=<a double> 預設值:「1.0」
按照這項係數調整 Starlark 存放區規則中的所有逾時時間。如此一來,即使效能低於規則作者預期的機器,外部存放區也能在不變更原始碼的情況下正常運作。
標記:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 預設值:「8」
http 下載作業的次數上限。
標記:bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 預設值:「0s」
http 下載重試的逾時時間上限。如果值為 0,就不會定義逾時上限。
標記:bazel_internal_configuration
--http_timeout_scaling=<a double> 預設值:「1.0」
依指定係數調整所有與 http 下載相關的逾時時間
標記: bazel_internal_configuration
--repository_cache=<a path> 預設:查看說明
指定擷取外部存放區時取得的已下載值的快取位置。將空字串做為引數要求停用快取,否則會使用預設的「<output_user_root>/cache/repos/v1」
標記: bazel_internal_configuration
--[no]repository_disable_download 預設值:「false」
如果已設定,無法在存放區擷取期間使用 ctx.download{,_and_extract} 進行下載。請注意,網路存取權並未完全停用;ctx.execute 仍可以執行存取網際網路的任意執行檔。
標記:bazel_internal_configuration
控制建構執行作業的選項:
--gc_thrashing_threshold=<an integer in 0-100 range> 預設值:「100」
上方 GcThrashingDetector 會將記憶體壓力事件視為其配額限制 (--gc_thrashing_limits),而佔用空間佔用的空間百分比 (0-100)。如果設為 100,系統會停用 GcThrashingDetector。
標記:host_machine_resource_optimizations
控制指令輸出內容的選項:
--[no]action_cache 預設值:「false」
Dump 動作快取內容。
標記:bazel_monitoring
--memory=<none, shallow or deep>預設值:「無」
釋出指定 SkyFrame 節點的記憶體用量。
標記:bazel_monitoring
--memory_package=<a string> 預設:查看說明
應傾印其記憶體使用的套件。
標記:bazel_monitoring
--memory_starlark_module=<a build target label> 預設:查看說明
應傾印其記憶體使用的 Starlark 模組。
標記:bazel_monitoring
--[no]packages 預設值:「false」
Dump 套件快取內容。
標記:bazel_monitoring
--[no]rule_classes 預設值:「false」
Dump 規則類別。
標記:bazel_monitoring
--[no]rules 預設值:「false」
堆積規則,包括計數和記憶體用量 (如果追蹤記憶體)。
標記:bazel_monitoring
--skyframe=<off, summary, count, value, deps, rdeps or function_graph> 預設值:「關閉」
Dump Skyframe 圖表:「off」、「summary」、「count」、「value」、「deps」、「rdeps」或「function_graph」。
標記:bazel_monitoring
--skykey_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths> 預設值:「.*」
要輸出的 SkyKey 名稱規則運算式篩選器。僅適用於 --skyframe=deps、rdeps、function_graph。
標記:bazel_monitoring
--skylark_memory=<a string> 預設:查看說明
將與 Pprof 相容的記憶體設定檔提交到指定路徑。詳情請參閱 https://github.com/google/pprof。
標記: bazel_monitoring
這個選項會影響 Starlark 語言的語意,或是 BUILD 檔案、.bzl 檔案或 WORKSPACE 檔案使用的建構 API。
--[no]incompatible_depset_for_java_output_source_jars預設值:「true」
免人工管理。
標記: loading_and_analysisincompatible_change
--[no]incompatible_new_actions_api預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]incompatible_visibility_private_attributes_at_definition預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]separate_aspect_deps預設值:「true」
免人工管理
標記: no_op
與 Bzlmod 輸出內容和語意相關的選項:
會累積 --allow_yanked_versions=<a string> 個用途
指定模組版本時,請以「<module1>@<version1>,<module2>@<version2>」格式指定在已解析的依附元件圖中,即使這些版本來源不是來自 NonRegistryOverride,仍可在存放區中宣告這些版本。否則,分割版本會導致解析失敗。您也可以使用「BZLMOD_ALLOW_YANKED_VERSIONS」環境變數定義允許的分割版本。您可使用關鍵字「全部」停用這項檢查 (不建議使用)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off> 預設值:「錯誤」
檢查 Bazel 模組的 Bazel 版本相容性。有效值為「error」:可將其提報至解決失敗;設為「off」可停用檢查,「warning」則能在偵測到不相符時顯示警告。
標記:loading_and_analysis
--check_direct_dependencies=<off, warning or error> 預設值:「warning」
檢查根模組中宣告的直接「bazel_dep」依附元件,是否與已解析依附元件圖表中的版本相同。有效值為「off」可停用檢查,「warning」會在偵測到不相符時顯示警告,或是「error」將問題提報至解決失敗。
標記:loading_and_analysis
--[no]ignore_dev_dependency 預設值:「false」
如果為 true,Bazel 會忽略根模組 MODULE.bazel 中宣告為「dev_dependency」的「bazel_dep」和「use_extension」。請注意,如果根模組不是根模組,無論此標記的值為何,系統一律會忽略這些開發依附元件。
標記:loading_and_analysis
--lockfile_mode=<off, update or error> (預設):「更新」
指定使用 Lockfile 的方式,以及是否要使用。有效值為「update」可使用 Lockfile,並在出現變更時進行更新;「error」表示使用 Lockfile,但並非最新版本,會擲回錯誤;如果未更新,則為「off」。
標記:loading_and_analysis
會累積 --override_module=<an equals-separated mapping of module name to path> 個用途
以 <module name>=<path> 的格式覆寫本機路徑的模組。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則該路徑會與目前的工作目錄相對。如果指定路徑的開頭是「%workspace%」,代表與工作區根目錄 (也就是「bazel info workspace」的輸出內容) 有關。
會累積 --registry=<a string> 個用途
指定要用來尋找 Bazel 模組依附元件的登錄檔。順序很重要:系統會先在較早的登錄檔中查詢模組,而且只有在之後的登錄檔中缺少模組時,才會改回使用之後的登錄檔。
標記:changes_inputs
--vendor_dir=<a path> 預設:查看說明
指定應在廠商模式下保存外部存放區的目錄,不論是用於擷取或建立使用這些存放區。路徑可以指定為絕對路徑或相對於工作區目錄的路徑。
標記:loading_and_analysis
會觸發建構時間最佳化的選項:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 預設值:「1s:2,20s:3,1m:5」
限制如果已達到,GcThrashingDetector 會透過 OOM 讓 Bazel 當機,每項限制都以 <period>:<count> 指定,週期為時間長度,計數代表正整數。如果 <period> 內連續 <count> 個 GC 數量超過 --gc_thrashing_threshold 百分比,系統就會觸發 OOM。如要指定多個限制,請以半形逗號分隔。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生完整 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示完整 GC 事件永遠不會觸發下降。如果達到上限,在完整 GC 事件發生且超過保留堆積百分比門檻時,系統不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生輕微 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示次要 GC 事件永遠不會觸發下降。一旦達到限制,發生輕微 GC 事件且超過保留堆積百分比門檻時,系統就不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 預設值:「85」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量至少達到這個門檻,就會捨棄不必要的暫時性 SkyFrame 狀態。調整這個做法,即可減少垃圾收集造成的實際時間影響,也就是以下情形:GC 輾轉現象,是:(i) 這個臨時狀態的記憶體用量造成,(ii) 比在需要時重新建構狀態的成本高昂。
標記: host_machine_resource_optimizations
影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock> 預設:查看說明
記錄指令期間的 Java 航班/機票記錄工具設定檔。支援的剖析事件類型之一 (CPU、牆、分配或鎖定) 必須以引數的形式指定。設定檔將寫入一個檔案,並以事件類型在輸出基本目錄下命名。這個旗標的語法和語意日後可能會變更,以支援其他設定檔類型或輸出格式,請自行承擔風險。
--[no]experimental_record_metrics_for_all_mnemonics 預設值:「false」
根據預設,動作類型數量限制為已執行次數最多的 20 種記憶。如果設定這個選項,系統將寫入所有助測器的統計資料。
指定或變更不屬於其他類別 Bazel 指令的一般輸入選項:
--experimental_resolved_file_instead_of_workspace=<a string> 預設值:「」
如果讀取指定的已解析檔案 (而非 WORKSPACE 檔案) 為非空白檔案
標記: changes_inputs
遠端快取和執行選項:
--experimental_downloader_config=<a string> 預設:查看說明
指定要用於設定遠端下載程式的檔案。這個檔案由各行組成,每個指令都是以指令 (「allow」、「block」或「rewrite」) 開頭,後面接有主機名稱 (適用於「allow」和「block」) 或兩個模式,一個要比對做為替代網址,另一個則做為替代網址,並以「$1」開頭的反向參照。即使多個「重新編寫」指令,也可視為相同網址的「rewrite」指令。
--experimental_worker_for_repo_fetching=<off, platform, virtual or auto> 預設值:「auto」
用於存放區擷取的執行緒模式。如果設為「off」,系統就不會使用任何工作站執行緒,且會重新啟動存放區擷取作業。如果設為「平台」,則會使用平台執行緒 (即 OS 執行緒) 或虛擬執行緒 (如設為「virtual」)。如果設為「auto」,系統就會在可用的情況下使用虛擬執行緒 (即在 JDK 21 以上版本中執行),否則就不會使用工作站執行緒。
其他未分類的選項。
會累積 --override_repository=<an equals-separated mapping of repository name to path> 個用途
用 <repository name>=<path> 的格式覆寫本機路徑的存放區。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則以相對路徑為準。如果指定路徑的開頭是「%workspace%」,代表相對於工作區根目錄,也就是「bazel info workspace」的輸出內容

擷取選項

沿用 test 的所有選項。

這些選項會顯示在指令之前,並由用戶端剖析:
會累積 --distdir=<a path> 個用途
還有許多地方可以搜尋封存檔案,以便透過網路下載封存內容。
標記:bazel_internal_configuration
如有設定,存放區快取會在快取成功時將檔案硬式編碼,而非複製檔案。以便節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 預設值:「0」
重試下載錯誤的次數上限。如果設為 0,系統就會停用重試功能。
標記:experimental
--experimental_scale_timeouts=<a double> 預設值:「1.0」
按照這項係數調整 Starlark 存放區規則中的所有逾時時間。如此一來,即使效能低於規則作者預期的機器,外部存放區也能在不變更原始碼的情況下正常運作。
標記:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 預設值:「8」
http 下載作業的次數上限。
標記:bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 預設值:「0s」
http 下載重試的逾時時間上限。如果值為 0,就不會定義逾時上限。
標記:bazel_internal_configuration
--http_timeout_scaling=<a double> 預設值:「1.0」
依指定係數調整所有與 http 下載相關的逾時時間
標記: bazel_internal_configuration
--repository_cache=<a path> 預設:查看說明
指定擷取外部存放區時取得的已下載值的快取位置。將空字串做為引數要求停用快取,否則會使用預設的「<output_user_root>/cache/repos/v1」
標記: bazel_internal_configuration
--[no]repository_disable_download 預設值:「false」
如果已設定,無法在存放區擷取期間使用 ctx.download{,_and_extract} 進行下載。請注意,網路存取權並未完全停用;ctx.execute 仍可以執行存取網際網路的任意執行檔。
標記:bazel_internal_configuration
控制建構執行作業的選項:
--[no]all 預設值:「false」
擷取建立任何目標或存放區所需的所有外部存放區。只有在 --enable_bzlmod 開啟時才能使用。
標記:changes_inputs
--gc_thrashing_threshold=<an integer in 0-100 range> 預設值:「100」
上方 GcThrashingDetector 會將記憶體壓力事件視為其配額限制 (--gc_thrashing_limits),而佔用空間佔用的空間百分比 (0-100)。如果設為 100,系統會停用 GcThrashingDetector。
標記:host_machine_resource_optimizations
--[no]keep_going [-k] 預設值:「false」
發生錯誤後請盡可能繼續操作。雖然失敗的目標及依附的目標無法分析,但您可以採用這些目標的其他必要條件。
標記:eagerness_to_exit
--loading_phase_threads=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5"> 預設值:「auto」
用於載入/分析階段的平行執行緒數量。可使用整數或關鍵字 (「auto」、「HOST_CPUS」、「HOST_RAM」),視需要後面加上運算 ([-|*]<float>),例如「auto」、「HOST_CPUS*.5」。「auto」會根據主機資源設定合理的預設值。不得小於 1。
標記: bazel_internal_configuration
這個選項會影響 Starlark 語言的語意,或是 BUILD 檔案、.bzl 檔案或 WORKSPACE 檔案可用的建構 API。
--[no]incompatible_config_setting_private_default_visibility 預設值:「false」
如果 incompatible_enforce_config_setting_visibility=false,即為不相容性。此外,如果這個旗標為 false,任何沒有明確瀏覽權限屬性的 config_setting 都是 //visibility:public。如果這個標記為 true,config_setting 的瀏覽權限邏輯與其他規則相同。請參閱 https://github.com/bazelbuild/bazel/issues/12933。
標記:loading_and_analysisincompatible_change
--[no]incompatible_depset_for_java_output_source_jars預設值:「true」
免人工管理。
標記: loading_and_analysisincompatible_change
--[no]incompatible_enforce_config_setting_visibility預設值:「true」
如果設為 true,請強制執行 config_setting 瀏覽權限限制。如果設為 False,每個目標都會顯示所有 config_setting。請參閱 https://github.com/bazelbuild/bazel/issues/12932。
標記:loading_and_analysisincompatible_change
--[no]incompatible_new_actions_api預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]incompatible_visibility_private_attributes_at_definition預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]separate_aspect_deps預設值:「true」
免人工管理
標記: no_op
查詢輸出和語意相關選項:
--aspect_deps=<off, conservative or precise> 預設值:「conservative」
當輸出格式是 {xml,proto,record} 時,如何解析切面依附元件。「off」代表未解析任何切面依附元件;「保守」(預設) 代表新增所有宣告的切面依附元件,不論是否提供直接依附元件的規則類別;「精確」代表僅新增可能根據直接依附元件的規則類別啟用的切面。請注意,由於精確模式需要載入其他套件來評估單一目標,因此速度比其他模式慢。另請注意,就算使用精確模式也無法完全精準,是否要在分析階段中決定是否運算,該階段不會在「bazel 查詢」期間執行。
標記:build_file_semantics
--[no]consistent_labels 預設值:「false」
啟用這項設定後,每個查詢指令都會發送標籤,就像由 Starlark <code>str</code> 函式套用至 <code>Label</code> 執行個體一樣。這項工具相當適合用於需要比對不同查詢指令和/或規則所發出標籤的輸出內容。如果不啟用,輸出格式設定器可改為發出明顯的存放區名稱 (相對於主要存放區),讓輸出內容更容易讀取。
標記:terminal_output
--[no]experimental_explicit_aspects 預設值:「false」

標記:terminal_output
--[no]graph:factored預設值:「true」
如果為 true,圖表會發出「因子」,也就是同質相等的節點會合併在一起,其標籤會串連。這個選項僅適用於 --output=graph。
標記:terminal_output
--graph:node_limit=<an integer> 預設值:「512」
輸出中圖形節點的標籤字串長度上限。較長的標籤會遭到截斷;-1 表示不會截斷。這個選項僅適用於 --output=graph。
標記:terminal_output
--[no]implicit_deps預設值:「true」
啟用後,隱含依附元件會納入查詢作業的依附元件圖中。隱含依附元件是指 BUILD 檔案中並未明確指定,但是由 bazel 新增的依附元件。針對 cquery,這個選項會控制篩選已解析的工具鍊。
標記:build_file_semantics
--[no]include_aspects預設值:「true」

標記:terminal_output
--[no]incompatible_package_group_includes_double_slash預設值:「true」
啟用後,在輸出 package_group 的「packages」屬性時,系統不會省略開頭的「//」。
標記:terminal_outputincompatible_change
--[no]infer_universe_scope 預設值:「false」
如果未設定 --universe_scope,將將 --universe_scope 的值推斷為查詢運算式中不重複目標模式的清單。請注意,使用單向範圍函式 (例如`allrdeps`) 的查詢運算式所推測的 --universe_scope 值可能不太符合您的需求,因此建議您在瞭解自己執行的操作時,才使用這個選項。如需詳細資訊和範例,請參閱 https://bazel.build/reference/query#sky-query。如果已設定 --universe_scope,系統就會忽略此選項的值。注意:這個選項僅適用於「query」(查詢),而非「cquery」。
標記: loading_and_analysis
--[no]line_terminator_null 預設值:「false」
指出每個格式是否會以 \0 (而非換行) 終止。
標記:terminal_output
--[no]nodep_deps預設值:「true」
如果啟用這項政策,從「nodep」屬性降級後,查詢作業的依附元件圖表就會包含該屬性。常見的「nodep」屬性為「visibility」。執行並剖析「資訊建構語言」的輸出內容,瞭解建構語言中的所有「nodep」屬性。
標記:build_file_semantics
--output=<a string>預設值:「label」
輸出 cquery 結果的格式。允許的 cquery 值為:label、label_Kind、textproto、轉換、proto、streamed_proto、jsonproto。如果選取「轉換」,就必須一併指定 --transitions=(lite|full) 選項。
標記:terminal_output
--[no]proto:default_values預設值:「true」
如果為 true,系統會納入 BUILD 檔案中未明確指定值的屬性,否則會省略。這個選項適用於 --output=proto
標記:terminal_output
--[no]proto:definition_stack 預設值:「false」
填入 definition_stack proto 欄位,該欄位會在定義規則類別時,記錄每個規則例項的 Starlark 呼叫堆疊。
標記:terminal_output
--[no]proto:flatten_selects預設值:「true」
啟用後,系統會整併 select() 建立的可設定屬性。對於清單類型而言,扁平化的表示式呈現為一份清單,其中僅包含選取地圖的每個值一次。純量類型會扁平化為空值。
標記:build_file_semantics
--[no]proto:include_attribute_source_aspects 預設值:「false」
為每個屬性的 source_aspect_name proto 欄位填入屬性來源切面的資訊 (如果沒有屬性,則為空白字串)。
標記:terminal_output
--[no]proto:include_configurations預設值:「true」
設為啟用後,proto 輸出內容會包含設定的相關資訊。停用後,cquery proto 輸出格式與查詢輸出格式類似。
標記:affects_outputs
--[no]proto:include_synthetic_attribute_hash 預設值:「false」
是否要計算及填入 $internal_attr_hash 屬性。
標記:terminal_output
--[no]proto:instantiation_stack 預設值:「false」
填入每項規則的例項化呼叫堆疊。請注意,如要這麼做,堆疊必須具有
標記:terminal_output
--[no]proto:locations預設值:「true」
是否要在 proto 輸出內容中輸出位置資訊。
標記:terminal_output
--proto:output_rule_attrs=<comma-separated list of options> 預設值:「全部」
要包含在輸出內容中的屬性清單 (以半形逗號分隔)。預設為所有屬性。設為空白字串不輸出任何屬性。這個選項適用於 --output=proto。
標記:terminal_output
--[no]proto:rule_inputs_and_outputs預設值:「true」
指定是否填入「Rule_input」和「Rule_output」欄位。
標記:terminal_output
--query_file=<a string> 預設值:「」
如有設定,查詢會從這裡命名的檔案讀取查詢,而不是透過指令列讀取。在這裡指定檔案以及指令列查詢會發生錯誤。
標記:changes_inputs
--[no]relative_locations 預設值:「false」
如果為 True,XML 和 proto 輸出內容中的 BUILD 檔案位置將會相對。根據預設,位置輸出是絕對路徑,而且在所有機器中不一致。您可以將這個選項設為 True,即可在不同機器中取得一致的結果。
標記:terminal_output
--show_config_fragments=<off, direct or transitive> 預設值:「關閉」
顯示規則所需的設定片段及其遞移依附元件。這項指標有助於評估設定的目標圖表可修剪的程度。
標記:affects_outputs
--starlark:expr=<a string> 預設值:「」
Starlark 運算式,用於在 cquery 的 --output=starlark 模式下設定各個設定的目標格式。設定的目標會繫結至「目標」。如果未指定 --starlark:expr 和 --starlark:file,則這個選項會預設為「str(target.label)」。同時指定 --starlark:expr 和 --starlark:file 是錯誤。
標記:terminal_output
--starlark:file=<a string> 預設值:「」
定義一個引數中名為「format」的 Starlark 函式檔案名稱,該函式會套用至各個已設定的目標,以做為字串格式。同時指定 --starlark:expr 和 --starlark:file 是錯誤。詳情請參閱「--output=starlark」說明。
標記:terminal_output
--[no]tool_deps預設值:「true」
查詢:如果停用,則「exec configuration」的依附元件不會包含在查詢作業的依附元件圖表中。「exec configuration」的依附元件邊緣 (例如從任何「proto_library」規則的依附元件到通訊協定編譯器的邊緣),通常指向在建構期間執行的工具,而非同一個「目標」程式的一部分。Cquery:如果停用,系統會從頂層目標中發現這個設定目標的頂層目標,篩選出所有已設定的目標。換句話說,如果頂層目標位於目標設定中,系統只會傳回同樣在目標設定中已設定的目標。如果頂層目標位於執行設定中,系統只會傳回執行設定的目標。這個選項「不會」排除已解析的工具鍊。
標記:build_file_semantics
--transitions=<full, lite or none>預設值:「無」
cquery 輸出轉換資訊的格式。
標記:affects_outputs
--universe_scope=<comma-separated list of options> 預設值:「」
以半形逗號分隔的目標模式組合 (加法和減法)。查詢可於由指定目標的遞移性通過所定義的宇宙中執行。這個選項可用於查詢和 cquery 指令。對 cquery 來說,這個選項的輸入內容就是所有答案的基礎,因此這個選項可能會影響設定和轉換。如未指定此選項,系統會假設頂層目標為查詢運算式剖析的目標。注意事項:在 cquery 中,如未指定這個選項,如果無法以頂層選項建構從查詢運算式剖析的目標,建構可能會中斷。
標記:loading_and_analysis
與 Bzlmod 輸出內容和語意相關的選項:
會累積 --allow_yanked_versions=<a string> 個用途
指定模組版本時,請以「<module1>@<version1>,<module2>@<version2>」格式指定在已解析的依附元件圖中,即使這些版本來源不是來自 NonRegistryOverride,仍可在存放區中宣告這些版本。否則,分割版本會導致解析失敗。您也可以使用「BZLMOD_ALLOW_YANKED_VERSIONS」環境變數定義允許的分割版本。您可使用關鍵字「全部」停用這項檢查 (不建議使用)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off> 預設值:「錯誤」
檢查 Bazel 模組的 Bazel 版本相容性。有效值為「error」:可將其提報至解決失敗;設為「off」可停用檢查,「warning」則能在偵測到不相符時顯示警告。
標記:loading_and_analysis
--check_direct_dependencies=<off, warning or error> 預設值:「warning」
檢查根模組中宣告的直接「bazel_dep」依附元件,是否與已解析依附元件圖表中的版本相同。有效值為「off」可停用檢查,「warning」會在偵測到不相符時顯示警告,或是「error」將問題提報至解決失敗。
標記:loading_and_analysis
--[no]configure 預設值:「false」
只擷取基於系統設定目的標示為「configure」的存放區。只有在 --enable_bzlmod 開啟時才能使用。
標記:changes_inputs
--[no]force 預設值:「false」
如有存放區,請忽略現有的存放區,然後再次強制擷取該存放區。只有在 --enable_bzlmod 開啟時才能使用。
標記:changes_inputs
--[no]ignore_dev_dependency 預設值:「false」
如果為 true,Bazel 會忽略根模組 MODULE.bazel 中宣告為「dev_dependency」的「bazel_dep」和「use_extension」。請注意,如果根模組不是根模組,無論此標記的值為何,系統一律會忽略這些開發依附元件。
標記:loading_and_analysis
--lockfile_mode=<off, update or error> (預設):「更新」
指定使用 Lockfile 的方式,以及是否要使用。有效值為「update」可使用 Lockfile,並在出現變更時進行更新;「error」表示使用 Lockfile,但並非最新版本,會擲回錯誤;如果未更新,則為「off」。
標記:loading_and_analysis
會累積 --override_module=<an equals-separated mapping of module name to path> 個用途
以 <module name>=<path> 的格式覆寫本機路徑的模組。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則該路徑會與目前的工作目錄相對。如果指定路徑的開頭是「%workspace%」,代表與工作區根目錄 (也就是「bazel info workspace」的輸出內容) 有關。
會累積 --registry=<a string> 個用途
指定要用來尋找 Bazel 模組依附元件的登錄檔。順序很重要:系統會先在較早的登錄檔中查詢模組,而且只有在之後的登錄檔中缺少模組時,才會改回使用之後的登錄檔。
標記:changes_inputs
會累積 --repo=<a string> 個用途
只擷取指定的存放區 (可能是 {@apparent_repo_name} 或 {@@canonical_repo_name})。只有在 --enable_bzlmod 開啟時才能使用。
標記:changes_inputs
--vendor_dir=<a path> 預設:查看說明
指定應在廠商模式下保存外部存放區的目錄,不論是用於擷取或建立使用這些存放區。路徑可以指定為絕對路徑或相對於工作區目錄的路徑。
標記:loading_and_analysis
會觸發建構時間最佳化的選項:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 預設值:「1s:2,20s:3,1m:5」
限制如果已達到,GcThrashingDetector 會透過 OOM 讓 Bazel 當機,每項限制都以 <period>:<count> 指定,週期為時間長度,計數代表正整數。如果 <period> 內連續 <count> 個 GC 數量超過 --gc_thrashing_threshold 百分比,系統就會觸發 OOM。如要指定多個限制,請以半形逗號分隔。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生完整 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示完整 GC 事件永遠不會觸發下降。如果達到上限,在完整 GC 事件發生且超過保留堆積百分比門檻時,系統不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生輕微 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示次要 GC 事件永遠不會觸發下降。一旦達到限制,發生輕微 GC 事件且超過保留堆積百分比門檻時,系統就不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 預設值:「85」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量至少達到這個門檻,就會捨棄不必要的暫時性 SkyFrame 狀態。調整這個做法,即可減少垃圾收集造成的實際時間影響,也就是以下情形:GC 輾轉現象,是:(i) 這個臨時狀態的記憶體用量造成,(ii) 比在需要時重新建構狀態的成本高昂。
標記: host_machine_resource_optimizations
影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock> 預設:查看說明
記錄指令期間的 Java 航班/機票記錄工具設定檔。支援的剖析事件類型之一 (CPU、牆、分配或鎖定) 必須以引數的形式指定。設定檔將寫入一個檔案,並以事件類型在輸出基本目錄下命名。這個旗標的語法和語意日後可能會變更,以支援其他設定檔類型或輸出格式,請自行承擔風險。
--[no]experimental_record_metrics_for_all_mnemonics 預設值:「false」
根據預設,動作類型數量限制為已執行次數最多的 20 種記憶。如果設定這個選項,系統將寫入所有助測器的統計資料。
--experimental_repository_resolved_file=<a string> 預設值:「」
如果非空白,請使用已執行的所有 Starlark 存放區規則解析資訊編寫 Starlark 值。
標記:affects_outputs
可為不屬於其他類別的 Bazel 指令指定或變更一般輸入的選項:
--experimental_resolved_file_instead_of_workspace=<a string> 預設值:「」
如果讀取指定的已解析檔案 (而非 WORKSPACE 檔案) 為非空白檔案
標記: changes_inputs
遠端快取和執行選項:
--experimental_downloader_config=<a string> 預設:查看說明
指定要用於設定遠端下載程式的檔案。這個檔案由各行組成,每個指令都是以指令 (「allow」、「block」或「rewrite」) 開頭,後面接有主機名稱 (適用於「allow」和「block」) 或兩個模式,一個要比對做為替代網址,另一個則做為替代網址,並以「$1」開頭的反向參照。即使多個「重新編寫」指令,也可視為相同網址的「rewrite」指令。
--experimental_worker_for_repo_fetching=<off, platform, virtual or auto> 預設值:「auto」
用於存放區擷取的執行緒模式。如果設為「off」,系統就不會使用任何工作站執行緒,且會重新啟動存放區擷取作業。如果設為「平台」,則會使用平台執行緒 (即 OS 執行緒) 或虛擬執行緒 (如設為「virtual」)。如果設為「auto」,系統就會在可用的情況下使用虛擬執行緒 (即在 JDK 21 以上版本中執行),否則就不會使用工作站執行緒。
其他未分類的選項。
會累積 --deleted_packages=<comma-separated list of package names> 個用途
逗號分隔的套件名稱清單,即使這些套件出現在套件路徑中,建構系統也不會將其視為不存在。 刪除現有套件「x」的子套件「x/y」時,請使用這個選項。舉例來說,在用戶端刪除 x/y/BUILD 後,如果建構系統發現標籤「//x:y/z」仍由另一個 package_path 項目提供,可能會抱怨。指定 --deleted_packages x/y 以避免這個問題。
--[no]fetch預設值:「true」
允許指令擷取外部依附元件。如果設為 False,這個指令會使用依附元件的任何快取版本;如果不存在,該指令就會導致失敗。
會累積 --override_repository=<an equals-separated mapping of repository name to path> 個用途
用 <repository name>=<path> 的格式覆寫本機路徑的存放區。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則以相對路徑為準。如果指定路徑的開頭是「%workspace%」,代表與工作區根目錄 (也就是「bazel info workspace」的輸出內容) 有關。
--package_path=<colon-separated list of options>預設值:「%workspace%」
尋找套件的位置清單 (以半形冒號分隔)。開頭為「%workspace%」的元素與所屬工作區相對。如果省略或留空,則預設值為「bazel info default-package-path」的輸出內容。
--[no]show_loading_progress預設值:「true」
啟用後,Bazel 就會顯示「Loading package:」訊息。
控制建構執行作業的選項:
--[no]all 預設值:「false」
擷取建立任何目標或存放區所需的所有外部存放區。只有在 --enable_bzlmod 開啟時才能使用。
標記:changes_inputs
是否要直接呼叫檔案系統來建立符號連結樹狀結構
標記:loading_and_analysisexecutionexperimental
--[no]experimental_persistent_aar_extractor 預設值:「false」
使用工作站啟用永久性擷取器。
標記:execution
--[no]experimental_remotable_source_manifests 預設值:「false」
是否要讓來源資訊清單動作可恢復運作
標記:loading_and_analysisexecutionexperimental
--[no]experimental_split_coverage_postprocessing 預設值:「false」
如果為 true,Bazel 會在新的另一個環境中執行涵蓋率後續處理來進行測試。
標記:execution
--[no]experimental_strict_fileset_output 預設值:「false」
如果啟用此選項,檔案集會將所有輸出構件視為一般檔案。不會週遊目錄,也不會對符號連結敏感。
標記:execution
--[no]keep_going [-k] 預設值:「false」
發生錯誤後請盡可能繼續操作。雖然失敗的目標及依附的目標無法分析,但您可以採用這些目標的其他必要條件。
標記:eagerness_to_exit
--loading_phase_threads=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5"> 預設值:「auto」
用於載入/分析階段的平行執行緒數量。可使用整數或關鍵字 (「auto」、「HOST_CPUS」、「HOST_RAM」),視需要後面加上運算 ([-|*]<float>),例如「auto」、「HOST_CPUS*.5」。「auto」會根據主機資源設定合理的預設值。不得小於 1。
標記:bazel_internal_configuration
--modify_execution_info=<regex=[+-]key,regex=[+-]key,...> 預設值:「」
根據動作記憶法,在動作的執行資訊中新增或移除鍵。僅適用於支援執行資訊的動作。許多常見動作都支援執行資訊,例如 Genrule、CppCompile、Javac、StarlarkAction、TestRunner。由於許多規則運算式都可能適用於同一個文法,因此指定多個值時,順序很重要。 語法:「regex=[+-]key,regex=[+-]key,...」。 範例: 「.*=+x,.*=-y,.*=+z」會將「x」和「z」加入,並從所有動作的執行作業資訊中移除「y」。 「Genrule=+requires-x」會在所有 Genrule 動作的執行資訊中加入「requires-x」。 「(?!Genrule).*=-requires-x' 會從所有非 Genrule 動作的執行資訊中移除「requires-x」。
標記:executionaffects_outputsloading_and_analysis
--persistent_android_dex_desugar
使用工作站啟用持續的 Android dex 和去糖動作。
展開至:
  --internal_persistent_android_dex_desugar
  --strategy=Desugar=worker
  --strategy=DexBuilder=worker

標記: host_machine_resource_optimizationsexecution
--persistent_android_resource_processor
使用工作站啟用永久 Android 資源處理器。
展開至:
--internal_persistent_busybox_tools
--strategy=AaptPackage=worker
--strategy=AndroidResourceParser=worker
--strategy=AndroidResourceValidator=worker
--strategy=AndroidResourceCompiler=worker
--strategy=RClassGenerator=worker
--strategy=AndroidResourceLink=worker
--strategy=AndroidAapt2=worker
--strategy=AndroidAssetMerger=worker
--strategy=AndroidResourceMerger=worker
--strategy=AndroidCompiledResourceMerger=worker
--strategy=ManifestMerger=worker
--strategy=AndroidManifestMerger=worker
--strategy=ManifestMerger=worker
--strategy=AndroidManifestMerger=worker



--strategy=Aapt2Optimize=worker--strategy=AARGenerator=worker--strategy=ProcessDatabinding=worker--strategy=GenerateDataBindingBaseClasses=workerhost_machine_resource_optimizationsexecution
--persistent_multiplex_android_dex_desugar
使用工作站啟用持續的多工處理 Android dex 和去糖動作。
展開至:
  --persistent_android_dex_desugar
  --internal_persistent_multiplex_android_dex_desugar

標記: host_machine_resource_optimizationsexecution
--persistent_multiplex_android_resource_processor
使用工作站啟用永久多工 Android 資源處理器。
展開至:
--persistent_android_resource_processor
--modify_execution_info=AaptPackage=+supports-multiplex-workers
--modify_execution_info=AndroidResourceParser=+supports-multiplex-workers
--modify_execution_info=AndroidResourceValidator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceCompiler=+supports-multiplex-workers
--modify_execution_info=RClassGenerator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceLink=+supports-multiplex-workers
--modify_execution_info=AndroidAapt2=+supports-multiplex-workers
--modify_execution_info=AndroidAssetMerger=+supports-multiplex-workers
--modify_execution_info=AndroidResourceMerger=+supports-multiplex-workers
--modify_execution_info=AndroidCompiledResourceMerger=+supports-multiplex-workers
--modify_execution_info=ManifestMerger=+supports-multiplex-workers
--modify_execution_info=AndroidManifestMerger=+supports-multiplex-workers
--modify_execution_info=ManifestMerger=+supports-multiplex-workers
--modify_execution_info=AndroidManifestMerger=+supports-multiplex-workers
--modify_execution_info=Aapt2Optimize=+supports-multiplex-workers
1}
--modify_execution_info=AARGenerator=+supports-multiplex-workershost_machine_resource_optimizationsexecution
--persistent_multiplex_android_tools
啟用永久和多工處理 Android 工具 (DEX 處理、脫糖、資源處理)。
展開至:
  --internal_persistent_multiplex_busybox_tools
  --persistent_multiplex_android_resource_processor
  --persistent_multiplex_android_dex_desugar

標記: host_machine_resource_optimizationsexecution
--[no]use_target_platform_for_tests 預設值:「false」
如果為 true,Bazel 會使用目標平台來執行測試,而非測試執行群組。
標記: execution
設定用於執行動作的工具鍊的選項:
--android_compiler=<a string> 預設:查看說明
Android 目標編譯器。
標記:affects_outputsloading_and_analysisloses_incremental_state
--android_crosstool_top=<a build target label> 預設值:「//external:android/crosstool」
用於 Android 建構作業的 C++ 編譯器的位置。
標記:affects_outputschanges_inputsloading_and_analysisloses_incremental_state
--android_grte_top=<a label> 預設:查看說明
Android 目標 grte_top。
標記:changes_inputsloading_and_analysisloses_incremental_state
--android_manifest_merger=<legacy, android or force_android> 預設值:「android」
選取要用於 android_binary 規則的資訊清單合併工具。協助從舊版合併工具轉換至 Android 資訊清單合併工具的旗標。
標記:affects_outputsloading_and_analysisloses_incremental_state
--android_platforms=<a build target label> 預設值:「」
設定 android_binary 目標使用的平台。如果指定多個平台,二進位檔就是笨重的 APK,其中包含每個指定目標平台的原生二進位檔。
標記:changes_inputsloading_and_analysisloses_incremental_state
--android_sdk=<a build target label> 預設值:「@bazel_tools//tools/android:sdk」
指定用於建構 Android 應用程式的 Android SDK/平台。
標記:changes_inputsloading_and_analysisloses_incremental_state
--apple_crosstool_top=<a build target label> 預設值:「@bazel_tools//tools/cpp:toolchain」
用於 Apple 和 Objc 規則及其依附元件的 Crosstool 套件標籤。
標記:loses_incremental_statechanges_inputs
--cc_output_directory_tag=<a string> 預設值:「」
指定要新增至設定目錄的後置字串。
標記:affects_outputs
--compiler=<a string> 預設:查看說明
用於編譯目標的 C++ 編譯器。
標記:loading_and_analysisexecution
--coverage_output_generator=<a build target label> 預設值:「@bazel_tools//tools/test:lcov_merger」
用於後處理原始涵蓋率報表的二進位檔位置。這必須是包含單一檔案 (即二進位) 的檔案群組。預設值為「//tools/test:lcov_merger」。
標記:changes_inputsaffects_outputsloading_and_analysis
--coverage_report_generator=<a build target label> 預設值:「@bazel_tools//tools/test:coverage_report_generator」
用於產生涵蓋率報表的二進位檔案位置。這必須是包含單一檔案 (即二進位) 的檔案群組。預設值為「//tools/test:coverage_report_generator」。
標記:changes_inputsaffects_outputsloading_and_analysis
--coverage_support=<a build target label> 預設值:「@bazel_tools//tools/test:coverage_support」
每個測試動作收集程式碼涵蓋率的測試動作所需的支援檔案位置。預設值為「//tools/test:coverage_support」。
標記:changes_inputsaffects_outputsloading_and_analysis
--custom_malloc=<a build target label> 預設:查看說明
指定自訂 Malloc 實作。這項設定會覆寫建構規則中的 Malloc 屬性。
標記:changes_inputsaffects_outputs
會累積 --experimental_add_exec_constraints_to_targets=<a '<RegexFilter>=<label1>[,<label2>,...]' assignment> 個用途
逗號分隔的規則運算式清單,每個運算式都會按照「-」(排除運算式) 開頭,指派 (=) 至以半形逗號分隔的限制值目標清單。如果目標未符合排除運算式,且至少有一個正運算式,系統會假設該運算式將限制值宣告為執行限制,並據此執行該目標工具鍊的解析作業。範例://demo,-test=@platforms//cpus:x86_64 會在 //demo 底下的任何目標中加入「x86_64」,但名稱包含「test」的目標除外。
標記:loading_and_analysis
--[no]experimental_include_xcode_execution_requirements 預設值:「false」
如果已設定,則在每個 Xcode 動作中加入「requires-xcode:{version}」執行要求。如果 Xcode 版本具有連字號標籤,請同時加入「requires-xcode-label:{version_label}」執行要求。
標記:loses_incremental_stateloading_and_analysisexecution
--[no]experimental_prefer_mutual_xcode預設值:「true」
如果為 true,請使用本機和遠端可用的最新 Xcode。如果設為 False 或沒有共同可用的版本,請使用 xcode-select 選取的本機 Xcode 版本。
標記:loses_incremental_state
--extra_execution_platforms=<comma-separated list of options> 預設值:「」
可做為執行平台來執行動作的平台。平台可以根據確切目標或目標模式指定。系統會先考量這些平台,再透過暫存_execution_platforms() 宣告到 WORKSPACE 檔案中的平台。這個選項只能設定一次,之後的項目會覆寫先前的旗標設定。
標記:execution
會累積 --extra_toolchains=<comma-separated list of options> 個用途
在工具鍊解析期間要考量的工具鍊規則。工具鍊可以根據確切目標或目標模式指定。系統會先考量這些工具鍊,再透過暫存_toolchains() 在 WORKSPACE 檔案內宣告的項目。
標記:affects_outputschanges_inputsloading_and_analysis
--grte_top=<a label> 預設:查看說明
已勾選 libc 程式庫的標籤。預設值是由跨工具工具鍊選取,您幾乎不需要覆寫這個值。
標記:action_command_linesaffects_outputs
--host_compiler=<a string> 預設:查看說明
免人工管理標記。將在日後推出的版本中移除。
標記:loading_and_analysisexecution
--host_grte_top=<a label> 預設:查看說明
如果指定此選項,這項設定會覆寫執行設定的 libc 頂層目錄 (--grte_top)。
標記:action_command_linesaffects_outputs
--host_platform=<a build target label> 預設值:「@local_config_platform//:host」
描述主機系統的平台規則標籤。
標記:affects_outputschanges_inputsloading_and_analysis
--[no]incompatible_dont_enable_host_nonhost_crosstool_features預設值:「true」
如果設為 True,Bazel 就不會啟用 c++ 工具鍊中的「主機」和「非主機」功能 (詳情請參閱 https://github.com/bazelbuild/bazel/issues/7407)。
標記:loading_and_analysisincompatible_change
--[no]incompatible_enable_android_toolchain_resolution預設值:「true」
使用工具鍊解析度選取 Android 規則 (Starlark 和原生) 的 Android SDK
標記: loading_and_analysisincompatible_change
--[no]incompatible_enable_apple_toolchain_resolution 預設值:「false」
使用工具鍊解析功能,選取 Apple SDK for Apple 規則 (Starlark 和原生程式碼)
代碼: loading_and_analysisincompatible_change
--[no]incompatible_make_thinlto_command_lines_standalone預設值:「true」
這個標記為 noop,且已排定移除時間。
標記:no_opincompatible_change
--[no]incompatible_remove_legacy_whole_archive預設值:「true」
如果設為 True,Bazel 預設不會連結整個封存檔中的程式庫依附元件 (如需遷移操作說明,請參閱 https://github.com/bazelbuild/bazel/issues/7362)。
標記:loading_and_analysisincompatible_change
--[no]incompatible_require_ctx_in_configure_features預設值:「true」
這個標記為 noop,且已排定移除時間。
標記:no_opincompatible_change
--[no]incompatible_strip_executable_safely 預設值:「false」
如果為 true,可執行檔的移除動作會使用旗標 -x,這不會破壞動態符號解析功能。
標記:action_command_linesincompatible_change
--[no]interface_shared_objects預設值:「true」
如果工具鍊支援介面共用物件,請使用介面共用物件。所有 ELF 工具鍊目前都支援這項設定。
標記:loading_and_analysisaffects_outputsaffects_outputs
--ios_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
指定用於建構 iOS 應用程式的 iOS SDK 版本。如果未指定,則會使用「xcode_version」中的預設 iOS SDK 版本。
標記:loses_incremental_state
--macos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
指定要用於建構 macOS 應用程式的 macOS SDK 版本。如果未指定,系統會使用「xcode_version」中的預設 macOS SDK 版本。
標記:loses_incremental_state
--minimum_os_version=<a string> 預設:查看說明
編譯目標的最低作業系統版本。
標記:loading_and_analysisaffects_outputs
--platform_mappings=<a relative path> 預設值:「」
對應檔案的位置,用於說明如未設定任何平台,或該平台已存在時要設定哪些平台,該平台會使用哪個平台。此值必須與主要工作區根層級相關。預設值為「platform_mappings」(直接位於工作區根目錄下的檔案)。
標記:affects_outputschanges_inputsloading_and_analysisimmutable
--platforms=<a build target label> 預設值:「」
平台規則標籤,用於說明目前指令的目標平台。
標記:affects_outputschanges_inputsloading_and_analysis
--python2_path=<a string> 預設:查看說明
已淘汰,無人工管理,已由「--incompatible_use_python_toolchains」停用。
標記:no_opdeprecated
--python3_path=<a string> 預設:查看說明
已淘汰,無人工管理,已由「--incompatible_use_python_toolchains」停用。
標記:no_opdeprecated
--python_path=<a string> 預設:查看說明
為在目標平台執行 Python 目標而叫用的 Python 解譯器絕對路徑。已淘汰;已由 --incompatible_use_python_toolchains 停用。
標記:loading_and_analysisaffects_outputs
--python_top=<a build target label> 預設:查看說明
代表已叫用 Python 解譯器在目標平台上執行 Python 目標的 py_runtime 標籤。已淘汰;已由 --incompatible_use_python_toolchains 停用。
標記:loading_and_analysisaffects_outputs
--tvos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
指定用於建構 tvOS 應用程式的 tvOS SDK 版本。如果未指定,系統會使用「xcode_version」中的預設 tvOS SDK 版本。
標記:loses_incremental_state
--watchos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
指定用於建構 watchOS 應用程式的 watchOS SDK 版本。如果未指定,系統會使用「xcode_version」中的預設 watchOS SDK 版本。
標記:loses_incremental_state
--xcode_version=<a string> 預設:查看說明
如有指定,系統會使用指定版本的 Xcode 進行相關建構動作。如未指定,系統會使用執行程式預設版本的 Xcode。
標記:loses_incremental_state
--xcode_version_config=<a build target label> 預設值:「@bazel_tools//tools/cpp:host_xcodes」
在建構設定中選取 Xcode 版本所使用的 xcode_config 規則標籤。
標記:loses_incremental_stateloading_and_analysis
控制指令輸出內容的選項:
--[no]apple_generate_dsym 預設值:「false」
是否要產生偵錯符號 (.dSYM) 檔案。
標記:affects_outputsaction_command_lines
如果為 true,請針對所有目標建構執行檔案符號連結樹系。設為 false 時,請只在本地動作、測試或執行指令必要時寫入。
標記:affects_outputs
--[no]build_runfile_manifests預設值:「true」
如果為 true,請為所有目標寫入執行檔案資訊清單。如果設為 false,請省略這些參數。如果為 false,本機測試就無法執行。
標記:affects_outputs
--[no]build_test_dwp 預設值:「false」
啟用後,以靜態方式建構 C++ 測試時,系統也會自動建構測試二進位檔的 .dwp 檔案。
標記:loading_and_analysisaffects_outputs
--cc_proto_library_header_suffixes=<comma-separated set of options> 預設值:「.pb.h」
設定 cc_proto_library 建立的標頭檔案後置字串。
標記:affects_outputsloading_and_analysis
--cc_proto_library_source_suffixes=<comma-separated set of options> 預設值:「.pb.cc」
設定 cc_proto_library 建立的來源檔案後置字串。
標記:affects_outputsloading_and_analysis
--[no]experimental_proto_descriptor_sets_include_source_info 預設值:「false」
針對 proto_library 中的替代 Java API 版本執行額外動作。
標記:affects_outputsloading_and_analysisexperimental
--[no]experimental_proto_extra_actions 預設值:「false」
針對 proto_library 中的替代 Java API 版本執行額外動作。
標記:affects_outputsloading_and_analysisexperimental
--[no]experimental_save_feature_state 預設值:「false」
將已啟用和要求的功能狀態儲存為編譯的輸出內容。
標記:affects_outputsexperimental
--fission=<a set of compilation modes> 預設值:「no」
指定哪些編譯模式會對 C++ 編譯和連結使用擴散。可以是 {'fastbuild', 'dbg', 'opt'} 的組合或特殊值「yes」,即可啟用所有模式,而設為「no」以停用所有模式。
標記:loading_and_analysisaction_command_linesaffects_outputs
--[no]incompatible_always_include_files_in_data預設值:「true」
如果為 true,原生規則會將資料依附元件的 <code>DefaultInfo.files</code> 新增至 runfile,以符合 Starlark 規則的建議行為 (https://bazel.build/extending/rules#runfiles_features_to_avoid) 。
標記:affects_outputsincompatible_change
--[no]legacy_external_runfiles預設值:「true」
如果為 true,請針對 .runfiles/wsname/external/repo 和 .runfiles/repo 中的外部存放區建構 runfile symlink 樹系。
標記:affects_outputs
--[no]objc_generate_linkmap 預設值:「false」
指定是否要產生連結對應檔案。
標記:affects_outputs
--[no]save_temps 預設值:「false」
如有設定,系統會儲存 gcc 的暫時輸出。其中包括 .s 檔案 (組合器程式碼)、.i 檔案 (預先處理的 C) 和 .ii 檔案 (預先處理的 C++)。
標記:affects_outputs
可讓使用者設定預定輸出內容的選項,這會影響其值,但其值與存在不同:
會累積 --action_env=<a 'name=value' assignment with an optional value part> 個用途
指定要用於目標設定動作的環境變數組合。變數可以用名稱指定;在此情況下,值會從叫用環境取得;您也可以用 name=value 組合 (用來設定與叫用環境無關的值)。這個選項可以多次使用;對於同一個變數而言,選項有「最新的勝出項目」,以及因不同變數而累積的選項。
標記:action_command_lines
--android_cpu=<a string> 預設值:「armeabi-v7a」
Android 目標 CPU。
標記:affects_outputsloading_and_analysisloses_incremental_state
--[no]android_databinding_use_androidx預設值:「true」
產生與 AndroidX 相容的資料繫結檔案。這個函式只能搭配資料繫結 v2 使用。這個旗標為免人工管理。
標記:affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]android_databinding_use_v3_4_args預設值:「true」
將 Android Databinding v2 與 3.4.0 引數搭配使用。這個旗標為免人工管理。
標記:affects_outputsloading_and_analysisloses_incremental_stateexperimental
--android_dynamic_mode=<off, default or fully> 預設值:「關閉」
決定當 cc_binary 未明確建立共用程式庫時,是否要動態連結 Android 規則的 C++ 解碼。「default」表示 pzel 會選擇是否要動態連結。「完整」表示所有程式庫將動態連結。如果關閉,則主要會以靜態模式連結所有程式庫。
標記:affects_outputsloading_and_analysis
--android_manifest_merger_order=<alphabetical, alphabetical_by_configuration or dependency> 預設值:「alphabetical」
設定要傳遞至 Android 二進位檔資訊清單合併工具的資訊清單順序。ALPHABETICAL 表示資訊清單會依照執行作業根目錄的路徑排序。ALPHABETICAL_BY_CONFIGURATION 代表資訊清單會依照輸出目錄中設定目錄的路徑排序。DEPENDENCY 表示資訊清單會按照各個程式庫的資訊清單排序,在依附元件的資訊清單前面。
標記:action_command_linesexecution
--[no]android_resource_shrinking 預設值:「false」
為使用 ProGuard 的 android_binary APK 啟用資源縮減功能。
標記:affects_outputsloading_and_analysis
--[no]build_python_zip 預設值:「auto」
建構 Python 執行檔 ZIP 檔案;在 Windows 上,關閉其他平台
標記: affects_outputs
會累積 --catalyst_cpus=<comma-separated list of options> 個用途
用於建構 Apple Catalyst 二進位檔的架構清單 (以半形逗號分隔)。
標記:loses_incremental_stateloading_and_analysis
--[no]collect_code_coverage 預設值:「false」
如有指定,Bazel 就會檢測程式碼 (盡可能使用離線檢測功能),並在測試期間收集涵蓋率資訊。只有相符的目標 --instrumentation_filter 會受到影響。一般而言,不應直接指定這個選項,請改用「bazelCoverage」指令。
標記:affects_outputs
--compilation_mode=<fastbuild, dbg or opt> [-c] 預設值:「Fastbuild」
指定二進位檔的建構模式。值:「fastbuild」、「dbg」、「opt」。
標記:affects_outputsaction_command_lines
會累積 --conlyopt=<a string> 個用途
編譯 C 來源檔案時,可傳送至 gcc 的其他選項。
標記:action_command_linesaffects_outputs
會累積 --copt=<a string> 個用途
傳送至 gcc 的其他選項。
標記:action_command_linesaffects_outputs
--cpu=<a string> 預設值:「」
目標 CPU。
標記:changes_inputsaffects_outputs
--cs_fdo_absolute_path=<a string> 預設:查看說明
使用 CSFDO 設定檔資訊最佳化編譯。為內含設定檔、原始或已建立索引 LLVM 設定檔的 ZIP 檔案指定絕對路徑名稱。
標記:affects_outputs
--cs_fdo_instrument=<a string> 預設:查看說明
產生具有情境敏感 FDO 檢測的二進位檔。使用 Clang/LLVM 編譯器時,也接受在執行階段傾印原始設定檔檔案的目錄名稱。
標記:affects_outputs
--cs_fdo_profile=<a build target label> 預設:查看說明
cs_fdo_profile,代表要用於最佳化的結構定義敏感設定檔。
標記:affects_outputs
會累積 --cxxopt=<a string> 個用途
在編譯 C++ 來源檔案時,傳送至 gcc 的其他選項。
標記:action_command_linesaffects_outputs
會累積 --define=<a 'name=value' assignment> 個用途
每個 --Definition 選項會指定建構變數的指派作業。如果變數有多個值,則會傳回最後一個值。
標記:changes_inputsaffects_outputs
--dynamic_mode=<off, default or fully> 預設值:「default」
決定 C++ 二進位檔是否會動態連結。「default」表示 Bazel 會選擇是否要動態連結。「完整」表示所有程式庫將動態連結。如果關閉,則主要會以靜態模式連結所有程式庫。
標記:loading_and_analysisaffects_outputs
--[no]enable_fdo_profile_absolute_path預設值:「true」
如果設定此設定,使用 fdo_清楚說明_profile_path 會引發錯誤。
標記:affects_outputs
--[no]enable_runfiles 預設值:「auto」
啟用執行檔案符號連結樹狀結構。根據預設,在 Windows 在其他平台上是關閉狀態。
標記:affects_outputs
會累積 --experimental_action_listener=<a build target label> 個用途
建議使用切面。使用 action_listener 將 extra_action 附加至現有的建構動作。
標記:executionexperimental
--[no]experimental_android_compress_java_resources 預設值:「false」
壓縮 APK 中的 Java 資源
標記:affects_outputsloading_and_analysisexperimental
--[no]experimental_android_databinding_v2預設值:「true」
使用 Android 資料繫結第 2 版。這個旗標為免人工管理。
標記:affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]experimental_android_resource_shrinking 預設值:「false」
為使用 ProGuard 的 android_binary APK 啟用資源縮減功能。
標記:affects_outputsloading_and_analysis
--[no]experimental_android_rewrite_dexes_with_rex 預設值:「false」
使用 Rex 工具重新編寫 dex 檔案
標記:affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]experimental_collect_code_coverage_for_generated_files 預設值:「false」
如有指定,Bazel 也會針對產生的檔案產生涵蓋率資訊。
標記:affects_outputs
--experimental_objc_fastbuild_options=<comma-separated list of options> 預設值:「-O0,-DDEBUG=1」
使用這些字串做為 objc Fastbuild 編譯器選項。
標記:action_command_lines
--[no]experimental_omitfp 預設值:「false」
如果為 True,請使用 libunwind 進行堆疊展開,並使用 -fomit-frame-pointer 和 -fasync-unwind-tables 編譯。
標記:action_command_linesaffects_outputsexperimental
--experimental_output_paths=<off, content or strip> 預設值:「關閉」
要在輸出樹狀結構規則中的哪個位置寫入輸出內容,特別是針對多平台 / 多設定版本。這是非常實驗性。詳情請參閱 https://github.com/bazelbuild/bazel/issues/6526。Starlark 動作可將「supports-path-mapping」鍵新增至「execution_requirements」索引,選擇採用路徑對應。
標記:loses_incremental_statebazel_internal_configurationaffects_outputsexecution
會累積 --experimental_override_name_platform_in_output_dir=<a 'label=value' assignment> 個用途
每個項目均應採用格式為「label=value」,其中標籤是指平台,而值則是要在輸出路徑中使用的簡稱。僅適用於 --experimental_platform_in_output_dir 為 true 的情況。命名優先順序最高。
標記:affects_outputsexperimental
--[no]experimental_platform_in_output_dir 預設值:「false」
如果為 true,輸出目錄名稱會使用目標平台的簡稱,而不是 CPU。確切機制屬於實驗性質,隨時可能變更:首先,在極少數的情況下,--platforms 選項沒有確切的值,系統會使用平台選項的雜湊值。接下來,如果目前平台的任何簡稱是由 --experimental_override_name_platform_in_output_dir 註冊,系統會使用簡稱。然後,如果已設定 --experimental_use_platforms_in_output_dir_legacy_heuristic,請使用以目前平台標籤為依據的簡稱。最後,平台選項的雜湊只有在不得已的情況下才能使用。
標記:affects_outputsexperimental
--[no]experimental_use_llvm_covmap 預設值:「false」
如有指定,Bazel 會在啟用 collect_code_coverage 時,產生 llvm-cov 涵蓋範圍地圖資訊,而非 gcov。
標記:changes_inputsaffects_outputsloading_and_analysisexperimental
--[no]experimental_use_platforms_in_output_dir_legacy_heuristic預設值:「true」
請將這個標記僅用於建議的遷移或測試策略。請注意,經驗法則有已知的不足之處,建議您改用 --experimental_override_name_platform_in_output_dir。
標記:affects_outputsexperimental
--fat_apk_cpu=<comma-separated set of options> 預設值:「armeabi-v7a」
設定這個選項會啟用笨重 APK,此 APK 會包含所有指定目標架構的原生二進位檔,例如--fat_apk_cpu=x86,armeabi-v7a. 如果指定這個旗標,Android_binary 規則的依附元件會忽略 --android_cpu。
標記:affects_outputsloading_and_analysisloses_incremental_state
--[no]fat_apk_hwasan 預設值:「false」
免人工管理標記。將在日後推出的版本中移除。
標記:no_op
--fdo_instrument=<a string> 預設:查看說明
使用 FDO 檢測功能產生二進位檔。使用 Clang/LLVM 編譯器時,也接受在執行階段傾印原始設定檔檔案的目錄名稱。
標記:affects_outputs
--fdo_optimize=<a string> 預設:查看說明
使用 FDO 設定檔資訊最佳化編譯。指定含有 .gcda 檔案樹狀結構的 ZIP 檔案名稱、包含自動設定檔的 afdo 檔案,或是 LLVM 設定檔檔案。此旗標也接受指定為標籤的檔案 (例如「//foo/bar:file.afdo」,因此您可能需要將「exports_files」指令加入對應的套件),以及指向「fdo_profile」目標的標籤。此旗標將由「fdo_profile」規則取代。
標記:affects_outputs
--fdo_prefetch_hints=<a build target label> 預設:查看說明
使用快取預先擷取提示。
標記:affects_outputs
--fdo_profile=<a build target label> 預設:查看說明
代表要用於最佳化的設定檔 fdo_profile。
標記:affects_outputs
會累積 --features=<a string> 個用途
系統會針對在目標設定中建立的目標,預設啟用或停用特定功能。如果指定 -<feature>,該功能就會停用。排除功能一律會覆寫正值。另請參閱 --host_features
標記: changes_inputsaffects_outputs
--[no]force_pic 預設值:「false」
如果啟用這個選項,所有 C++ 編譯就會產生位置獨立程式碼 (「-fPIC」),連結偏好 PIC 預先建構程式庫,而非非 PIC 程式庫,而連結會產生位置獨立的執行檔 (「-pie」)。
標記:loading_and_analysisaffects_outputs
會累積 --host_action_env=<a 'name=value' assignment with an optional value part> 個用途
指定適用於執行設定動作的環境變數組合。變數可以用名稱指定;在此情況下,值會從叫用環境取得;您也可以用 name=value 組合 (用來設定與叫用環境無關的值)。這個選項可以多次使用;對於同一個變數而言,選項有「最新的勝出項目」,以及因不同變數而累積的選項。
標記:action_command_lines
--host_compilation_mode=<fastbuild, dbg or opt> 預設值:「opt」
指定建構期間用來內建工具的模式。值:「fastbuild」、「dbg」、「opt」。
標記:affects_outputsaction_command_lines
會累積 --host_conlyopt=<a string> 個用途
在執行設定中編譯 C (而非 C++) 來源檔案時,可傳送至 C 編譯器的其他選項。
標記:action_command_linesaffects_outputs
會累積 --host_copt=<a string> 個用途
針對執行設定中建立的工具,傳送至 C 編譯器的其他選項。
標記:action_command_linesaffects_outputs
--host_cpu=<a string> 預設值:「」
主機 CPU。
標記:changes_inputsaffects_outputs
會累積 --host_cxxopt=<a string> 個用途
針對執行設定中建立的工具,傳送至 C++ 編譯器的其他選項。
標記:action_command_linesaffects_outputs
會累積 --host_features=<a string> 個用途
針對在執行設定中建立的目標,系統預設會啟用或停用特定功能。如果指定 -<feature>,該功能就會停用。排除功能一律會覆寫正值。
標記:changes_inputsaffects_outputs
--host_force_python=<PY2 or PY3> 預設:查看說明
覆寫執行設定的 Python 版本。可以是「PY2」或「PY3」。
標記:loading_and_analysisaffects_outputs
會累積 --host_linkopt=<a string> 個用途
在執行設定中連結工具時,將傳送至連結器的其他選項。
標記:action_command_linesaffects_outputs
--host_macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
主機目標的最低相容 macOS 版本。如果未指定,請使用「macos_sdk_version」。
標記:loses_incremental_state
會累積 --host_per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options> 個用途
在執行設定中編譯特定檔案時,選擇性傳送至 C/C++ 編譯器的其他選項。這個選項可以多次傳送。語法:regex_filter@option_1,option_2,...,option_n. regex_filter 代表包含和排除規則運算式模式的清單 (另請參閱 --instrumentation_filter)。 option_1 表示選項_n 代表任意指令列選項。如果選項中含有半形逗號,必須使用反斜線加上引號。選項可以包含 @。只有第一個 @ 用來分割字串。範例:--host_per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 會在 //foo/ 中所有 cc 檔案的 gcc 命令列中加上 -O0 指令列選項 ( bar.cc 除外)。
標記:action_command_linesaffects_outputs
--[no]incompatible_auto_exec_groups 預設值:「false」
啟用後,系統會自動為規則使用的每個工具鍊建立執行群組。為此,工作規則需要在其動作中指定「toolchain」參數。詳情請參閱 https://github.com/bazelbuild/bazel/issues/17134。
標記:affects_outputsincompatible_change
--[no]incompatible_merge_genfiles_directory預設值:「true」
如果為 true,genfiles 目錄會併入 bin 目錄。
標記:affects_outputsincompatible_change
--[no]instrument_test_targets 預設值:「false」
啟用涵蓋率功能後,用於指定是否要考量檢測測試規則。設定之後,系統會檢測 --instrumentation_filter 包含的測試規則。否則,測試規則一律會從涵蓋率檢測作業中排除。
標記:affects_outputs
--instrumentation_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths> 預設值:「-/javatests[/:],-/test/java[/:]」
涵蓋率啟用後,系統只會檢測規則中含有指定規則運算式 (以規則運算式為準) 所含名稱的規則。系統會改為排除前置字串「-」。請注意,只有在已啟用 --instrument_test_targets 時,系統才會檢測非測試規則。
標記:affects_outputs
--ios_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
目標模擬器和裝置相容的 iOS 最低版本。如果未指定,請使用「ios_sdk_version」。
標記:loses_incremental_state
會累積 --ios_multi_cpus=<comma-separated list of options> 個用途
用於建構 ios_application 的架構清單 (以半形逗號分隔)。結果是通用二進位檔,其中包含所有指定架構。
標記:loses_incremental_stateloading_and_analysis
--[no]legacy_whole_archive預設值:「true」
已淘汰,並由 --incompatible_remove_legacy_whole_Archive (詳情請參閱 https://github.com/bazelbuild/bazel/issues/7362)。開啟時,針對含有 linkshared=True 且含有 linkstatic=True 或「-static」連結的 cc_binary 規則的 --whole-Archive。這僅適用於回溯相容性。更理想的替代方法是在必要時使用 alwayslink=1。
標記:action_command_linesaffects_outputsdeprecated
會累積 --linkopt=<a string> 個用途
連結時傳送至 gCC 的其他選項。
標記:action_command_linesaffects_outputs
會累積 --ltobackendopt=<a string> 個用途
這是傳送至 LTO 後端步驟的其他選項 (在 --features=thin_lto 之下)。
標記:action_command_linesaffects_outputs
會累積 --ltoindexopt=<a string> 個用途
這個選項可讓你傳送至 LTO 索引步驟 (位於 --features=thin_lto 下方)。
標記:action_command_linesaffects_outputs
會累積 --macos_cpus=<comma-separated list of options> 個用途
用於建構 Apple macOS 二進位檔的逗號分隔架構清單。
標記:loses_incremental_stateloading_and_analysis
--macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
目標的相容 macOS 最低版本。如果未指定,請使用「macos_sdk_version」。
標記:loses_incremental_state
--memprof_profile=<a build target label> 預設:查看說明
使用 memprof 設定檔。
標記:affects_outputs
--[no]objc_debug_with_GLIBCXX 預設值:「false」
如果已設定,並將編譯模式設為「dbg」,請定義 GLIBCXX_DEBUG、GLIBCXX_DEBUG_PEDANTIC 和 GLIBCPP_CONCEPT_CHECKS。
標記:action_command_lines
--[no]objc_enable_binary_stripping 預設值:「false」
是否要在連結的二進位檔上執行符號和去解碼器去除。如果同時指定這個旗標和 --compile_mode=opt,系統就會執行二進位檔清理作業。
標記:action_command_lines
會累積 --objccopt=<a string> 個用途
編譯 Objective-C/C++ 來源檔案時,可傳送至 gcc 的其他選項。
標記:action_command_lines
會累積 --per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options> 個用途
編譯特定檔案時選擇性傳送至 gcc 的其他選項。這個選項可以多次傳送。語法:regex_filter@option_1,option_2,...,option_n. regex_filter 代表包含和排除規則運算式模式的清單 (另請參閱 --instrumentation_filter)。 option_1 表示選項_n 代表任意指令列選項。如果選項中含有半形逗號,必須使用反斜線加上引號。選項可以包含 @。只有第一個 @ 用來分割字串。範例:--per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 會在 //foo/ 中所有 cc 檔案的 gcc 命令列中加上 -O0 指令列選項 ( bar.cc 除外)。
標記:action_command_linesaffects_outputs
會累積 --per_file_ltobackendopt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options> 個用途
編譯特定後端物件時,選擇性傳遞至 LTO 後端的其他選項 (在 --features=thin_lto 底下)。這個選項可以多次傳送。語法:regex_filter@option_1,option_2,...,option_n. regex_filter 代表包含和排除規則運算式模式的清單, option_1 代表選項_n 代表任意指令列選項。如果選項中含有半形逗號,必須使用反斜線加上引號。選項可以包含 @。只有第一個 @ 用來分割字串。範例:--per_file_ltobackendopt=//foo/.*\.o,-//foo/bar\.o@-O0 會在 //foo/ 中所有檔案的 LTO 後端指令列中加入 -O0 指令列選項,但 bar.o 除外。
標記: action_command_linesaffects_outputs
--platform_suffix=<a string> 預設:查看說明
指定要新增至設定目錄的後置字串。
標記:loses_incremental_stateaffects_outputsloading_and_analysis
--propeller_optimize=<a build target label> 預設:查看說明
使用 Propeller 設定檔資訊將建構目標最佳化。螺旋槳設定檔必須包含至少一個檔案:CCC 設定檔和 ld 設定檔。此旗標接受建構標籤,該標籤必須參照探測器設定檔輸入檔案。舉例來說,定義標籤的 BUILD 檔案可能必須在 a/b/BUILD:propeller_optimize( name = "propeller_profile", cc_profile = "propeller_cc_profile.txt", ld_profile = "propeller_ld_profile.txt",)Exports_files 中,您都必須新增至對應檔案才能檢視。選項必須使用以下格式:--propeller_optimize=//a/b:propeller_profile
標記: action_command_linesaffects_outputs
--propeller_optimize_absolute_cc_profile=<a string> 預設:查看說明
Propeller 最佳化建構作業的 cc_profile 檔案的絕對路徑名稱。
標記:affects_outputs
--propeller_optimize_absolute_ld_profile=<a string> 預設:查看說明
Propeller 最佳化版本的 ld_profile 檔案的絕對路徑名稱。
標記:affects_outputs
--run_under=<a prefix in front of command> 預設:查看說明
在「test」和「run」指令的執行檔之前插入的前置字串。如果值為「foo -bar」,且執行命令列是「test_binary -baz」,則最終命令列是「foo -bar test_binary -baz」。這也可以是執行檔目標的標籤。例如:「valgrind」、「strace」、「strace -c」、「valgrind --quiet --num-callers=20」、「//package:target'」、「//package:target --options」。
標記:action_command_lines
--[no]share_native_deps預設值:「true」
如果為 True,系統會在不同目標之間共用包含相同功能的原生資料庫
標記: loading_and_analysisaffects_outputs
--[no]stamp 預設值:「false」
含有日期、使用者名稱、主機名稱、工作區資訊等的戳記二進位檔。
標記: affects_outputs
--strip=<always, sometimes or never> 預設值:「有時」
指定是否要移除二進位檔和共用程式庫 (使用「-Wl,--strip-debug」)。「sometimes」的預設值表示 iff --compile_mode=fastbuild。
標記:affects_outputs
會累積 --stripopt=<a string> 個用途
產生「<name>.stripped」二進位檔時的其他選項。
標記:action_command_linesaffects_outputs
會累積 --tvos_cpus=<comma-separated list of options> 個用途
用於建構 Apple tvOS 二進位檔的架構清單 (以半形逗號分隔)。
標記:loses_incremental_stateloading_and_analysis
--tvos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
目標模擬器和裝置相容的最低 tvOS 版本。如果未指定,請使用「tvos_sdk_version」。
標記:loses_incremental_state
會累積 --visionos_cpus=<comma-separated list of options> 個用途
用於建構 Apple visionOS 二進位檔的架構清單 (以半形逗號分隔)。
標記:loses_incremental_stateloading_and_analysis
會累積 --watchos_cpus=<comma-separated list of options> 個用途
用於建構 Apple watchOS 二進位檔的架構清單 (以半形逗號分隔)。
標記:loses_incremental_stateloading_and_analysis
--watchos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
目標模擬器和裝置適用的最低相容 watchOS 版本。如果未指定,請使用「watchos_sdk_version」。
標記:loses_incremental_state
--xbinary_fdo=<a build target label> 預設:查看說明
使用 XbinaryFDO 設定檔資訊最佳化編譯。指定預設跨二進位設定檔的名稱。這個選項搭配 --fdo_instrument/--fdo_optimize/--fdo_profile 與未指定 xbinary_fdo 的情況一起採用時,一律會採用這些選項。
標記:affects_outputs
會影響 Bazel 強制執行有效建構輸入內容 (規則定義、旗標組合等) 的選項:
--auto_cpu_environment_group=<a build target label> 預設值:「」
宣告用於將 CPU 值自動對應至 target_environment 值的環境_group。
標記:changes_inputsloading_and_analysisexperimental
--[no]check_licenses 預設值:「false」
確認相依套件設下的授權限制不會與建構的目標發布模式相衝突。根據預設,系統不會勾選授權。
標記:build_file_semantics
--[no]check_visibility預設值:「true」
如果停用這項設定,目標依附元件的瀏覽權限錯誤會降級為警告。
標記:build_file_semantics
--[no]desugar_for_android預設值:「true」
是否要在 dex 之前對 Java 8 位元碼進行脫糖。
標記:affects_outputsloading_and_analysisloses_incremental_state
--[no]desugar_java8_libs 預設值:「false」
是否要在舊版裝置的應用程式中納入支援的 Java 8 程式庫。
標記:affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]enforce_constraints預設值:「true」
檢查每個目標是否相容,並在任何目標含有不支援相同環境的依附元件時回報錯誤
標記: build_file_semantics
--[no]experimental_check_desugar_deps預設值:「true」
是否要在 Android 二進位檔層級仔細檢查正確的脫糖程序。
標記:eagerness_to_exitloading_and_analysisexperimental
--experimental_import_deps_checking=<off, warning or error> 預設值:「關閉」
啟用後,請檢查 aar_import 的依附元件是否完成。這項強制執行作業可能會破壞建構,也可能只會產生警告。
標記:loading_and_analysis
--experimental_strict_java_deps=<off, warn, error, strict or default> 預設值:「default」
如果為 true,檢查 Java 目標是否明確宣告所有直接使用的目標做為依附元件。
標記:build_file_semanticseagerness_to_exit
--[no]incompatible_check_testonly_for_output_files 預設值:「false」
如果啟用這個選項,請查詢產生規則的測試項目,只針對輸出檔案先決目標進行測試。這與瀏覽權限檢查相符。
標記:build_file_semanticsincompatible_change
--[no]incompatible_check_visibility_for_toolchains 預設值:「false」
如果啟用,瀏覽權限檢查設定也會套用至工具鍊實作。
標記:build_file_semanticsincompatible_change
--[no]incompatible_disable_native_android_rules 預設值:「false」
啟用後,系統會停用直接使用原生 Android 規則的功能。請使用位於 https://github.com/bazelbuild/rules_android 的 Starlark Android 規則
標記:eagerness_to_exitincompatible_change
--[no]incompatible_disable_native_apple_binary_rule 預設值:「false」
免人工管理。為顧及回溯相容性,請繼續保留。
標記:eagerness_to_exitincompatible_change
--[no]incompatible_python_disable_py2預設值:「true」
如果為 true,使用 Python 2 設定就會發生錯誤。這包括 python_version=PY2、srcs_version=PY2 和 srcs_version=PY2ONLY。詳情請參閱 https://github.com/bazelbuild/bazel/issues/15684。
標記:loading_and_analysisincompatible_change
--[no]incompatible_validate_top_level_header_inclusions預設值:「true」
這個標記為 noop,且已排定移除時間。
標記:no_opincompatible_change
--python_native_rules_allowlist=<a build target label> 預設:查看說明
強制執行 --incompatible_python_禁止_native_rules 時使用的許可清單 (package_group target)。
標記:loading_and_analysis
--[no]strict_filesets 預設值:「false」
如果啟用這個選項,跨越套件界線的檔案集會回報為錯誤。
標記:build_file_semanticseagerness_to_exit
--strict_proto_deps=<off, warn, error, strict or default> 預設值:「錯誤」
除非「關閉」,否則檢查 proto_library 目標是否明確宣告所有直接使用的目標做為依附元件。
標記:build_file_semanticseagerness_to_exitincompatible_change
--strict_public_imports=<off, warn, error, strict or default> 預設值:「關閉」
除非設為「關閉」,否則檢查 proto_library 目標是否明確將「匯入公開」中使用的所有目標宣告為匯出項目。
標記:build_file_semanticseagerness_to_exitincompatible_change
--[no]strict_system_includes 預設值:「false」
如果為 True,您也必須宣告透過系統 include 路徑 (-isystem) 找到的標頭。
標記:loading_and_analysiseagerness_to_exit
會累積 --target_environment=<a build target label> 個用途
宣告此建構作業的目標環境。必須是「環境」規則的標籤參照。如有指定,所有頂層目標都必須與這個環境相容。
標記:changes_inputs
會影響建構作業簽署輸出內容的選項:
--apk_signing_method=<v1, v2, v1_v2 or v4> 預設值:「v1_v2」
用於簽署 APK 的實作程序
標記:action_command_linesaffects_outputsloading_and_analysis
--[no]device_debug_entitlements預設值:「true」
如果已設定,但編譯模式不是「opt」,objc 應用程式會在簽署時納入偵錯授權。
標記:changes_inputs
--ios_signing_cert_name=<a string> 預設:查看說明
用於 iOS 簽署的憑證名稱。如未設定,系統會改回使用佈建設定檔。可以是憑證的鑰匙圈身分偏好設定或憑證通用名稱的子字串,並按照圖碼簽署的手冊頁面 (SIGNING IDENTITIES) 取得。
標記:action_command_lines
這個選項會影響 Starlark 語言的語意,或是 BUILD 檔案、.bzl 檔案或 WORKSPACE 檔案使用的建構 API。
--[no]incompatible_config_setting_private_default_visibility 預設值:「false」
如果 incompatible_enforce_config_setting_visibility=false,即為不相容性。此外,如果這個旗標為 false,任何沒有明確瀏覽權限屬性的 config_setting 都是 //visibility:public。如果這個標記為 true,config_setting 的瀏覽權限邏輯與其他規則相同。請參閱 https://github.com/bazelbuild/bazel/issues/12933。
標記:loading_and_analysisincompatible_change
--[no]incompatible_disallow_legacy_py_provider預設值:「true」
不操作,我們很快就會移除。
標記:loading_and_analysisincompatible_change
--[no]incompatible_disallow_sdk_frameworks_attributes 預設值:「false」
如果為 true,請禁止 objc_library andobjc_import 中的 sdk_frameworks 和 weak_sdk_frameworks 屬性。
標記:build_file_semanticsincompatible_change
--[no]incompatible_enforce_config_setting_visibility預設值:「true」
如果設為 true,請強制執行 config_setting 瀏覽權限限制。如果設為 False,每個目標都會顯示所有 config_setting。請參閱 https://github.com/bazelbuild/bazel/issues/12932。
標記:loading_and_analysisincompatible_change
如果為 true,請將 objc_library 和 objc_import 中的 alwayslink 屬性設定為 true。
標記:build_file_semanticsincompatible_change
--[no]incompatible_python_disallow_native_rules 預設值:「false」
如果為 true,使用內建的 py_* 規則時會發生錯誤;請改用 rules_python 規則。如需詳細資訊和遷移操作說明,請前往 https://github.com/bazelbuild/bazel/issues/17773。
標記:loading_and_analysisincompatible_change
控制測試環境或測試執行器行為的選項:
--[no]allow_analysis_failures 預設值:「false」
如果為 true,規則目標的分析失敗會使目標的 AnalysisFailureInfo 執行個體傳播包含錯誤說明,不會導致建構失敗。
標記:loading_and_analysisexperimental
--analysis_testing_deps_limit=<an integer> 預設值:「2000」
透過 for_analysis_testing 設定轉換的規則屬性,設定遞移依附元件的數量上限。超過這項限制會產生規則錯誤。
標記:loading_and_analysis
--[no]break_build_on_parallel_dex2oat_failure 預設值:「false」
如果實際的 dex2oat 操作失敗,將導致建構失敗,而不是在測試執行階段中執行 dex2oat。
標記:loading_and_analysisexperimental
會累積 --default_test_resources=<a resource name followed by equal and 1 float or 4 float, e.g memory=10,30,60,100> 個用途
覆寫測試的預設資源量。預期格式為 <resource>=<value>。如果將單一正數指定為 <value>,則會覆寫所有測試大小的預設資源。如果指定 4 個以半形逗號分隔的數字,就會分別覆寫小型、中、大、巨大測試大小的資源數量。值也可以是 HOST_RAM/HOST_CPU,後面加上 [-|*]<float> (例如:memory=HOST_RAM*.1,HOST_RAM*.2,HOST_RAM*.3,HOST_RAM*.4)。此標記指定的預設測試資源會由標記中指定的明確資源覆寫。
--[no]experimental_android_use_parallel_dex2oat 預設值:「false」
並行使用 dex2oat 以加快 android_test 的速度。
標記:loading_and_analysishost_machine_resource_optimizationsexperimental
--[no]ios_memleaks 預設值:「false」
啟用 ios_test 目標中的記憶體流失檢查功能。
標記:action_command_lines
--ios_simulator_device=<a string> 預設:查看說明
在模擬器中執行 iOS 應用程式時模擬的裝置,例如「iPhone 6」。如要取得裝置清單,請在要執行模擬器的機器上執行「xcrun simctl list devicetypes」。
標記:test_runner
--ios_simulator_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 預設:查看說明
執行或測試時要在模擬器上執行的 iOS 版本。如果已在規則中指定目標裝置,則 ios_test 規則會忽略這個欄位。
標記:test_runner
會累積 --runs_per_test=<a positive integer or test_regex@runs. This flag may be passed more than once> 個用途
指定各項測試的執行次數。如果有任何一項嘗試因任何原因失敗,整個測試視同失敗。通常指定的值只有整數。範例:--runs_per_test=3 會執行所有測試 3 次。替代語法:regex_filter@runs_per_test。run_per_test 代表整數值,而 regex_filter 表示包含及排除規則運算式模式的清單 (另請參閱 --instrumentation_filter)。範例:--runs_per_test=//foo/.*,-//foo/bar/.*@3 會在 //foo/ 中執行所有測試,但 foo/bar 之下的結果除外。這個選項可以多次傳送。系統會優先採用最近傳遞的相符引數。如果沒有相符結果,測試只會執行一次。
會累積 --test_env=<a 'name=value' assignment with an optional value part> 個用途
指定要插入測試執行工具環境的其他環境變數。您可以用名稱指定變數;如果發生這種情況,系統會從 Bazel 用戶端環境或 name=value 組合讀取變數的值。這個選項可多次使用以指定多個變數。僅用於「bazel test」指令。
標記:test_runner
--test_timeout=<a single integer or comma-separated list of 4 integers> 預設值:「-1」
覆寫測試逾時的預設測試逾時值 (以秒為單位)。如果指定單一正整數值,則會覆寫所有類別。如果指定 4 個以半形逗號分隔的整數,就會覆寫短、中、長和橢圓的逾時時間 (按照此順序排列)。無論採用哪一種格式,值為 -1 均會指示 Blaze 針對該類別使用預設逾時。
--[no]zip_undeclared_test_outputs預設值:「true」
如果設為 True,系統會將未宣告的測試輸出內容封存為 ZIP 檔案。
標記: test_runner
查詢輸出內容和語意相關選項:
--aspect_deps=<off, conservative or precise> 預設值:「conservative」
當輸出格式是 {xml,proto,record} 時,如何解析切面依附元件。「off」代表未解析任何切面依附元件;「保守」(預設) 代表新增所有宣告的切面依附元件,不論是否提供直接依附元件的規則類別;「精確」代表僅新增可能根據直接依附元件的規則類別啟用的切面。請注意,由於精確模式需要載入其他套件來評估單一目標,因此速度比其他模式慢。另請注意,就算使用精確模式也無法完全精準,是否要在分析階段中決定是否運算,該階段不會在「bazel 查詢」期間執行。
標記:build_file_semantics
--[no]consistent_labels 預設值:「false」
啟用這項設定後,每個查詢指令都會發送標籤,就像由 Starlark <code>str</code> 函式套用至 <code>Label</code> 執行個體一樣。這項工具相當適合用於需要比對不同查詢指令和/或規則所發出標籤的輸出內容。如果不啟用,輸出格式設定器可改為發出明顯的存放區名稱 (相對於主要存放區),讓輸出內容更容易讀取。
標記:terminal_output
--[no]experimental_explicit_aspects 預設值:「false」

標記:terminal_output
--[no]graph:factored預設值:「true」
如果為 true,圖表會發出「因子」,也就是同質相等的節點會合併在一起,其標籤會串連。這個選項僅適用於 --output=graph。
標記:terminal_output
--graph:node_limit=<an integer> 預設值:「512」
輸出中圖形節點的標籤字串長度上限。較長的標籤會遭到截斷;-1 表示不會截斷。這個選項僅適用於 --output=graph。
標記:terminal_output
--[no]implicit_deps預設值:「true」
啟用後,隱含依附元件會納入查詢作業的依附元件圖中。隱含依附元件是指 BUILD 檔案中並未明確指定,但是由 bazel 新增的依附元件。針對 cquery,這個選項會控制篩選已解析的工具鍊。
標記:build_file_semantics
--[no]include_aspects預設值:「true」

標記:terminal_output
--[no]incompatible_package_group_includes_double_slash預設值:「true」
啟用後,在輸出 package_group 的「packages」屬性時,系統不會省略開頭的「//」。
標記:terminal_outputincompatible_change
--[no]infer_universe_scope 預設值:「false」
如果未設定 --universe_scope,將將 --universe_scope 的值推斷為查詢運算式中不重複目標模式的清單。請注意,使用單向範圍函式 (例如`allrdeps`) 的查詢運算式所推測的 --universe_scope 值可能不太符合您的需求,因此建議您在瞭解自己執行的操作時,才使用這個選項。如需詳細資訊和範例,請參閱 https://bazel.build/reference/query#sky-query。如果已設定 --universe_scope,系統就會忽略此選項的值。注意:這個選項僅適用於「query」(查詢),而非「cquery」。
標記: loading_and_analysis
--[no]line_terminator_null 預設值:「false」
指出每個格式是否會以 \0 (而非換行) 終止。
標記:terminal_output
--[no]nodep_deps預設值:「true」
如果啟用這項政策,從「nodep」屬性降級後,查詢作業的依附元件圖表就會包含該屬性。常見的「nodep」屬性為「visibility」。執行並剖析「資訊建構語言」的輸出內容,瞭解建構語言中的所有「nodep」屬性。
標記:build_file_semantics
--output=<a string>預設值:「label」
輸出 cquery 結果的格式。允許的 cquery 值為:label、label_Kind、textproto、轉換、proto、streamed_proto、jsonproto。如果選取「轉換」,就必須一併指定 --transitions=(lite|full) 選項。
標記:terminal_output
--[no]proto:default_values預設值:「true」
如果為 true,系統會納入 BUILD 檔案中未明確指定值的屬性,否則會省略。這個選項適用於 --output=proto
標記:terminal_output
--[no]proto:definition_stack 預設值:「false」
填入 definition_stack proto 欄位,該欄位會在定義規則類別時,記錄每個規則例項的 Starlark 呼叫堆疊。
標記:terminal_output
--[no]proto:flatten_selects預設值:「true」
啟用後,系統會整併 select() 建立的可設定屬性。對於清單類型而言,扁平化的表示式呈現為一份清單,其中僅包含選取地圖的每個值一次。純量類型會扁平化為空值。
標記:build_file_semantics
--[no]proto:include_attribute_source_aspects 預設值:「false」
為每個屬性的 source_aspect_name proto 欄位填入屬性來源切面的資訊 (如果沒有屬性,則為空白字串)。
標記:terminal_output
--[no]proto:include_configurations預設值:「true」
設為啟用後,proto 輸出內容會包含設定的相關資訊。停用後,cquery proto 輸出格式與查詢輸出格式類似。
標記:affects_outputs
--[no]proto:include_synthetic_attribute_hash 預設值:「false」
是否要計算及填入 $internal_attr_hash 屬性。
標記:terminal_output
--[no]proto:instantiation_stack 預設值:「false」
填入每項規則的例項化呼叫堆疊。請注意,如要這麼做,堆疊必須具有
標記:terminal_output
--[no]proto:locations預設值:「true」
是否要在 proto 輸出內容中輸出位置資訊。
標記:terminal_output
--proto:output_rule_attrs=<comma-separated list of options> 預設值:「全部」
要包含在輸出內容中的屬性清單 (以半形逗號分隔)。預設為所有屬性。設為空白字串不輸出任何屬性。這個選項適用於 --output=proto。
標記:terminal_output
--[no]proto:rule_inputs_and_outputs預設值:「true」
指定是否填入「Rule_input」和「Rule_output」欄位。
標記:terminal_output
--query_file=<a string> 預設值:「」
如有設定,查詢會從這裡命名的檔案讀取查詢,而不是透過指令列讀取。在這裡指定檔案以及指令列查詢會發生錯誤。
標記:changes_inputs
--[no]relative_locations 預設值:「false」
如果為 True,XML 和 proto 輸出內容中的 BUILD 檔案位置將會相對。根據預設,位置輸出是絕對路徑,而且在所有機器中不一致。您可以將這個選項設為 True,即可在不同機器中取得一致的結果。
標記:terminal_output
--show_config_fragments=<off, direct or transitive> 預設值:「關閉」
顯示規則所需的設定片段及其遞移依附元件。這項指標有助於評估設定的目標圖表可修剪的程度。
標記:affects_outputs
--starlark:expr=<a string> 預設值:「」
Starlark 運算式,用於在 cquery 的 --output=starlark 模式下設定各個設定的目標格式。設定的目標會繫結至「目標」。如果未指定 --starlark:expr 和 --starlark:file,則這個選項會預設為「str(target.label)」。同時指定 --starlark:expr 和 --starlark:file 是錯誤。
標記:terminal_output
--starlark:file=<a string> 預設值:「」
定義一個引數中名為「format」的 Starlark 函式檔案名稱,該函式會套用至各個已設定的目標,以做為字串格式。同時指定 --starlark:expr 和 --starlark:file 是錯誤。詳情請參閱「--output=starlark」說明。
標記:terminal_output
--[no]tool_deps預設值:「true」
查詢:如果停用,則「exec configuration」的依附元件不會包含在查詢作業的依附元件圖表中。「exec configuration」的依附元件邊緣 (例如從任何「proto_library」規則的依附元件到通訊協定編譯器的邊緣),通常指向在建構期間執行的工具,而非同一個「目標」程式的一部分。Cquery:如果停用,系統會從頂層目標中發現這個設定目標的頂層目標,篩選出所有已設定的目標。換句話說,如果頂層目標位於目標設定中,系統只會傳回同樣在目標設定中已設定的目標。如果頂層目標位於執行設定中,系統只會傳回執行設定的目標。這個選項「不會」排除已解析的工具鍊。
標記:build_file_semantics
--transitions=<full, lite or none>預設值:「無」
cquery 輸出轉換資訊的格式。
標記:affects_outputs
--universe_scope=<comma-separated list of options> 預設值:「」
以半形逗號分隔的目標模式組合 (加法和減法)。查詢可於由指定目標的遞移性通過所定義的宇宙中執行。這個選項可用於查詢和 cquery 指令。對 cquery 來說,這個選項的輸入內容就是所有答案的基礎,因此這個選項可能會影響設定和轉換。如未指定此選項,系統會假設頂層目標為查詢運算式剖析的目標。注意事項:在 cquery 中,如未指定這個選項,如果無法以頂層選項建構從查詢運算式剖析的目標,建構可能會中斷。
標記:loading_and_analysis
與 Bzlmod 輸出內容和語意相關的選項:
--[no]configure 預設值:「false」
只擷取基於系統設定目的標示為「configure」的存放區。只有在 --enable_bzlmod 開啟時才能使用。
標記:changes_inputs
--[no]force 預設值:「false」
如有存放區,請忽略現有的存放區,然後再次強制擷取該存放區。只有在 --enable_bzlmod 開啟時才能使用。
標記:changes_inputs
會累積 --repo=<a string> 個用途
只擷取指定的存放區 (可能是 {@apparent_repo_name} 或 {@@canonical_repo_name})。只有在 --enable_bzlmod 開啟時才能使用。
標記:changes_inputs
會觸發建構時間最佳化的選項:
--[no]experimental_filter_library_jar_with_program_jar 預設值:「false」
篩選 ProGuard ProgramJar,以移除 LibraryJar 中的所有類別。
標記:action_command_lines
--[no]experimental_inmemory_dotd_files預設值:「true」
啟用後,C++ .d 檔案會直接從遠端建構節點在記憶體中傳遞,而不是寫入磁碟。
標記:loading_and_analysisexecutionaffects_outputsexperimental
--[no]experimental_inmemory_jdeps_files預設值:「true」
如果啟用,Java 編譯作業產生的依附元件 (.jdeps) 檔案就會直接從遠端建構節點在記憶體中傳遞,而不會寫入磁碟。
標記:loading_and_analysisexecutionaffects_outputsexperimental
--[no]experimental_retain_test_configuration_across_testonly 預設值:「false」
啟用後,--trim_test_configuration 不會為標示為 testonly=1 的規則修剪測試設定。這是為了減少非測試規則取決於 cc_test 規則時的動作衝突問題。如果 --trim_test_configuration 為 false,則不會產生任何效果。
標記:loading_and_analysisloses_incremental_state
--[no]experimental_starlark_cc_import 預設值:「false」
啟用後,即可使用 cc_import 的 Starlark 版本。
標記:loading_and_analysisexperimental
--[no]experimental_unsupported_and_brittle_include_scanning 預設值:「false」
是否要透過剖析輸入檔案中的 #include 行,將輸入範圍縮小為 C/C++ 編譯。進而縮減編譯輸入樹狀結構的大小,進而改善效能和成效增幅。不過,由於 include 掃描器未完全實作 C 預先處理器語意,因此也可能導致建構作業失敗。具體而言,它不瞭解動態 #include 指令,且會忽略預先處理工具的條件邏輯。使用時需自行承擔風險。凡是與這個檢舉有關的問題都會遭到關閉。
標記:loading_and_analysisexecutionchanges_inputs
--[no]incremental_dexing預設值:「true」
大部分的工作都是針對各個 Jar 檔案個別進行 DEX 處理。
標記:affects_outputsloading_and_analysisloses_incremental_state
--[no]objc_use_dotd_pruning預設值:「true」
如果已設定,將由 clang 發出的 .d 檔案剪裁至 objc 編譯的輸入內容。
標記:changes_inputsloading_and_analysis
--[no]process_headers_in_dependencies 預設值:「false」
建立目標 //a:a 時,處理 //a:a 依附的所有目標 (如果工具鍊已啟用標頭處理功能)。
標記:execution
--[no]trim_test_configuration預設值:「true」
啟用後,系統會在建構項目頂層下方清除測試相關選項。啟用這個旗標後,就無法將測試當做非測試規則的依附元件進行建構,但變更測試相關選項並不會導致系統重新分析非測試規則。
標記:loading_and_analysisloses_incremental_state
影響記錄詳細程度、格式或位置的選項:
--toolchain_resolution_debug=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths> 預設值:「-.*」
在工具鍊解析期間輸出偵錯資訊。旗標會採用規則運算式,並與工具鍊類型和特定目標進行比對,以找出需要偵錯的項目。如有多個規則運算式,請以半形逗號分隔,然後再分別檢查每個規則運算式。注意:此標記的輸出內容非常複雜,可能僅對工具鍊解決方案的專家有所幫助。
標記:terminal_output
可為不屬於其他類別的 Bazel 指令指定或變更一般輸入的選項:
會累積 --flag_alias=<a 'name=value' flag alias> 個用途
設定 Starlark 標記的簡短名稱。這會使用格式為「<key>=<value>」的單一鍵/值組合做為引數。
標記:changes_inputs
--[no]incompatible_default_to_explicit_init_py 預設值:「false」
這個標記會變更預設行為,讓 __init__.py 檔案不再在 Python 目標的執行檔案中自動建立。準確來說,當 py_binary 或 py_test 目標將 legacy_create_init 設為「auto」(預設值) 時,只有在設定了此旗標時,才會視為 false。請參閱 https://github.com/bazelbuild/bazel/issues/10076。
標記:affects_outputsincompatible_change
--[no]incompatible_py2_outputs_are_suffixed預設值:「true」
如果為 True,則透過 Python 2 設定建構的目標會顯示在輸出根目錄中,且包含後置字串「-py2」,而針對 Python 3 建構的目標會顯示在根層級中,且沒有 Python 相關後置字串。也就是說,`bazel-bin` 便利符號連結會指向 Python 3 目標,而不是 Python 2。如果啟用這個選項,建議一併啟用「--incompatible_py3_is_default」。
標記:affects_outputsincompatible_change
--[no]incompatible_py3_is_default預設值:「true」
如果為 True,系統會將未設定「python_version」(或「default_python_version」) 屬性的「py_binary」和「py_test」目標預設為 PY3,而非 PY2。如果你設定了這個旗標,也建議你設定「--incompatible_py2_outputs_are_suffixed」。
標記:loading_and_analysisaffects_outputsincompatible_change
--[no]incompatible_use_python_toolchains預設值:「true」
如果設為 True,可執行的原生 Python 規則將使用 Python 工具鍊指定的 Python 執行階段,而非由 --python_top 等舊版旗標提供的執行階段。
標記:loading_and_analysisincompatible_change
--python_version=<PY2 or PY3> 預設:查看說明
Python 主要版本模式,可以是「PY2」或「PY3」。請注意,此模式會遭到「py_binary」和「py_test」目標覆寫 (即使他們未明確指定版本也是如此),因此通常沒有太多理由提供這個標記。
標記:loading_and_analysisaffects_outputs
其他選項,未分類。
--[no]cache_test_results [-t] 預設值:「auto」
如果設為「auto」,Bazel 只會在發生以下情況時重新執行測試:(1) Bazel 偵測到測試或其依附元件的變更,(2) 系統會將測試標示為外部;(3) 使用 --runs_per_test 要求多次測試執行;或(4) 先前失敗的測試。如果設為「是」,Bazel 會快取所有測試結果,但標示為外部的測試除外。如果設為「否」,Bazel 就不會快取任何測試結果。
會累積 --deleted_packages=<comma-separated list of package names> 個用途
逗號分隔的套件名稱清單,即使這些套件出現在套件路徑中,建構系統也不會將其視為不存在。 刪除現有套件「x」的子套件「x/y」時,請使用這個選項。舉例來說,在用戶端刪除 x/y/BUILD 後,如果建構系統發現標籤「//x:y/z」仍由另一個 package_path 項目提供,可能會抱怨。指定 --deleted_packages x/y 以避免這個問題。
--[no]experimental_cancel_concurrent_tests 預設值:「false」
如果為 true,Blaze 會取消首次成功執行時同時執行的測試。這個方法只有在搭配 --runs_per_test_Detects_flakes 時實用。
標記:affects_outputsloading_and_analysis
--[no]experimental_fetch_all_coverage_outputs 預設值:「false」
如果設為 true,Bazel 會在涵蓋率執行期間為每項測試擷取整個涵蓋範圍資料目錄。
標記:affects_outputsloading_and_analysis
--[no]experimental_generate_llvm_lcov 預設值:「false」
如果設為「true」,Clang 的涵蓋率就會產生 LCOV 報告。
標記:affects_outputsloading_and_analysis
--[no]experimental_j2objc_header_map預設值:「true」
是否要同時產生 J2ObjC 標頭對應,以及 J2ObjC 轉譯。
--[no]experimental_j2objc_shorter_header_path 預設值:「false」
指定是否要使用較短的標頭路徑 (使用「_ios」而非「_j2objc」) 產生。
標記:affects_outputs
--experimental_java_classpath=<off, javabuilder or bazel> 預設值:「javabuilder」
針對 Java 編譯啟用縮減的類別路徑。
--[no]experimental_limit_android_lint_to_android_constrained_java 預設值:「false」
將 --experimental_run_android_lint_on_java_rules 限制在與 Android 相容的程式庫。
標記:affects_outputs
--[no]experimental_run_android_lint_on_java_rules 預設值:「false」
是否要驗證 java_* 來源。
標記:affects_outputs
--[no]explicit_java_test_deps 預設值:「false」
在 java_test 中明確指定 JUnit 或 Hamcrest 的依附元件,而非意外從 TestRunner 的依附元件中取得。目前僅適用於 bazel。
--[no]fetch預設值:「true」
允許指令擷取外部依附元件。如果設為 False,這個指令會使用依附元件的任何快取版本;如果不存在,該指令就會導致失敗。
--host_java_launcher=<a build target label> 預設:查看說明
在建構期間執行的工具所使用的 Java 啟動器。
會累積 --host_javacopt=<a string> 個用途
建構在建構期間執行的工具時,傳送至 javac 的其他選項。
會累積 --host_jvmopt=<a string> 個用途
建構在建構期間執行的工具時,傳送至 Java VM 的其他選項。這些選項會新增至每個 java_binary 目標的 VM 啟動選項。
--[no]incompatible_check_sharding_support預設值:「true」
如果為 true,當測試執行器未指出 TEST_SHARD_STATUS_FILE 路徑中的檔案,表示可支援分割作業,Bazel 就會失敗的資料分割測試。如果設為 false,則不支援資料分割的測試執行器會導致每個資料分割中執行的所有測試。
標記:incompatible_change
--[no]incompatible_exclusive_test_sandboxed預設值:「true」
如果為 true,專屬測試將使用沙箱策略執行。新增「local」標記,強制在本機執行專屬測試
標記: incompatible_change
--[no]incompatible_strict_action_env 預設值:「false」
如果設為 True,Bazel 使用的環境會是 PATH 的靜態值,且不會沿用 LD_LIBRARY_PATH。如果想沿用用戶端的特定環境變數,請使用 --action_env=ENV_VARIABLE。不過請注意,這麼做可能會在使用共用快取時,避免跨使用者快取。
標記:loading_and_analysisincompatible_change
會累積 --j2objc_translation_flags=<comma-separated list of options> 個用途
傳遞至 J2ObjC 工具的其他選項。
--java_debug
造成 Java 測試的 Java 虛擬機器,先等待符合 JDWP 規範的偵錯工具 (例如 jdb) 連線後,再開始測試。隱含 -test_output=streamed。
擴展至:
  --test_arg=--wrapper_script_flag=--debug
  --test_output=streamed
  --test_strategy=exclusive
  --test_timeout=9999
  --nocache_test_results
--[no]java_deps預設值:「true」
為每個 Java 目標產生依附元件資訊 (目前為編譯時間類別路徑)。
--[no]java_header_compilation預設值:「true」
直接從原始碼編譯 ijar。
--java_language_version=<a string> 預設值:「」
Java 語言版本
--java_launcher=<a build target label> 預設:查看說明
建構 Java 二進位檔時使用的 Java 啟動器。如果此旗標設為空白字串,系統會使用 JDK 啟動器。「launcher」屬性會覆寫此標記。
--java_runtime_version=<a string> 預設值:「local_jdk」
Java 執行階段版本
會累積 --javacopt=<a string> 個用途
要傳遞至 javac 的其他選項。
會累積 --jvmopt=<a string> 個用途
傳送至 Java VM 的其他選項。這些選項會新增至每個 java_binary 目標的 VM 啟動選項。
--legacy_main_dex_list_generator=<a build target label> 預設:查看說明
指定二進位檔,用於產生編譯舊版 Multidex 時必須位於主要 dex 的類別清單。
--optimizing_dexer=<a build target label> 預設:查看說明
指定二進位檔,用於在不進行資料分割的情況下執行 DEX 作業。
--package_path=<colon-separated list of options>預設值:「%workspace%」
尋找套件的位置清單 (以半形冒號分隔)。開頭為「%workspace%」的元素與所屬工作區相對。如果省略或留空,則預設值為「bazel info default-package-path」的輸出內容。
會累積 --plugin=<a build target label> 個用途
要在建構作業中使用的外掛程式。目前可與 java_plugin 搭配使用。
--proguard_top=<a build target label> 預設:查看說明
指定在建構 Java 二進位檔時,用於移除程式碼的 ProGuard 版本。
--proto_compiler=<a build target label> 預設:「@bazel_tools//tools/proto:protoc」
proto-編譯器的標籤。
標記:affects_outputsloading_and_analysis
--proto_toolchain_for_cc=<a build target label> 預設值:「@bazel_tools//tools/proto:cc_toolchain」
proto_lang_toolchain() 的標籤,說明如何編譯 C++ proto
標記: affects_outputsloading_and_analysis
--proto_toolchain_for_j2objc=<a build target label> 預設語言:「@bazel_tools//tools/j2objc:j2objc_proto_toolchain」
proto_lang_toolchain() 的標籤,說明如何編譯 j2objc proto
標記:affects_outputsloading_and_analysis
--proto_toolchain_for_java=<a build target label> 預設值:「@bazel_tools//tools/proto:java_toolchain」
proto_lang_toolchain() 的標籤,說明如何編譯 Java proto
標記:affects_outputsloading_and_analysis
--proto_toolchain_for_javalite=<a build target label> 預設值:「@bazel_tools//tools/proto:javalite_toolchain」
proto_lang_toolchain() 的標籤,說明如何編譯 JavaLite proto。
標記:affects_outputsloading_and_analysis
會累積 --protocopt=<a string> 個用途
傳送至 protobuf 編譯器的其他選項。
標記:affects_outputs
--[no]runs_per_test_detects_flakes 預設值:「false」
如果為 true,所有至少執行/嘗試通過一次且有至少一項執行/嘗試失敗的資料分割,都會顯示 FLAKY 狀態。
--shell_executable=<a path> 預設:查看說明
殼層執行檔的絕對路徑,可供 Bazel 使用。如果未設定,但第一次 Bazel 叫用 (啟動 Bazel 伺服器) 時設定了 BAZEL_SH 環境變數,Bazel 就會使用該環境變數。如果兩者皆未設定,Bazel 將根據在 Windows 上執行的作業系統使用硬式編碼預設路徑 (Windows:c:/tools/msys64/usr/bin/bash.exe,FreeBSD:/usr/local/bin/bash 和所有其他檔案:/bin/bash)。請注意,如果您使用的殼層與 bash 不相容,可能會導致建構失敗,或所產生二進位檔的執行階段失敗。
標記:loading_and_analysis
--[no]show_loading_progress預設值:「true」
啟用後,Bazel 就會顯示「Loading package:」訊息。
會累積 --test_arg=<a string> 個用途
指定應傳遞至測試執行檔的其他選項和引數。可多次用於指定多個引數。如果執行多個測試,每個測試都會收到相同的引數。僅用於「bazel test」指令。
--test_filter=<a string> 預設:查看說明
指定要轉送至測試架構的篩選器。用於限制測試執行。請注意,這不會影響建構的目標。
--test_result_expiration=<an integer> 預設值:「-1」
這個選項已淘汰,因此不會產生任何作用。
--[no]test_runner_fail_fast 預設值:「false」
將失敗的快速選項轉送至測試執行器。測試執行工具應在首次失敗時停止執行。
--test_sharding_strategy=<explicit, disabled or forced=k where k is the number of shards to enforce> 預設值:「煽情露骨內容」
指定測試資料分割的策略:「explicit」只有在已有「shard_count」BUILD 屬性時才會使用資料分割。設為「disabled」後,就不必使用測試資料分割。「forced=k」可強制執行「k」資料分割以供測試,無論「shard_count」BUILD 屬性為何。
--tool_java_language_version=<a string> 預設值:「」
用於執行建構期間必要工具的 Java 語言版本
--tool_java_runtime_version=<a string> 預設:「remotejdk_11」
在建構期間執行工具時使用的 Java 執行階段版本
--[no]use_ijars預設值:「true」
啟用這個選項後,Java 編譯會使用介面 jar 檔案。這麼做可以加快漸進式編譯速度,但錯誤訊息也可能不同。

說明選項

這些選項會顯示在指令之前,並由用戶端剖析:
會累積 --distdir=<a path> 個用途
還有許多地方可以搜尋封存檔案,以便透過網路下載封存內容。
標記:bazel_internal_configuration
如有設定,存放區快取會在快取成功時將檔案硬式編碼,而非複製檔案。以便節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 預設值:「0」
重試下載錯誤的次數上限。如果設為 0,系統就會停用重試功能。
標記:experimental
--experimental_scale_timeouts=<a double> 預設值:「1.0」
按照這項係數調整 Starlark 存放區規則中的所有逾時時間。如此一來,即使效能低於規則作者預期的機器,外部存放區也能在不變更原始碼的情況下正常運作。
標記:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 預設值:「8」
http 下載作業的次數上限。
標記:bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 預設值:「0s」
http 下載重試的逾時時間上限。如果值為 0,就不會定義逾時上限。
標記:bazel_internal_configuration
--http_timeout_scaling=<a double> 預設值:「1.0」
依指定係數調整所有與 http 下載相關的逾時時間
標記: bazel_internal_configuration
--repository_cache=<a path> 預設:查看說明
指定擷取外部存放區時取得的已下載值的快取位置。將空字串做為引數要求停用快取,否則會使用預設的「<output_user_root>/cache/repos/v1」
標記: bazel_internal_configuration
--[no]repository_disable_download 預設值:「false」
如果已設定,無法在存放區擷取期間使用 ctx.download{,_and_extract} 進行下載。請注意,網路存取權並未完全停用;ctx.execute 仍可以執行存取網際網路的任意執行檔。
標記:bazel_internal_configuration
控制建構執行作業的選項:
--gc_thrashing_threshold=<an integer in 0-100 range> 預設值:「100」
上方 GcThrashingDetector 會將記憶體壓力事件視為其配額限制 (--gc_thrashing_limits),而佔用空間佔用的空間百分比 (0-100)。如果設為 100,系統會停用 GcThrashingDetector。
標記: host_machine_resource_optimizations
這個選項會影響 Starlark 語言的語意,或是 BUILD 檔案、.bzl 檔案或 WORKSPACE 檔案可用的建構 API。
--[no]incompatible_depset_for_java_output_source_jars預設值:「true」
免人工管理。
標記: loading_and_analysisincompatible_change
--[no]incompatible_new_actions_api預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]incompatible_visibility_private_attributes_at_definition預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]separate_aspect_deps預設值:「true」
免人工管理
標記: no_op
與 Bzlmod 輸出內容和語意相關的選項:
會累積 --allow_yanked_versions=<a string> 個用途
指定模組版本時,請以「<module1>@<version1>,<module2>@<version2>」格式指定在已解析的依附元件圖中,即使這些版本來源不是來自 NonRegistryOverride,仍可在存放區中宣告這些版本。否則,分割版本會導致解析失敗。您也可以使用「BZLMOD_ALLOW_YANKED_VERSIONS」環境變數定義允許的分割版本。您可使用關鍵字「全部」停用這項檢查 (不建議使用)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off> 預設值:「錯誤」
檢查 Bazel 模組的 Bazel 版本相容性。有效值為「error」:可將其提報至解決失敗;設為「off」可停用檢查,「warning」則能在偵測到不相符時顯示警告。
標記:loading_and_analysis
--check_direct_dependencies=<off, warning or error> 預設值:「warning」
檢查根模組中宣告的直接「bazel_dep」依附元件,是否與已解析依附元件圖表中的版本相同。有效值為「off」可停用檢查,「warning」會在偵測到不相符時顯示警告,或是「error」將問題提報至解決失敗。
標記:loading_and_analysis
--[no]ignore_dev_dependency 預設值:「false」
如果為 true,Bazel 會忽略根模組 MODULE.bazel 中宣告為「dev_dependency」的「bazel_dep」和「use_extension」。請注意,如果根模組不是根模組,無論此標記的值為何,系統一律會忽略這些開發依附元件。
標記:loading_and_analysis
--lockfile_mode=<off, update or error> (預設):「更新」
指定使用 Lockfile 的方式,以及是否要使用。有效值為「update」可使用 Lockfile,並在出現變更時進行更新;「error」表示使用 Lockfile,但並非最新版本,會擲回錯誤;如果未更新,則為「off」。
標記:loading_and_analysis
會累積 --override_module=<an equals-separated mapping of module name to path> 個用途
以 <module name>=<path> 的格式覆寫本機路徑的模組。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則該路徑會與目前的工作目錄相對。如果指定路徑的開頭是「%workspace%」,代表與工作區根目錄 (也就是「bazel info workspace」的輸出內容) 有關。
會累積 --registry=<a string> 個用途
指定要用來尋找 Bazel 模組依附元件的登錄檔。順序很重要:系統會先在較早的登錄檔中查詢模組,而且只有在之後的登錄檔中缺少模組時,才會改回使用之後的登錄檔。
標記:changes_inputs
--vendor_dir=<a path> 預設:查看說明
指定應在廠商模式下保存外部存放區的目錄,不論是用於擷取或建立使用這些存放區。路徑可以指定為絕對路徑或相對於工作區目錄的路徑。
標記:loading_and_analysis
會觸發建構時間最佳化的選項:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 預設值:「1s:2,20s:3,1m:5」
限制如果已達到,GcThrashingDetector 會透過 OOM 讓 Bazel 當機,每項限制都以 <period>:<count> 指定,週期為時間長度,計數代表正整數。如果 <period> 內連續 <count> 個 GC 數量超過 --gc_thrashing_threshold 百分比,系統就會觸發 OOM。如要指定多個限制,請以半形逗號分隔。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生完整 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示完整 GC 事件永遠不會觸發下降。如果達到上限,在完整 GC 事件發生且超過保留堆積百分比門檻時,系統不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生輕微 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示次要 GC 事件永遠不會觸發下降。一旦達到限制,發生輕微 GC 事件且超過保留堆積百分比門檻時,系統就不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 預設值:「85」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量至少達到這個門檻,就會捨棄不必要的暫時性 SkyFrame 狀態。調整這個做法,即可減少垃圾收集造成的實際時間影響,也就是以下情形:GC 輾轉現象,是:(i) 這個臨時狀態的記憶體用量造成,(ii) 比在需要時重新建構狀態的成本高昂。
標記: host_machine_resource_optimizations
影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock> 預設:查看說明
記錄指令期間的 Java 航班/機票記錄工具設定檔。支援的剖析事件類型之一 (CPU、牆、分配或鎖定) 必須以引數的形式指定。設定檔將寫入一個檔案,並以事件類型在輸出基本目錄下命名。這個旗標的語法和語意日後可能會變更,以支援其他設定檔類型或輸出格式,請自行承擔風險。
--[no]experimental_record_metrics_for_all_mnemonics 預設值:「false」
根據預設,動作類型數量限制為已執行次數最多的 20 種記憶。如果設定這個選項,系統將寫入所有助測器的統計資料。
--help_verbosity=<long, medium or short> 預設值:「中」
選取說明指令的詳細程度。
標記:terminal_output
--long [-l]
顯示每個選項的完整說明,而非只有選項名稱。
展開至:
  --help_verbosity=long

標記: terminal_output
--short
僅顯示選項的名稱,而非選項的類型或意義。
延伸至:
  --help_verbosity=short

標記: terminal_output
用於指定或變更一般輸入,不屬於其他類別的 Bazel 指令:
--experimental_resolved_file_instead_of_workspace=<a string> 預設值:「」
如果讀取指定的已解析檔案 (而非 WORKSPACE 檔案) 為非空白檔案
標記: changes_inputs
遠端快取和執行選項:
--experimental_downloader_config=<a string> 預設:查看說明
指定要用於設定遠端下載程式的檔案。這個檔案由各行組成,每個指令都是以指令 (「allow」、「block」或「rewrite」) 開頭,後面接有主機名稱 (適用於「allow」和「block」) 或兩個模式,一個要比對做為替代網址,另一個則做為替代網址,並以「$1」開頭的反向參照。即使多個「重新編寫」指令,也可視為相同網址的「rewrite」指令。
--experimental_worker_for_repo_fetching=<off, platform, virtual or auto> 預設值:「auto」
用於存放區擷取的執行緒模式。如果設為「off」,系統就不會使用任何工作站執行緒,且會重新啟動存放區擷取作業。如果設為「平台」,則會使用平台執行緒 (即 OS 執行緒) 或虛擬執行緒 (如設為「virtual」)。如果設為「auto」,系統就會在可用的情況下使用虛擬執行緒 (即在 JDK 21 以上版本中執行),否則就不會使用工作站執行緒。
其他未分類的選項。
會累積 --override_repository=<an equals-separated mapping of repository name to path> 個用途
用 <repository name>=<path> 的格式覆寫本機路徑的存放區。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則以相對路徑為準。如果指定路徑的開頭是「%workspace%」,代表相對於工作區根目錄,也就是「bazel info workspace」的輸出內容

資訊選項

繼承 build 的所有選項。

這些選項會顯示在指令之前,並由用戶端剖析:
會累積 --distdir=<a path> 個用途
還有許多地方可以搜尋封存檔案,以便透過網路下載封存內容。
標記:bazel_internal_configuration
如有設定,存放區快取會在快取成功時將檔案硬式編碼,而非複製檔案。以便節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 預設值:「0」
重試下載錯誤的次數上限。如果設為 0,系統就會停用重試功能。
標記:experimental
--experimental_scale_timeouts=<a double> 預設值:「1.0」
按照這項係數調整 Starlark 存放區規則中的所有逾時時間。如此一來,即使效能低於規則作者預期的機器,外部存放區也能在不變更原始碼的情況下正常運作。
標記:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 預設值:「8」
http 下載作業的次數上限。
標記:bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 預設值:「0s」
http 下載重試的逾時時間上限。如果值為 0,就不會定義逾時上限。
標記:bazel_internal_configuration
--http_timeout_scaling=<a double> 預設值:「1.0」
依指定係數調整所有與 http 下載相關的逾時時間
標記: bazel_internal_configuration
--repository_cache=<a path> 預設:查看說明
指定擷取外部存放區時取得的已下載值的快取位置。將空字串做為引數要求停用快取,否則會使用預設的「<output_user_root>/cache/repos/v1」
標記: bazel_internal_configuration
--[no]repository_disable_download 預設值:「false」
如果已設定,無法在存放區擷取期間使用 ctx.download{,_and_extract} 進行下載。請注意,網路存取權並未完全停用;ctx.execute 仍可以執行存取網際網路的任意執行檔。
標記:bazel_internal_configuration
控制建構執行作業的選項:
--gc_thrashing_threshold=<an integer in 0-100 range> 預設值:「100」
上方 GcThrashingDetector 會將記憶體壓力事件視為其配額限制 (--gc_thrashing_limits),而佔用空間佔用的空間百分比 (0-100)。如果設為 100,系統會停用 GcThrashingDetector。
標記: host_machine_resource_optimizations
這個選項會影響 Starlark 語言的語意,或是 BUILD 檔案、.bzl 檔案或 WORKSPACE 檔案可用的建構 API。
--[no]incompatible_depset_for_java_output_source_jars預設值:「true」
免人工管理。
標記: loading_and_analysisincompatible_change
--[no]incompatible_new_actions_api預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]incompatible_visibility_private_attributes_at_definition預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]separate_aspect_deps預設值:「true」
免人工管理
標記: no_op
與 Bzlmod 輸出內容和語意相關的選項:
會累積 --allow_yanked_versions=<a string> 個用途
指定模組版本時,請以「<module1>@<version1>,<module2>@<version2>」格式指定在已解析的依附元件圖中,即使這些版本來源不是來自 NonRegistryOverride,仍可在存放區中宣告這些版本。否則,分割版本會導致解析失敗。您也可以使用「BZLMOD_ALLOW_YANKED_VERSIONS」環境變數定義允許的分割版本。您可使用關鍵字「全部」停用這項檢查 (不建議使用)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off> 預設值:「錯誤」
檢查 Bazel 模組的 Bazel 版本相容性。有效值為「error」:可將其提報至解決失敗;設為「off」可停用檢查,「warning」則能在偵測到不相符時顯示警告。
標記:loading_and_analysis
--check_direct_dependencies=<off, warning or error> 預設值:「warning」
檢查根模組中宣告的直接「bazel_dep」依附元件,是否與已解析依附元件圖表中的版本相同。有效值為「off」可停用檢查,「warning」會在偵測到不相符時顯示警告,或是「error」將問題提報至解決失敗。
標記:loading_and_analysis
--[no]ignore_dev_dependency 預設值:「false」
如果為 true,Bazel 會忽略根模組 MODULE.bazel 中宣告為「dev_dependency」的「bazel_dep」和「use_extension」。請注意,如果根模組不是根模組,無論此標記的值為何,系統一律會忽略這些開發依附元件。
標記:loading_and_analysis
--lockfile_mode=<off, update or error> (預設):「更新」
指定使用 Lockfile 的方式,以及是否要使用。有效值為「update」可使用 Lockfile,並在出現變更時進行更新;「error」表示使用 Lockfile,但並非最新版本,會擲回錯誤;如果未更新,則為「off」。
標記:loading_and_analysis
會累積 --override_module=<an equals-separated mapping of module name to path> 個用途
以 <module name>=<path> 的格式覆寫本機路徑的模組。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則該路徑會與目前的工作目錄相對。如果指定路徑的開頭是「%workspace%」,代表與工作區根目錄 (也就是「bazel info workspace」的輸出內容) 有關。
會累積 --registry=<a string> 個用途
指定要用來尋找 Bazel 模組依附元件的登錄檔。順序很重要:系統會先在較早的登錄檔中查詢模組,而且只有在之後的登錄檔中缺少模組時,才會改回使用之後的登錄檔。
標記:changes_inputs
--vendor_dir=<a path> 預設:查看說明
指定應在廠商模式下保存外部存放區的目錄,不論是用於擷取或建立使用這些存放區。路徑可以指定為絕對路徑或相對於工作區目錄的路徑。
標記:loading_and_analysis
會觸發建構時間最佳化的選項:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 預設值:「1s:2,20s:3,1m:5」
限制如果已達到,GcThrashingDetector 會透過 OOM 讓 Bazel 當機,每項限制都以 <period>:<count> 指定,週期為時間長度,計數代表正整數。如果 <period> 內連續 <count> 個 GC 數量超過 --gc_thrashing_threshold 百分比,系統就會觸發 OOM。如要指定多個限制,請以半形逗號分隔。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生完整 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示完整 GC 事件永遠不會觸發下降。如果達到上限,在完整 GC 事件發生且超過保留堆積百分比門檻時,系統不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生輕微 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示次要 GC 事件永遠不會觸發下降。一旦達到限制,發生輕微 GC 事件且超過保留堆積百分比門檻時,系統就不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 預設值:「85」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量至少達到這個門檻,就會捨棄不必要的暫時性 SkyFrame 狀態。調整這個做法,即可減少垃圾收集造成的實際時間影響,也就是以下情形:GC 輾轉現象,是:(i) 這個臨時狀態的記憶體用量造成,(ii) 比在需要時重新建構狀態的成本高昂。
標記: host_machine_resource_optimizations
影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock> 預設:查看說明
記錄指令期間的 Java 航班/機票記錄工具設定檔。支援的剖析事件類型之一 (CPU、牆、分配或鎖定) 必須以引數的形式指定。設定檔將寫入一個檔案,並以事件類型在輸出基本目錄下命名。這個旗標的語法和語意日後可能會變更,以支援其他設定檔類型或輸出格式,請自行承擔風險。
--[no]experimental_record_metrics_for_all_mnemonics 預設值:「false」
根據預設,動作類型數量限制為已執行次數最多的 20 種記憶。如果設定這個選項,系統將寫入所有助測器的統計資料。
--[no]show_make_env 預設值:「false」
在輸出內容中加入「Make」環境。
標記:affects_outputsterminal_output
選項可為不屬於其他類別的 Bazel 指令指定或變更一般輸入內容:
--experimental_resolved_file_instead_of_workspace=<a string> 預設值:「」
如果讀取指定的已解析檔案 (而非 WORKSPACE 檔案) 為非空白檔案
標記: changes_inputs
遠端快取和執行選項:
--experimental_downloader_config=<a string> 預設:查看說明
指定要用於設定遠端下載程式的檔案。這個檔案由各行組成,每個指令都是以指令 (「allow」、「block」或「rewrite」) 開頭,後面接有主機名稱 (適用於「allow」和「block」) 或兩個模式,一個要比對做為替代網址,另一個則做為替代網址,並以「$1」開頭的反向參照。即使多個「重新編寫」指令,也可視為相同網址的「rewrite」指令。
--experimental_worker_for_repo_fetching=<off, platform, virtual or auto> 預設值:「auto」
用於存放區擷取的執行緒模式。如果設為「off」,系統就不會使用任何工作站執行緒,且會重新啟動存放區擷取作業。如果設為「平台」,則會使用平台執行緒 (即 OS 執行緒) 或虛擬執行緒 (如設為「virtual」)。如果設為「auto」,系統就會在可用的情況下使用虛擬執行緒 (即在 JDK 21 以上版本中執行),否則就不會使用工作站執行緒。
其他未分類的選項。
會累積 --override_repository=<an equals-separated mapping of repository name to path> 個用途
用 <repository name>=<path> 的格式覆寫本機路徑的存放區。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則以相對路徑為準。如果指定路徑的開頭是「%workspace%」,代表相對於工作區根目錄,也就是「bazel info workspace」的輸出內容

授權選項

這些選項會顯示在指令之前,並由用戶端剖析:
會累積 --distdir=<a path> 個用途
還有許多地方可以搜尋封存檔案,以便透過網路下載封存內容。
標記:bazel_internal_configuration
如有設定,存放區快取會在快取成功時將檔案硬式編碼,而非複製檔案。以便節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 預設值:「0」
重試下載錯誤的次數上限。如果設為 0,系統就會停用重試功能。
標記:experimental
--experimental_scale_timeouts=<a double> 預設值:「1.0」
按照這項係數調整 Starlark 存放區規則中的所有逾時時間。如此一來,即使效能低於規則作者預期的機器,外部存放區也能在不變更原始碼的情況下正常運作。
標記:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 預設值:「8」
http 下載作業的次數上限。
標記:bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 預設值:「0s」
http 下載重試的逾時時間上限。如果值為 0,就不會定義逾時上限。
標記:bazel_internal_configuration
--http_timeout_scaling=<a double> 預設值:「1.0」
依指定係數調整所有與 http 下載相關的逾時時間
標記: bazel_internal_configuration
--repository_cache=<a path> 預設:查看說明
指定擷取外部存放區時取得的已下載值的快取位置。將空字串做為引數要求停用快取,否則會使用預設的「<output_user_root>/cache/repos/v1」
標記: bazel_internal_configuration
--[no]repository_disable_download 預設值:「false」
如果已設定,無法在存放區擷取期間使用 ctx.download{,_and_extract} 進行下載。請注意,網路存取權並未完全停用;ctx.execute 仍可以執行存取網際網路的任意執行檔。
標記:bazel_internal_configuration
控制建構執行作業的選項:
--gc_thrashing_threshold=<an integer in 0-100 range> 預設值:「100」
上方 GcThrashingDetector 會將記憶體壓力事件視為其配額限制 (--gc_thrashing_limits),而佔用空間佔用的空間百分比 (0-100)。如果設為 100,系統會停用 GcThrashingDetector。
標記: host_machine_resource_optimizations
這個選項會影響 Starlark 語言的語意,或是 BUILD 檔案、.bzl 檔案或 WORKSPACE 檔案可用的建構 API。
--[no]incompatible_depset_for_java_output_source_jars預設值:「true」
免人工管理。
標記: loading_and_analysisincompatible_change
--[no]incompatible_new_actions_api預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]incompatible_visibility_private_attributes_at_definition預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]separate_aspect_deps預設值:「true」
免人工管理
標記: no_op
與 Bzlmod 輸出內容和語意相關的選項:
會累積 --allow_yanked_versions=<a string> 個用途
指定模組版本時,請以「<module1>@<version1>,<module2>@<version2>」格式指定在已解析的依附元件圖中,即使這些版本來源不是來自 NonRegistryOverride,仍可在存放區中宣告這些版本。否則,分割版本會導致解析失敗。您也可以使用「BZLMOD_ALLOW_YANKED_VERSIONS」環境變數定義允許的分割版本。您可使用關鍵字「全部」停用這項檢查 (不建議使用)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off> 預設值:「錯誤」
檢查 Bazel 模組的 Bazel 版本相容性。有效值為「error」:可將其提報至解決失敗;設為「off」可停用檢查,「warning」則能在偵測到不相符時顯示警告。
標記:loading_and_analysis
--check_direct_dependencies=<off, warning or error> 預設值:「warning」
檢查根模組中宣告的直接「bazel_dep」依附元件,是否與已解析依附元件圖表中的版本相同。有效值為「off」可停用檢查,「warning」會在偵測到不相符時顯示警告,或是「error」將問題提報至解決失敗。
標記:loading_and_analysis
--[no]ignore_dev_dependency 預設值:「false」
如果為 true,Bazel 會忽略根模組 MODULE.bazel 中宣告為「dev_dependency」的「bazel_dep」和「use_extension」。請注意,如果根模組不是根模組,無論此標記的值為何,系統一律會忽略這些開發依附元件。
標記:loading_and_analysis
--lockfile_mode=<off, update or error> (預設):「更新」
指定使用 Lockfile 的方式,以及是否要使用。有效值為「update」可使用 Lockfile,並在出現變更時進行更新;「error」表示使用 Lockfile,但並非最新版本,會擲回錯誤;如果未更新,則為「off」。
標記:loading_and_analysis
會累積 --override_module=<an equals-separated mapping of module name to path> 個用途
以 <module name>=<path> 的格式覆寫本機路徑的模組。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則該路徑會與目前的工作目錄相對。如果指定路徑的開頭是「%workspace%」,代表與工作區根目錄 (也就是「bazel info workspace」的輸出內容) 有關。
會累積 --registry=<a string> 個用途
指定要用來尋找 Bazel 模組依附元件的登錄檔。順序很重要:系統會先在較早的登錄檔中查詢模組,而且只有在之後的登錄檔中缺少模組時,才會改回使用之後的登錄檔。
標記:changes_inputs
--vendor_dir=<a path> 預設:查看說明
指定應在廠商模式下保存外部存放區的目錄,不論是用於擷取或建立使用這些存放區。路徑可以指定為絕對路徑或相對於工作區目錄的路徑。
標記:loading_and_analysis
會觸發建構時間最佳化的選項:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 預設值:「1s:2,20s:3,1m:5」
限制如果已達到,GcThrashingDetector 會透過 OOM 讓 Bazel 當機,每項限制都以 <period>:<count> 指定,週期為時間長度,計數代表正整數。如果 <period> 內連續 <count> 個 GC 數量超過 --gc_thrashing_threshold 百分比,系統就會觸發 OOM。如要指定多個限制,請以半形逗號分隔。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生完整 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示完整 GC 事件永遠不會觸發下降。如果達到上限,在完整 GC 事件發生且超過保留堆積百分比門檻時,系統不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生輕微 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示次要 GC 事件永遠不會觸發下降。一旦達到限制,發生輕微 GC 事件且超過保留堆積百分比門檻時,系統就不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 預設值:「85」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量至少達到這個門檻,就會捨棄不必要的暫時性 SkyFrame 狀態。調整這個做法,即可減少垃圾收集造成的實際時間影響,也就是以下情形:GC 輾轉現象,是:(i) 這個臨時狀態的記憶體用量造成,(ii) 比在需要時重新建構狀態的成本高昂。
標記: host_machine_resource_optimizations
影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock> 預設:查看說明
記錄指令期間的 Java 航班/機票記錄工具設定檔。支援的剖析事件類型之一 (CPU、牆、分配或鎖定) 必須以引數的形式指定。設定檔將寫入一個檔案,並以事件類型在輸出基本目錄下命名。這個旗標的語法和語意日後可能會變更,以支援其他設定檔類型或輸出格式,請自行承擔風險。
--[no]experimental_record_metrics_for_all_mnemonics 預設值:「false」
根據預設,動作類型數量限制為已執行次數最多的 20 種記憶。如果設定這個選項,系統將寫入所有助測器的統計資料。
指定或變更不屬於其他類別 Bazel 指令的一般輸入選項:
--experimental_resolved_file_instead_of_workspace=<a string> 預設值:「」
如果讀取指定的已解析檔案 (而非 WORKSPACE 檔案) 為非空白檔案
標記: changes_inputs
遠端快取和執行選項:
--experimental_downloader_config=<a string> 預設:查看說明
指定要用於設定遠端下載程式的檔案。這個檔案由各行組成,每個指令都是以指令 (「allow」、「block」或「rewrite」) 開頭,後面接有主機名稱 (適用於「allow」和「block」) 或兩個模式,一個要比對做為替代網址,另一個則做為替代網址,並以「$1」開頭的反向參照。即使多個「重新編寫」指令,也可視為相同網址的「rewrite」指令。
--experimental_worker_for_repo_fetching=<off, platform, virtual or auto> 預設值:「auto」
用於存放區擷取的執行緒模式。如果設為「off」,系統就不會使用任何工作站執行緒,且會重新啟動存放區擷取作業。如果設為「平台」,則會使用平台執行緒 (即 OS 執行緒) 或虛擬執行緒 (如設為「virtual」)。如果設為「auto」,系統就會在可用的情況下使用虛擬執行緒 (即在 JDK 21 以上版本中執行),否則就不會使用工作站執行緒。
其他未分類的選項。
會累積 --override_repository=<an equals-separated mapping of repository name to path> 個用途
用 <repository name>=<path> 的格式覆寫本機路徑的存放區。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則以相對路徑為準。如果指定路徑的開頭是「%workspace%」,代表相對於工作區根目錄,也就是「bazel info workspace」的輸出內容

行動裝置安裝選項

繼承 build 的所有選項。

這些選項會顯示在指令之前,並由用戶端剖析:
會累積 --distdir=<a path> 個用途
還有許多地方可以搜尋封存檔案,以便透過網路下載封存內容。
標記:bazel_internal_configuration
如有設定,存放區快取會在快取成功時將檔案硬式編碼,而非複製檔案。以便節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 預設值:「0」
重試下載錯誤的次數上限。如果設為 0,系統就會停用重試功能。
標記:experimental
--experimental_scale_timeouts=<a double> 預設值:「1.0」
按照這項係數調整 Starlark 存放區規則中的所有逾時時間。如此一來,即使效能低於規則作者預期的機器,外部存放區也能在不變更原始碼的情況下正常運作。
標記:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 預設值:「8」
http 下載作業的次數上限。
標記:bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 預設值:「0s」
http 下載重試的逾時時間上限。如果值為 0,就不會定義逾時上限。
標記:bazel_internal_configuration
--http_timeout_scaling=<a double> 預設值:「1.0」
依指定係數調整所有與 http 下載相關的逾時時間
標記: bazel_internal_configuration
--repository_cache=<a path> 預設:查看說明
指定擷取外部存放區時取得的已下載值的快取位置。將空字串做為引數要求停用快取,否則會使用預設的「<output_user_root>/cache/repos/v1」
標記: bazel_internal_configuration
--[no]repository_disable_download 預設值:「false」
如果已設定,無法在存放區擷取期間使用 ctx.download{,_and_extract} 進行下載。請注意,網路存取權並未完全停用;ctx.execute 仍可以執行存取網際網路的任意執行檔。
標記:bazel_internal_configuration
控制建構執行作業的選項:
--gc_thrashing_threshold=<an integer in 0-100 range> 預設值:「100」
上方 GcThrashingDetector 會將記憶體壓力事件視為其配額限制 (--gc_thrashing_limits),而佔用空間佔用的空間百分比 (0-100)。如果設為 100,系統會停用 GcThrashingDetector。
標記:host_machine_resource_optimizations
--mode=<classic, classic_internal_test_do_not_use or skylark> 預設值:「傳統版」
選取如何執行行動裝置安裝。「傳統版」會執行最新版本的行動裝置安裝。「skylark」使用支援 android_test 的新 Starlark 版本。
標記:loading_and_analysisexecutionincompatible_change
設定用於執行動作的工具鍊的選項:
--adb=<a string> 預設值:「」
用於「mobile-install」指令的 ADB 二進位檔。如未指定,則會使用 --android_sdk 指令列選項 (如果未指定 --android_sdk,則採用預設 SDK) 指定的 Android SDK 套件。
標記: changes_inputs
控制指令輸出內容的選項:
--[no]incremental 預設值:「false」
是否要逐步安裝。如果設為 true,系統會讀取已安裝程式碼的裝置狀態,並利用該資訊避免不必要的作業,以避免不必要的額外工作。如果為 false (預設值),請一律進行完整安裝。
標記:loading_and_analysis
--[no]split_apks 預設值:「false」
是否要使用分割 APK,在裝置上安裝及更新應用程式。僅適用於搭載 Marshmallow 以上版本的裝置
標記:loading_and_analysisaffects_outputs
可讓使用者設定預定輸出內容的選項,且該輸出內容的值會 (有別於存在) 影響:
會累積 --adb_arg=<a string> 個用途
要傳遞至 ADB 的額外引數。通常用於指定要安裝的目標裝置。
標記:action_command_lines
--debug_app
是否要等到偵錯工具才啟動應用程式。
展開至:
  --start=DEBUG

標記: execution
--device=<a string> 預設值:「」
ADB 裝置序號。如未指定,系統會使用第一部裝置。
標記:action_command_lines
--start=<no, cold, warm or debug> 預設值:「NO」
應用程式安裝後應如何啟動。設為 WARM,可在漸進式安裝時保留及還原應用程式狀態。
標記:execution
--start_app
是否要在安裝後啟動應用程式。
包含:
  --start=COLD

標記: execution
這個選項會影響 Starlark 語言的語意,或是 BUILD 檔案、.bzl 檔案或 WORKSPACE 檔案使用的建構 API。
--[no]incompatible_depset_for_java_output_source_jars預設值:「true」
免人工管理。
標記: loading_and_analysisincompatible_change
--[no]incompatible_new_actions_api預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]incompatible_visibility_private_attributes_at_definition預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]separate_aspect_deps預設值:「true」
免人工管理
標記: no_op
與 Bzlmod 輸出內容和語意相關的選項:
會累積 --allow_yanked_versions=<a string> 個用途
指定模組版本時,請以「<module1>@<version1>,<module2>@<version2>」格式指定在已解析的依附元件圖中,即使這些版本來源不是來自 NonRegistryOverride,仍可在存放區中宣告這些版本。否則,分割版本會導致解析失敗。您也可以使用「BZLMOD_ALLOW_YANKED_VERSIONS」環境變數定義允許的分割版本。您可使用關鍵字「全部」停用這項檢查 (不建議使用)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off> 預設值:「錯誤」
檢查 Bazel 模組的 Bazel 版本相容性。有效值為「error」:可將其提報至解決失敗;設為「off」可停用檢查,「warning」則能在偵測到不相符時顯示警告。
標記:loading_and_analysis
--check_direct_dependencies=<off, warning or error> 預設值:「warning」
檢查根模組中宣告的直接「bazel_dep」依附元件,是否與已解析依附元件圖表中的版本相同。有效值為「off」可停用檢查,「warning」會在偵測到不相符時顯示警告,或是「error」將問題提報至解決失敗。
標記:loading_and_analysis
--[no]ignore_dev_dependency 預設值:「false」
如果為 true,Bazel 會忽略根模組 MODULE.bazel 中宣告為「dev_dependency」的「bazel_dep」和「use_extension」。請注意,如果根模組不是根模組,無論此標記的值為何,系統一律會忽略這些開發依附元件。
標記:loading_and_analysis
--lockfile_mode=<off, update or error> (預設):「更新」
指定使用 Lockfile 的方式,以及是否要使用。有效值為「update」可使用 Lockfile,並在出現變更時進行更新;「error」表示使用 Lockfile,但並非最新版本,會擲回錯誤;如果未更新,則為「off」。
標記:loading_and_analysis
會累積 --override_module=<an equals-separated mapping of module name to path> 個用途
以 <module name>=<path> 的格式覆寫本機路徑的模組。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則該路徑會與目前的工作目錄相對。如果指定路徑的開頭是「%workspace%」,代表與工作區根目錄 (也就是「bazel info workspace」的輸出內容) 有關。
會累積 --registry=<a string> 個用途
指定要用來尋找 Bazel 模組依附元件的登錄檔。順序很重要:系統會先在較早的登錄檔中查詢模組,而且只有在之後的登錄檔中缺少模組時,才會改回使用之後的登錄檔。
標記:changes_inputs
--vendor_dir=<a path> 預設:查看說明
指定應在廠商模式下保存外部存放區的目錄,不論是用於擷取或建立使用這些存放區。路徑可以指定為絕對路徑或相對於工作區目錄的路徑。
標記:loading_and_analysis
會觸發建構時間最佳化的選項:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 預設值:「1s:2,20s:3,1m:5」
限制如果已達到,GcThrashingDetector 會透過 OOM 讓 Bazel 當機,每項限制都以 <period>:<count> 指定,週期為時間長度,計數代表正整數。如果 <period> 內連續 <count> 個 GC 數量超過 --gc_thrashing_threshold 百分比,系統就會觸發 OOM。如要指定多個限制,請以半形逗號分隔。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生完整 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示完整 GC 事件永遠不會觸發下降。如果達到上限,在完整 GC 事件發生且超過保留堆積百分比門檻時,系統不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生輕微 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示次要 GC 事件永遠不會觸發下降。一旦達到限制,發生輕微 GC 事件且超過保留堆積百分比門檻時,系統就不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 預設值:「85」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量至少達到這個門檻,就會捨棄不必要的暫時性 SkyFrame 狀態。調整這個做法,即可減少垃圾收集造成的實際時間影響,也就是以下情形:GC 輾轉現象,是:(i) 這個臨時狀態的記憶體用量造成,(ii) 比在需要時重新建構狀態的成本高昂。
標記: host_machine_resource_optimizations
影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock> 預設:查看說明
記錄指令期間的 Java 航班/機票記錄工具設定檔。支援的剖析事件類型之一 (CPU、牆、分配或鎖定) 必須以引數的形式指定。設定檔將寫入一個檔案,並以事件類型在輸出基本目錄下命名。這個旗標的語法和語意日後可能會變更,以支援其他設定檔類型或輸出格式,請自行承擔風險。
--[no]experimental_record_metrics_for_all_mnemonics 預設值:「false」
根據預設,動作類型數量限制為已執行次數最多的 20 種記憶。如果設定這個選項,系統將寫入所有助測器的統計資料。
--incremental_install_verbosity=<a string> 預設值:「」
逐步安裝作業的詳細程度。偵錯記錄時,請設為 1。
標記:bazel_monitoring
可為不屬於其他類別的 Bazel 指令指定或變更一般輸入的選項:
--experimental_resolved_file_instead_of_workspace=<a string> 預設值:「」
如果讀取指定的已解析檔案 (而非 WORKSPACE 檔案) 為非空白檔案
標記: changes_inputs
遠端快取和執行選項:
--experimental_downloader_config=<a string> 預設:查看說明
指定要用於設定遠端下載程式的檔案。這個檔案由各行組成,每個指令都是以指令 (「allow」、「block」或「rewrite」) 開頭,後面接有主機名稱 (適用於「allow」和「block」) 或兩個模式,一個要比對做為替代網址,另一個則做為替代網址,並以「$1」開頭的反向參照。即使多個「重新編寫」指令,也可視為相同網址的「rewrite」指令。
--experimental_worker_for_repo_fetching=<off, platform, virtual or auto> 預設值:「auto」
用於存放區擷取的執行緒模式。如果設為「off」,系統就不會使用任何工作站執行緒,且會重新啟動存放區擷取作業。如果設為「平台」,則會使用平台執行緒 (即 OS 執行緒) 或虛擬執行緒 (如設為「virtual」)。如果設為「auto」,系統就會在可用的情況下使用虛擬執行緒 (即在 JDK 21 以上版本中執行),否則就不會使用工作站執行緒。
其他未分類的選項。
會累積 --override_repository=<an equals-separated mapping of repository name to path> 個用途
用 <repository name>=<path> 的格式覆寫本機路徑的存放區。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則以相對路徑為準。如果指定路徑的開頭是「%workspace%」,代表相對於工作區根目錄,也就是「bazel info workspace」的輸出內容

模組選項

這些選項會顯示在指令之前,並由用戶端剖析:
會累積 --distdir=<a path> 個用途
還有許多地方可以搜尋封存檔案,以便透過網路下載封存內容。
標記:bazel_internal_configuration
如有設定,存放區快取會在快取成功時將檔案硬式編碼,而非複製檔案。以便節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 預設值:「0」
重試下載錯誤的次數上限。如果設為 0,系統就會停用重試功能。
標記:experimental
--experimental_scale_timeouts=<a double> 預設值:「1.0」
按照這項係數調整 Starlark 存放區規則中的所有逾時時間。如此一來,即使效能低於規則作者預期的機器,外部存放區也能在不變更原始碼的情況下正常運作。
標記:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 預設值:「8」
http 下載作業的次數上限。
標記:bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 預設值:「0s」
http 下載重試的逾時時間上限。如果值為 0,就不會定義逾時上限。
標記:bazel_internal_configuration
--http_timeout_scaling=<a double> 預設值:「1.0」
依指定係數調整所有與 http 下載相關的逾時時間
標記: bazel_internal_configuration
--repository_cache=<a path> 預設:查看說明
指定擷取外部存放區時取得的已下載值的快取位置。將空字串做為引數要求停用快取,否則會使用預設的「<output_user_root>/cache/repos/v1」
標記: bazel_internal_configuration
--[no]repository_disable_download 預設值:「false」
如果已設定,無法在存放區擷取期間使用 ctx.download{,_and_extract} 進行下載。請注意,網路存取權並未完全停用;ctx.execute 仍可以執行存取網際網路的任意執行檔。
標記:bazel_internal_configuration
控制建構執行作業的選項:
--gc_thrashing_threshold=<an integer in 0-100 range> 預設值:「100」
上方 GcThrashingDetector 會將記憶體壓力事件視為其配額限制 (--gc_thrashing_limits),而佔用空間佔用的空間百分比 (0-100)。如果設為 100,系統會停用 GcThrashingDetector。
標記:host_machine_resource_optimizations
--[no]keep_going [-k] 預設值:「false」
發生錯誤後請盡可能繼續操作。雖然失敗的目標及依附的目標無法分析,但您可以採用這些目標的其他必要條件。
標記:eagerness_to_exit
--loading_phase_threads=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5"> 預設值:「auto」
用於載入/分析階段的平行執行緒數量。可使用整數或關鍵字 (「auto」、「HOST_CPUS」、「HOST_RAM」),視需要後面加上運算 ([-|*]<float>),例如「auto」、「HOST_CPUS*.5」。「auto」會根據主機資源設定合理的預設值。不得小於 1。
標記: bazel_internal_configuration
這個選項會影響 Starlark 語言的語意,或是 BUILD 檔案、.bzl 檔案或 WORKSPACE 檔案可用的建構 API。
--[no]incompatible_config_setting_private_default_visibility 預設值:「false」
如果 incompatible_enforce_config_setting_visibility=false,即為不相容性。此外,如果這個旗標為 false,任何沒有明確瀏覽權限屬性的 config_setting 都是 //visibility:public。如果這個標記為 true,config_setting 的瀏覽權限邏輯與其他規則相同。請參閱 https://github.com/bazelbuild/bazel/issues/12933。
標記:loading_and_analysisincompatible_change
--[no]incompatible_depset_for_java_output_source_jars預設值:「true」
免人工管理。
標記: loading_and_analysisincompatible_change
--[no]incompatible_enforce_config_setting_visibility預設值:「true」
如果設為 true,請強制執行 config_setting 瀏覽權限限制。如果設為 False,每個目標都會顯示所有 config_setting。請參閱 https://github.com/bazelbuild/bazel/issues/12932。
標記:loading_and_analysisincompatible_change
--[no]incompatible_new_actions_api預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]incompatible_visibility_private_attributes_at_definition預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]separate_aspect_deps預設值:「true」
免人工管理
標記: no_op
「mod」子指令的輸出內容和語意相關選項:
--base_module=<"<root>" for the root module; <module>@<version> for a specific version of a module; <module> for all versions of a module; @<name> for a repo with the given apparent name; or @@<name> for a repo with the given canonical name> 預設值:「<root>」
指定要根據指定目標存放區解譯的模組。
標記:terminal_output
--charset=<utf8 or ascii> 預設值:「utf8」
選擇要用於樹狀結構的字元集。只會影響文字輸出。有效值為「utf8」或「ascii」。預設值為「utf8」。
標記:terminal_output
--[no]cycles 預設值:「false」
指出顯示的樹狀結構內的依附元件週期,通常預設為忽略。
標記:terminal_output
--depth=<an integer> 預設值:「-1」
依附元件樹狀結構的顯示深度上限。舉例來說,深度 1 會顯示直接依附元件。以樹狀結構來說,path 和 all_paths 預設為 Integer.MAX_VALUE,如果設為 deps,並解釋其預設值為 1 (只會顯示目標離開及其父項外的根直接依附元件)。
標記:terminal_output
--extension_filter=<a comma-separated list of <extension>s> 預設:查看說明
僅顯示這些模組擴充功能的用法,以及這些模組產生的存放區 (如有設定各自的標記) 的用法,如果設定這個項目,結果圖只會包含使用指定副檔名的模組的路徑。如果空白清單,系統會停用篩選器,有效指定所有可能的擴充功能。
標記:terminal_output
--extension_info=<hidden, usages, repos or all> 預設值:「已隱藏」
指定要在查詢結果中包含的擴充功能使用情況詳細資料。「使用情形」只會顯示擴充功能名稱,「repos」也會包含透過 use_repo 匯入的存放區,而「all」也會顯示擴充功能產生的其他存放區。
標記:terminal_output
--extension_usages=<a comma-separated list of <module>s> 預設值:「」
指定在 show_extension 查詢中顯示擴充功能使用情況的模組。
標記:terminal_output
--from=<a comma-separated list of <module>s> 預設值:「<root>」
顯示依附元件圖查詢時開始顯示的模組。請查看每個查詢的說明,瞭解確切語意。預設為 <root>。
標記: terminal_output
--[no]include_builtin 預設值:「false」
在依附元件圖表中加入內建模組。由於相當吵雜,因此預設為停用。
標記:terminal_output
--[no]include_unused 預設值:「false」
查詢也會考量並顯示未使用模組 (因為基於最低版本選擇或覆寫規則) 後,在模組解析度圖中未顯示的模組。這可能會對每個查詢類型產生不同影響,例如在 all_paths 指令中加入新路徑,或是在說明指令中加入額外的相依項目。
標記:terminal_output
--output=<text, json or graph> 預設值:「text」
查詢結果的輸出格式。允許的查詢值為:text、json、圖表
標記: terminal_output
--[no]verbose 預設值:「false」
查詢也會顯示模組解析目前版本 (如果已變更) 的原因。預設值為 true。
標記:terminal_output
與 Bzlmod 輸出內容和語意相關的選項:
會累積 --allow_yanked_versions=<a string> 個用途
指定模組版本時,請以「<module1>@<version1>,<module2>@<version2>」格式指定在已解析的依附元件圖中,即使這些版本來源不是來自 NonRegistryOverride,仍可在存放區中宣告這些版本。否則,分割版本會導致解析失敗。您也可以使用「BZLMOD_ALLOW_YANKED_VERSIONS」環境變數定義允許的分割版本。您可使用關鍵字「全部」停用這項檢查 (不建議使用)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off> 預設值:「錯誤」
檢查 Bazel 模組的 Bazel 版本相容性。有效值為「error」:可將其提報至解決失敗;設為「off」可停用檢查,「warning」則能在偵測到不相符時顯示警告。
標記:loading_and_analysis
--check_direct_dependencies=<off, warning or error> 預設值:「warning」
檢查根模組中宣告的直接「bazel_dep」依附元件,是否與已解析依附元件圖表中的版本相同。有效值為「off」可停用檢查,「warning」會在偵測到不相符時顯示警告,或是「error」將問題提報至解決失敗。
標記:loading_and_analysis
--[no]ignore_dev_dependency 預設值:「false」
如果為 true,Bazel 會忽略根模組 MODULE.bazel 中宣告為「dev_dependency」的「bazel_dep」和「use_extension」。請注意,如果根模組不是根模組,無論此標記的值為何,系統一律會忽略這些開發依附元件。
標記:loading_and_analysis
--lockfile_mode=<off, update or error> (預設):「更新」
指定使用 Lockfile 的方式,以及是否要使用。有效值為「update」可使用 Lockfile,並在出現變更時進行更新;「error」表示使用 Lockfile,但並非最新版本,會擲回錯誤;如果未更新,則為「off」。
標記:loading_and_analysis
會累積 --override_module=<an equals-separated mapping of module name to path> 個用途
以 <module name>=<path> 的格式覆寫本機路徑的模組。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則該路徑會與目前的工作目錄相對。如果指定路徑的開頭是「%workspace%」,代表與工作區根目錄 (也就是「bazel info workspace」的輸出內容) 有關。
會累積 --registry=<a string> 個用途
指定要用來尋找 Bazel 模組依附元件的登錄檔。順序很重要:系統會先在較早的登錄檔中查詢模組,而且只有在之後的登錄檔中缺少模組時,才會改回使用之後的登錄檔。
標記:changes_inputs
--vendor_dir=<a path> 預設:查看說明
指定應在廠商模式下保存外部存放區的目錄,不論是用於擷取或建立使用這些存放區。路徑可以指定為絕對路徑或相對於工作區目錄的路徑。
標記:loading_and_analysis
會觸發建構時間最佳化的選項:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 預設值:「1s:2,20s:3,1m:5」
限制如果已達到,GcThrashingDetector 會透過 OOM 讓 Bazel 當機,每項限制都以 <period>:<count> 指定,週期為時間長度,計數代表正整數。如果 <period> 內連續 <count> 個 GC 數量超過 --gc_thrashing_threshold 百分比,系統就會觸發 OOM。如要指定多個限制,請以半形逗號分隔。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生完整 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示完整 GC 事件永遠不會觸發下降。如果達到上限,在完整 GC 事件發生且超過保留堆積百分比門檻時,系統不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生輕微 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示次要 GC 事件永遠不會觸發下降。一旦達到限制,發生輕微 GC 事件且超過保留堆積百分比門檻時,系統就不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 預設值:「85」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量至少達到這個門檻,就會捨棄不必要的暫時性 SkyFrame 狀態。調整這個做法,即可減少垃圾收集造成的實際時間影響,也就是以下情形:GC 輾轉現象,是:(i) 這個臨時狀態的記憶體用量造成,(ii) 比在需要時重新建構狀態的成本高昂。
標記: host_machine_resource_optimizations
影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock> 預設:查看說明
記錄指令期間的 Java 航班/機票記錄工具設定檔。支援的剖析事件類型之一 (CPU、牆、分配或鎖定) 必須以引數的形式指定。設定檔將寫入一個檔案,並以事件類型在輸出基本目錄下命名。這個旗標的語法和語意日後可能會變更,以支援其他設定檔類型或輸出格式,請自行承擔風險。
--[no]experimental_record_metrics_for_all_mnemonics 預設值:「false」
根據預設,動作類型數量限制為已執行次數最多的 20 種記憶。如果設定這個選項,系統將寫入所有助測器的統計資料。
指定或變更不屬於其他類別 Bazel 指令的一般輸入選項:
--experimental_resolved_file_instead_of_workspace=<a string> 預設值:「」
如果讀取指定的已解析檔案 (而非 WORKSPACE 檔案) 為非空白檔案
標記: changes_inputs
遠端快取和執行選項:
--experimental_downloader_config=<a string> 預設:查看說明
指定要用於設定遠端下載程式的檔案。這個檔案由各行組成,每個指令都是以指令 (「allow」、「block」或「rewrite」) 開頭,後面接有主機名稱 (適用於「allow」和「block」) 或兩個模式,一個要比對做為替代網址,另一個則做為替代網址,並以「$1」開頭的反向參照。即使多個「重新編寫」指令,也可視為相同網址的「rewrite」指令。
--experimental_worker_for_repo_fetching=<off, platform, virtual or auto> 預設值:「auto」
用於存放區擷取的執行緒模式。如果設為「off」,系統就不會使用任何工作站執行緒,且會重新啟動存放區擷取作業。如果設為「平台」,則會使用平台執行緒 (即 OS 執行緒) 或虛擬執行緒 (如設為「virtual」)。如果設為「auto」,系統就會在可用的情況下使用虛擬執行緒 (即在 JDK 21 以上版本中執行),否則就不會使用工作站執行緒。
其他未分類的選項。
會累積 --deleted_packages=<comma-separated list of package names> 個用途
逗號分隔的套件名稱清單,即使這些套件出現在套件路徑中,建構系統也不會將其視為不存在。 刪除現有套件「x」的子套件「x/y」時,請使用這個選項。舉例來說,在用戶端刪除 x/y/BUILD 後,如果建構系統發現標籤「//x:y/z」仍由另一個 package_path 項目提供,可能會抱怨。指定 --deleted_packages x/y 以避免這個問題。
--[no]fetch預設值:「true」
允許指令擷取外部依附元件。如果設為 False,這個指令會使用依附元件的任何快取版本;如果不存在,該指令就會導致失敗。
會累積 --override_repository=<an equals-separated mapping of repository name to path> 個用途
用 <repository name>=<path> 的格式覆寫本機路徑的存放區。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則以相對路徑為準。如果指定路徑的開頭是「%workspace%」,代表與工作區根目錄 (也就是「bazel info workspace」的輸出內容) 有關。
--package_path=<colon-separated list of options>預設值:「%workspace%」
尋找套件的位置清單 (以半形冒號分隔)。開頭為「%workspace%」的元素與所屬工作區相對。如果省略或留空,則預設值為「bazel info default-package-path」的輸出內容。
--[no]show_loading_progress預設值:「true」
啟用後,Bazel 就會顯示「Loading package:」訊息。

繼承 build 的所有選項。

這些選項會顯示在指令之前,並由用戶端剖析:
會累積 --distdir=<a path> 個用途
還有許多地方可以搜尋封存檔案,以便透過網路下載封存內容。
標記:bazel_internal_configuration
如有設定,存放區快取會在快取成功時將檔案硬式編碼,而非複製檔案。以便節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 預設值:「0」
重試下載錯誤的次數上限。如果設為 0,系統就會停用重試功能。
標記:experimental
--experimental_scale_timeouts=<a double> 預設值:「1.0」
按照這項係數調整 Starlark 存放區規則中的所有逾時時間。如此一來,即使效能低於規則作者預期的機器,外部存放區也能在不變更原始碼的情況下正常運作。
標記:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 預設值:「8」
http 下載作業的次數上限。
標記:bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 預設值:「0s」
http 下載重試的逾時時間上限。如果值為 0,就不會定義逾時上限。
標記:bazel_internal_configuration
--http_timeout_scaling=<a double> 預設值:「1.0」
依指定係數調整所有與 http 下載相關的逾時時間
標記: bazel_internal_configuration
--repository_cache=<a path> 預設:查看說明
指定擷取外部存放區時取得的已下載值的快取位置。將空字串做為引數要求停用快取,否則會使用預設的「<output_user_root>/cache/repos/v1」
標記: bazel_internal_configuration
--[no]repository_disable_download 預設值:「false」
如果已設定,無法在存放區擷取期間使用 ctx.download{,_and_extract} 進行下載。請注意,網路存取權並未完全停用;ctx.execute 仍可以執行存取網際網路的任意執行檔。
標記:bazel_internal_configuration
控制建構執行作業的選項:
--gc_thrashing_threshold=<an integer in 0-100 range> 預設值:「100」
上方 GcThrashingDetector 會將記憶體壓力事件視為其配額限制 (--gc_thrashing_limits),而佔用空間佔用的空間百分比 (0-100)。如果設為 100,系統會停用 GcThrashingDetector。
標記: host_machine_resource_optimizations
這個選項會影響 Starlark 語言的語意,或是 BUILD 檔案、.bzl 檔案或 WORKSPACE 檔案可用的建構 API。
--[no]incompatible_depset_for_java_output_source_jars預設值:「true」
免人工管理。
標記: loading_and_analysisincompatible_change
--[no]incompatible_new_actions_api預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]incompatible_visibility_private_attributes_at_definition預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]separate_aspect_deps預設值:「true」
免人工管理
標記: no_op
與 Bzlmod 輸出內容和語意相關的選項:
會累積 --allow_yanked_versions=<a string> 個用途
指定模組版本時,請以「<module1>@<version1>,<module2>@<version2>」格式指定在已解析的依附元件圖中,即使這些版本來源不是來自 NonRegistryOverride,仍可在存放區中宣告這些版本。否則,分割版本會導致解析失敗。您也可以使用「BZLMOD_ALLOW_YANKED_VERSIONS」環境變數定義允許的分割版本。您可使用關鍵字「全部」停用這項檢查 (不建議使用)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off> 預設值:「錯誤」
檢查 Bazel 模組的 Bazel 版本相容性。有效值為「error」:可將其提報至解決失敗;設為「off」可停用檢查,「warning」則能在偵測到不相符時顯示警告。
標記:loading_and_analysis
--check_direct_dependencies=<off, warning or error> 預設值:「warning」
檢查根模組中宣告的直接「bazel_dep」依附元件,是否與已解析依附元件圖表中的版本相同。有效值為「off」可停用檢查,「warning」會在偵測到不相符時顯示警告,或是「error」將問題提報至解決失敗。
標記:loading_and_analysis
--[no]ignore_dev_dependency 預設值:「false」
如果為 true,Bazel 會忽略根模組 MODULE.bazel 中宣告為「dev_dependency」的「bazel_dep」和「use_extension」。請注意,如果根模組不是根模組,無論此標記的值為何,系統一律會忽略這些開發依附元件。
標記:loading_and_analysis
--lockfile_mode=<off, update or error> (預設):「更新」
指定使用 Lockfile 的方式,以及是否要使用。有效值為「update」可使用 Lockfile,並在出現變更時進行更新;「error」表示使用 Lockfile,但並非最新版本,會擲回錯誤;如果未更新,則為「off」。
標記:loading_and_analysis
會累積 --override_module=<an equals-separated mapping of module name to path> 個用途
以 <module name>=<path> 的格式覆寫本機路徑的模組。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則該路徑會與目前的工作目錄相對。如果指定路徑的開頭是「%workspace%」,代表與工作區根目錄 (也就是「bazel info workspace」的輸出內容) 有關。
會累積 --registry=<a string> 個用途
指定要用來尋找 Bazel 模組依附元件的登錄檔。順序很重要:系統會先在較早的登錄檔中查詢模組,而且只有在之後的登錄檔中缺少模組時,才會改回使用之後的登錄檔。
標記:changes_inputs
--vendor_dir=<a path> 預設:查看說明
指定應在廠商模式下保存外部存放區的目錄,不論是用於擷取或建立使用這些存放區。路徑可以指定為絕對路徑或相對於工作區目錄的路徑。
標記:loading_and_analysis
會觸發建構時間最佳化的選項:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 預設值:「1s:2,20s:3,1m:5」
限制如果已達到,GcThrashingDetector 會透過 OOM 讓 Bazel 當機,每項限制都以 <period>:<count> 指定,週期為時間長度,計數代表正整數。如果 <period> 內連續 <count> 個 GC 數量超過 --gc_thrashing_threshold 百分比,系統就會觸發 OOM。如要指定多個限制,請以半形逗號分隔。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生完整 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示完整 GC 事件永遠不會觸發下降。如果達到上限,在完整 GC 事件發生且超過保留堆積百分比門檻時,系統不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生輕微 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示次要 GC 事件永遠不會觸發下降。一旦達到限制,發生輕微 GC 事件且超過保留堆積百分比門檻時,系統就不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 預設值:「85」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量至少達到這個門檻,就會捨棄不必要的暫時性 SkyFrame 狀態。調整這個做法,即可減少垃圾收集造成的實際時間影響,也就是以下情形:GC 輾轉現象,是:(i) 這個臨時狀態的記憶體用量造成,(ii) 比在需要時重新建構狀態的成本高昂。
標記: host_machine_resource_optimizations
影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock> 預設:查看說明
記錄指令期間的 Java 航班/機票記錄工具設定檔。支援的剖析事件類型之一 (CPU、牆、分配或鎖定) 必須以引數的形式指定。設定檔將寫入一個檔案,並以事件類型在輸出基本目錄下命名。這個旗標的語法和語意日後可能會變更,以支援其他設定檔類型或輸出格式,請自行承擔風險。
--[no]experimental_record_metrics_for_all_mnemonics 預設值:「false」
根據預設,動作類型數量限制為已執行次數最多的 20 種記憶。如果設定這個選項,系統將寫入所有助測器的統計資料。
指定或變更不屬於其他類別 Bazel 指令的一般輸入選項:
--experimental_resolved_file_instead_of_workspace=<a string> 預設值:「」
如果讀取指定的已解析檔案 (而非 WORKSPACE 檔案) 為非空白檔案
標記: changes_inputs
遠端快取和執行選項:
--experimental_downloader_config=<a string> 預設:查看說明
指定要用於設定遠端下載程式的檔案。這個檔案由各行組成,每個指令都是以指令 (「allow」、「block」或「rewrite」) 開頭,後面接有主機名稱 (適用於「allow」和「block」) 或兩個模式,一個要比對做為替代網址,另一個則做為替代網址,並以「$1」開頭的反向參照。即使多個「重新編寫」指令,也可視為相同網址的「rewrite」指令。
--experimental_worker_for_repo_fetching=<off, platform, virtual or auto> 預設值:「auto」
用於存放區擷取的執行緒模式。如果設為「off」,系統就不會使用任何工作站執行緒,且會重新啟動存放區擷取作業。如果設為「平台」,則會使用平台執行緒 (即 OS 執行緒) 或虛擬執行緒 (如設為「virtual」)。如果設為「auto」,系統就會在可用的情況下使用虛擬執行緒 (即在 JDK 21 以上版本中執行),否則就不會使用工作站執行緒。
其他未分類的選項。
會累積 --override_repository=<an equals-separated mapping of repository name to path> 個用途
用 <repository name>=<path> 的格式覆寫本機路徑的存放區。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則以相對路徑為準。如果指定路徑的開頭是「%workspace%」,代表與工作區根目錄 (也就是「bazel info workspace」的輸出內容) 有關。
會累積 --print_action_mnemonics=<a string> 個用途
列出要按照 print_action 資料篩選的記憶法 (清單留空時不會進行篩選)。

查詢選項

這些選項會顯示在指令之前,並由用戶端剖析:
會累積 --distdir=<a path> 個用途
還有許多地方可以搜尋封存檔案,以便透過網路下載封存內容。
標記:bazel_internal_configuration
如有設定,存放區快取會在快取成功時將檔案硬式編碼,而非複製檔案。以便節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 預設值:「0」
重試下載錯誤的次數上限。如果設為 0,系統就會停用重試功能。
標記:experimental
--experimental_scale_timeouts=<a double> 預設值:「1.0」
按照這項係數調整 Starlark 存放區規則中的所有逾時時間。如此一來,即使效能低於規則作者預期的機器,外部存放區也能在不變更原始碼的情況下正常運作。
標記:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 預設值:「8」
http 下載作業的次數上限。
標記:bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 預設值:「0s」
http 下載重試的逾時時間上限。如果值為 0,就不會定義逾時上限。
標記:bazel_internal_configuration
--http_timeout_scaling=<a double> 預設值:「1.0」
依指定係數調整所有與 http 下載相關的逾時時間
標記: bazel_internal_configuration
--repository_cache=<a path> 預設:查看說明
指定擷取外部存放區時取得的已下載值的快取位置。將空字串做為引數要求停用快取,否則會使用預設的「<output_user_root>/cache/repos/v1」
標記: bazel_internal_configuration
--[no]repository_disable_download 預設值:「false」
如果已設定,無法在存放區擷取期間使用 ctx.download{,_and_extract} 進行下載。請注意,網路存取權並未完全停用;ctx.execute 仍可以執行存取網際網路的任意執行檔。
標記:bazel_internal_configuration
控制建構執行作業的選項:
--gc_thrashing_threshold=<an integer in 0-100 range> 預設值:「100」
上方 GcThrashingDetector 會將記憶體壓力事件視為其配額限制 (--gc_thrashing_limits),而佔用空間佔用的空間百分比 (0-100)。如果設為 100,系統會停用 GcThrashingDetector。
標記:host_machine_resource_optimizations
--[no]keep_going [-k] 預設值:「false」
發生錯誤後請盡可能繼續操作。雖然失敗的目標及依附的目標無法分析,但您可以採用這些目標的其他必要條件。
標記:eagerness_to_exit
--loading_phase_threads=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5"> 預設值:「auto」
用於載入/分析階段的平行執行緒數量。可使用整數或關鍵字 (「auto」、「HOST_CPUS」、「HOST_RAM」),視需要後面加上運算 ([-|*]<float>),例如「auto」、「HOST_CPUS*.5」。「auto」會根據主機資源設定合理的預設值。不得小於 1。
標記: bazel_internal_configuration
這個選項會影響 Starlark 語言的語意,或是 BUILD 檔案、.bzl 檔案或 WORKSPACE 檔案可用的建構 API。
--[no]incompatible_config_setting_private_default_visibility 預設值:「false」
如果 incompatible_enforce_config_setting_visibility=false,即為不相容性。此外,如果這個旗標為 false,任何沒有明確瀏覽權限屬性的 config_setting 都是 //visibility:public。如果這個標記為 true,config_setting 的瀏覽權限邏輯與其他規則相同。請參閱 https://github.com/bazelbuild/bazel/issues/12933。
標記:loading_and_analysisincompatible_change
--[no]incompatible_depset_for_java_output_source_jars預設值:「true」
免人工管理。
標記: loading_and_analysisincompatible_change
--[no]incompatible_enforce_config_setting_visibility預設值:「true」
如果設為 true,請強制執行 config_setting 瀏覽權限限制。如果設為 False,每個目標都會顯示所有 config_setting。請參閱 https://github.com/bazelbuild/bazel/issues/12932。
標記:loading_and_analysisincompatible_change
--[no]incompatible_new_actions_api預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]incompatible_visibility_private_attributes_at_definition預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]separate_aspect_deps預設值:「true」
免人工管理
標記: no_op
查詢輸出和語意相關選項:
--aspect_deps=<off, conservative or precise> 預設值:「conservative」
當輸出格式是 {xml,proto,record} 時,如何解析切面依附元件。「off」代表未解析任何切面依附元件;「保守」(預設) 代表新增所有宣告的切面依附元件,不論是否提供直接依附元件的規則類別;「精確」代表僅新增可能根據直接依附元件的規則類別啟用的切面。請注意,由於精確模式需要載入其他套件來評估單一目標,因此速度比其他模式慢。另請注意,就算使用精確模式也無法完全精準,是否要在分析階段中決定是否運算,該階段不會在「bazel 查詢」期間執行。
標記:build_file_semantics
--[no]consistent_labels 預設值:「false」
啟用這項設定後,每個查詢指令都會發送標籤,就像由 Starlark <code>str</code> 函式套用至 <code>Label</code> 執行個體一樣。這項工具相當適合用於需要比對不同查詢指令和/或規則所發出標籤的輸出內容。如果不啟用,輸出格式設定器可改為發出明顯的存放區名稱 (相對於主要存放區),讓輸出內容更容易讀取。
標記:terminal_output
--[no]experimental_explicit_aspects 預設值:「false」

標記:terminal_output
--[no]experimental_graphless_query 預設值:「auto」
如果為 true,則使用查詢實作項目,不會複製圖表。新的實作項目僅支援 --order_output=no,以及部分輸出格式設定器。
標記:build_file_semanticseagerness_to_exit
--graph:conditional_edges_limit=<an integer> 預設值:「4」
可顯示的條件標籤數量上限。-1 表示不會截斷,0 則代表沒有註解。這個選項僅適用於 --output=graph。
標記:terminal_output
--[no]graph:factored預設值:「true」
如果為 true,圖表會發出「因子」,也就是同質相等的節點會合併在一起,其標籤會串連。這個選項僅適用於 --output=graph。
標記:terminal_output
--graph:node_limit=<an integer> 預設值:「512」
輸出中圖形節點的標籤字串長度上限。較長的標籤會遭到截斷;-1 表示不會截斷。這個選項僅適用於 --output=graph。
標記:terminal_output
--[no]implicit_deps預設值:「true」
啟用後,隱含依附元件會納入查詢作業的依附元件圖中。隱含依附元件是指 BUILD 檔案中並未明確指定,但是由 bazel 新增的依附元件。針對 cquery,這個選項會控制篩選已解析的工具鍊。
標記:build_file_semantics
--[no]include_aspects預設值:「true」

標記:terminal_output
--[no]incompatible_lexicographical_output預設值:「true」
如果設定這個選項,系統會按照字母順序排序 --order_output=auto 輸出內容。
標記:terminal_outputincompatible_change
--[no]incompatible_package_group_includes_double_slash預設值:「true」
啟用後,在輸出 package_group 的「packages」屬性時,系統不會省略開頭的「//」。
標記:terminal_outputincompatible_change
--[no]infer_universe_scope 預設值:「false」
如果未設定 --universe_scope,將將 --universe_scope 的值推斷為查詢運算式中不重複目標模式的清單。請注意,使用單向範圍函式 (例如`allrdeps`) 的查詢運算式所推測的 --universe_scope 值可能不太符合您的需求,因此建議您在瞭解自己執行的操作時,才使用這個選項。如需詳細資訊和範例,請參閱 https://bazel.build/reference/query#sky-query。如果已設定 --universe_scope,系統就會忽略此選項的值。注意:這個選項僅適用於「query」(查詢),而非「cquery」。
標記: loading_and_analysis
--[no]line_terminator_null 預設值:「false」
指出每個格式是否會以 \0 (而非換行) 終止。
標記:terminal_output
--[no]nodep_deps預設值:「true」
如果啟用這項政策,從「nodep」屬性降級後,查詢作業的依附元件圖表就會包含該屬性。常見的「nodep」屬性為「visibility」。執行並剖析「資訊建構語言」的輸出內容,瞭解建構語言中的所有「nodep」屬性。
標記:build_file_semantics
--noorder_results
以依附元件順序 (預設) 或無順序輸出結果。未排序的輸出速度較快,但只有在 --output 不是 minrank、maxrank 或圖形時才支援。
展開至:
  --order_output=no

標記: terminal_output
--null
指出每個格式是否會以 \0 (而非換行) 終止。
展開至:
  --line_terminator_null=true

標記: terminal_output
--order_output=<no, deps, auto or full> 預設值:「auto」
輸出未排序 (否)、依依附元件排序 (deps) 或完整排序 (完整) 的結果。預設值為「auto」,代表結果會依輸出格式設定器 (由依附元件、Minrank、maxrank 和圖形完全排序,依依附元件排序或完整排序) 輸出結果。輸出完全排序時,節點會以完全確定 (總計) 的順序列印。首先,所有節點都按照字母順序排列。接著,清單中的每個節點都會做為在排序深度優先搜尋的起點使用,此時,系統會按照後續節點的字母順序,掃過前往未造訪節點的出站邊緣。最後,節點會按照造訪順序列印。
標記:terminal_output
--order_results
以依附元件順序 (預設) 或無順序輸出結果。未排序的輸出速度較快,但只有在 --output 不是 minrank、maxrank 或圖形時才支援。
展開至:
  --order_output=auto

標記: terminal_output
--output=<a string>預設值:「label」
查詢結果的輸出格式。允許的查詢值如下:build、Graph、streamed_jsonproto、label、label_Kind、location、maxrank、minrank、Package、proto、streamed_proto、xml。
標記:terminal_output
--[no]proto:default_values預設值:「true」
如果為 true,系統會納入 BUILD 檔案中未明確指定值的屬性,否則會省略。這個選項適用於 --output=proto
標記:terminal_output
--[no]proto:definition_stack 預設值:「false」
填入 definition_stack proto 欄位,該欄位會在定義規則類別時,記錄每個規則例項的 Starlark 呼叫堆疊。
標記:terminal_output
--[no]proto:flatten_selects預設值:「true」
啟用後,系統會整併 select() 建立的可設定屬性。對於清單類型而言,扁平化的表示式呈現為一份清單,其中僅包含選取地圖的每個值一次。純量類型會扁平化為空值。
標記:build_file_semantics
--[no]proto:include_attribute_source_aspects 預設值:「false」
為每個屬性的 source_aspect_name proto 欄位填入屬性來源切面的資訊 (如果沒有屬性,則為空白字串)。
標記:terminal_output
--[no]proto:include_synthetic_attribute_hash 預設值:「false」
是否要計算及填入 $internal_attr_hash 屬性。
標記:terminal_output
--[no]proto:instantiation_stack 預設值:「false」
填入每項規則的例項化呼叫堆疊。請注意,如要這麼做,堆疊必須具有
標記:terminal_output
--[no]proto:locations預設值:「true」
是否要在 proto 輸出內容中輸出位置資訊。
標記:terminal_output
--proto:output_rule_attrs=<comma-separated list of options> 預設值:「全部」
要包含在輸出內容中的屬性清單 (以半形逗號分隔)。預設為所有屬性。設為空白字串不輸出任何屬性。這個選項適用於 --output=proto。
標記:terminal_output
--[no]proto:rule_inputs_and_outputs預設值:「true」
指定是否填入「Rule_input」和「Rule_output」欄位。
標記:terminal_output
--query_file=<a string> 預設值:「」
如有設定,查詢會從這裡命名的檔案讀取查詢,而不是透過指令列讀取。在這裡指定檔案以及指令列查詢會發生錯誤。
標記:changes_inputs
--[no]relative_locations 預設值:「false」
如果為 True,XML 和 proto 輸出內容中的 BUILD 檔案位置將會相對。根據預設,位置輸出是絕對路徑,而且在所有機器中不一致。您可以將這個選項設為 True,即可在不同機器中取得一致的結果。
標記:terminal_output
--[no]strict_test_suite 預設值:「false」
設為 True 時,如果 test() 運算式發現包含非測試目標的 test_suite 會傳回錯誤,
標記:build_file_semanticseagerness_to_exit
--[no]tool_deps預設值:「true」
查詢:如果停用,則「exec configuration」的依附元件不會包含在查詢作業的依附元件圖表中。「exec configuration」的依附元件邊緣 (例如從任何「proto_library」規則的依附元件到通訊協定編譯器的邊緣),通常指向在建構期間執行的工具,而非同一個「目標」程式的一部分。Cquery:如果停用,系統會從頂層目標中發現這個設定目標的頂層目標,篩選出所有已設定的目標。換句話說,如果頂層目標位於目標設定中,系統只會傳回同樣在目標設定中已設定的目標。如果頂層目標位於執行設定中,系統只會傳回執行設定的目標。這個選項「不會」排除已解析的工具鍊。
標記:build_file_semantics
--universe_scope=<comma-separated list of options> 預設值:「」
以半形逗號分隔的目標模式組合 (加法和減法)。查詢可於由指定目標的遞移性通過所定義的宇宙中執行。這個選項可用於查詢和 cquery 指令。對 cquery 來說,這個選項的輸入內容就是所有答案的基礎,因此這個選項可能會影響設定和轉換。如未指定此選項,系統會假設頂層目標為查詢運算式剖析的目標。注意事項:在 cquery 中,如未指定這個選項,如果無法以頂層選項建構從查詢運算式剖析的目標,建構可能會中斷。
標記:loading_and_analysis
--[no]xml:default_values 預設值:「false」
如果為 true,系統會列印 BUILD 檔案中未明確指定值的規則屬性,否則會省略。
標記:terminal_output
--[no]xml:line_numbers預設值:「true」
如果為 true,XML 輸出內容會包含行號。停用這個選項可讓差異比較更容易閱讀。這個選項僅適用於 --output=xml。
標記:terminal_output
與 Bzlmod 輸出內容和語意相關的選項:
會累積 --allow_yanked_versions=<a string> 個用途
指定模組版本時,請以「<module1>@<version1>,<module2>@<version2>」格式指定在已解析的依附元件圖中,即使這些版本來源不是來自 NonRegistryOverride,仍可在存放區中宣告這些版本。否則,分割版本會導致解析失敗。您也可以使用「BZLMOD_ALLOW_YANKED_VERSIONS」環境變數定義允許的分割版本。您可使用關鍵字「全部」停用這項檢查 (不建議使用)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off> 預設值:「錯誤」
檢查 Bazel 模組的 Bazel 版本相容性。有效值為「error」:可將其提報至解決失敗;設為「off」可停用檢查,「warning」則能在偵測到不相符時顯示警告。
標記:loading_and_analysis
--check_direct_dependencies=<off, warning or error> 預設值:「warning」
檢查根模組中宣告的直接「bazel_dep」依附元件,是否與已解析依附元件圖表中的版本相同。有效值為「off」可停用檢查,「warning」會在偵測到不相符時顯示警告,或是「error」將問題提報至解決失敗。
標記:loading_and_analysis
--[no]ignore_dev_dependency 預設值:「false」
如果為 true,Bazel 會忽略根模組 MODULE.bazel 中宣告為「dev_dependency」的「bazel_dep」和「use_extension」。請注意,如果根模組不是根模組,無論此標記的值為何,系統一律會忽略這些開發依附元件。
標記:loading_and_analysis
--lockfile_mode=<off, update or error> (預設):「更新」
指定使用 Lockfile 的方式,以及是否要使用。有效值為「update」可使用 Lockfile,並在出現變更時進行更新;「error」表示使用 Lockfile,但並非最新版本,會擲回錯誤;如果未更新,則為「off」。
標記:loading_and_analysis
會累積 --override_module=<an equals-separated mapping of module name to path> 個用途
以 <module name>=<path> 的格式覆寫本機路徑的模組。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則該路徑會與目前的工作目錄相對。如果指定路徑的開頭是「%workspace%」,代表與工作區根目錄 (也就是「bazel info workspace」的輸出內容) 有關。
會累積 --registry=<a string> 個用途
指定要用來尋找 Bazel 模組依附元件的登錄檔。順序很重要:系統會先在較早的登錄檔中查詢模組,而且只有在之後的登錄檔中缺少模組時,才會改回使用之後的登錄檔。
標記:changes_inputs
--vendor_dir=<a path> 預設:查看說明
指定應在廠商模式下保存外部存放區的目錄,不論是用於擷取或建立使用這些存放區。路徑可以指定為絕對路徑或相對於工作區目錄的路徑。
標記:loading_and_analysis
會觸發建構時間最佳化的選項:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 預設值:「1s:2,20s:3,1m:5」
限制如果已達到,GcThrashingDetector 會透過 OOM 讓 Bazel 當機,每項限制都以 <period>:<count> 指定,週期為時間長度,計數代表正整數。如果 <period> 內連續 <count> 個 GC 數量超過 --gc_thrashing_threshold 百分比,系統就會觸發 OOM。如要指定多個限制,請以半形逗號分隔。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生完整 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示完整 GC 事件永遠不會觸發下降。如果達到上限,在完整 GC 事件發生且超過保留堆積百分比門檻時,系統不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生輕微 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示次要 GC 事件永遠不會觸發下降。一旦達到限制,發生輕微 GC 事件且超過保留堆積百分比門檻時,系統就不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 預設值:「85」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量至少達到這個門檻,就會捨棄不必要的暫時性 SkyFrame 狀態。調整這個做法,即可減少垃圾收集造成的實際時間影響,也就是以下情形:GC 輾轉現象,是:(i) 這個臨時狀態的記憶體用量造成,(ii) 比在需要時重新建構狀態的成本高昂。
標記: host_machine_resource_optimizations
影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock> 預設:查看說明
記錄指令期間的 Java 航班/機票記錄工具設定檔。支援的剖析事件類型之一 (CPU、牆、分配或鎖定) 必須以引數的形式指定。設定檔將寫入一個檔案,並以事件類型在輸出基本目錄下命名。這個旗標的語法和語意日後可能會變更,以支援其他設定檔類型或輸出格式,請自行承擔風險。
--[no]experimental_record_metrics_for_all_mnemonics 預設值:「false」
根據預設,動作類型數量限制為已執行次數最多的 20 種記憶。如果設定這個選項,系統將寫入所有助測器的統計資料。
--experimental_repository_resolved_file=<a string> 預設值:「」
如果非空白,請使用已執行的所有 Starlark 存放區規則解析資訊編寫 Starlark 值。
標記:affects_outputs
可為不屬於其他類別的 Bazel 指令指定或變更一般輸入的選項:
--experimental_resolved_file_instead_of_workspace=<a string> 預設值:「」
如果讀取指定的已解析檔案 (而非 WORKSPACE 檔案) 為非空白檔案
標記: changes_inputs
遠端快取和執行選項:
--experimental_downloader_config=<a string> 預設:查看說明
指定要用於設定遠端下載程式的檔案。這個檔案由各行組成,每個指令都是以指令 (「allow」、「block」或「rewrite」) 開頭,後面接有主機名稱 (適用於「allow」和「block」) 或兩個模式,一個要比對做為替代網址,另一個則做為替代網址,並以「$1」開頭的反向參照。即使多個「重新編寫」指令,也可視為相同網址的「rewrite」指令。
--experimental_worker_for_repo_fetching=<off, platform, virtual or auto> 預設值:「auto」
用於存放區擷取的執行緒模式。如果設為「off」,系統就不會使用任何工作站執行緒,且會重新啟動存放區擷取作業。如果設為「平台」,則會使用平台執行緒 (即 OS 執行緒) 或虛擬執行緒 (如設為「virtual」)。如果設為「auto」,系統就會在可用的情況下使用虛擬執行緒 (即在 JDK 21 以上版本中執行),否則就不會使用工作站執行緒。
其他未分類的選項。
會累積 --deleted_packages=<comma-separated list of package names> 個用途
逗號分隔的套件名稱清單,即使這些套件出現在套件路徑中,建構系統也不會將其視為不存在。 刪除現有套件「x」的子套件「x/y」時,請使用這個選項。舉例來說,在用戶端刪除 x/y/BUILD 後,如果建構系統發現標籤「//x:y/z」仍由另一個 package_path 項目提供,可能會抱怨。指定 --deleted_packages x/y 以避免這個問題。
--[no]fetch預設值:「true」
允許指令擷取外部依附元件。如果設為 False,這個指令會使用依附元件的任何快取版本;如果不存在,該指令就會導致失敗。
會累積 --override_repository=<an equals-separated mapping of repository name to path> 個用途
用 <repository name>=<path> 的格式覆寫本機路徑的存放區。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則以相對路徑為準。如果指定路徑的開頭是「%workspace%」,代表與工作區根目錄 (也就是「bazel info workspace」的輸出內容) 有關。
--package_path=<colon-separated list of options>預設值:「%workspace%」
尋找套件的位置清單 (以半形冒號分隔)。開頭為「%workspace%」的元素與所屬工作區相對。如果省略或留空,則預設值為「bazel info default-package-path」的輸出內容。
--[no]show_loading_progress預設值:「true」
啟用後,Bazel 就會顯示「Loading package:」訊息。

執行選項

繼承 build 的所有選項。

這些選項會顯示在指令之前,並由用戶端剖析:
會累積 --distdir=<a path> 個用途
還有許多地方可以搜尋封存檔案,以便透過網路下載封存內容。
標記:bazel_internal_configuration
如有設定,存放區快取會在快取成功時將檔案硬式編碼,而非複製檔案。以便節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 預設值:「0」
重試下載錯誤的次數上限。如果設為 0,系統就會停用重試功能。
標記:experimental
--experimental_scale_timeouts=<a double> 預設值:「1.0」
按照這項係數調整 Starlark 存放區規則中的所有逾時時間。如此一來,即使效能低於規則作者預期的機器,外部存放區也能在不變更原始碼的情況下正常運作。
標記:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 預設值:「8」
http 下載作業的次數上限。
標記:bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 預設值:「0s」
http 下載重試的逾時時間上限。如果值為 0,就不會定義逾時上限。
標記:bazel_internal_configuration
--http_timeout_scaling=<a double> 預設值:「1.0」
依指定係數調整所有與 http 下載相關的逾時時間
標記: bazel_internal_configuration
--[no]portable_paths 預設值:「false」
如果為 true,則會納入 ExecRequest 中要取代的路徑,讓產生的路徑具備可攜性。
標記:affects_outputs
--repository_cache=<a path> 預設:查看說明
指定擷取外部存放區時取得的已下載值的快取位置。將空字串做為引數要求停用快取,否則會使用預設的「<output_user_root>/cache/repos/v1」
標記: bazel_internal_configuration
--[no]repository_disable_download 預設值:「false」
如果已設定,無法在存放區擷取期間使用 ctx.download{,_and_extract} 進行下載。請注意,網路存取權並未完全停用;ctx.execute 仍可以執行存取網際網路的任意執行檔。
標記:bazel_internal_configuration
--[no]run預設值:「true」
如果為 false,請略過為已建構目標建構的指令列。請注意,所有 --script_path 建構作業都會忽略這個標記。
標記:affects_outputs
控制建構執行作業的選項:
--gc_thrashing_threshold=<an integer in 0-100 range> 預設值:「100」
上方 GcThrashingDetector 會將記憶體壓力事件視為其配額限制 (--gc_thrashing_limits),而佔用空間佔用的空間百分比 (0-100)。如果設為 100,系統會停用 GcThrashingDetector。
標記: host_machine_resource_optimizations
允許使用者設定預定的輸出內容,且影響其值 (而非存在) 的選項:
--script_path=<a path> 預設:查看說明
如果已設定,請將殼層指令碼寫入指定檔案,用來叫用目標。如果設定此選項,目標就不會從 Bazel 執行。請使用「bazel run --script_path=foo //foo && ./foo'」來叫用目標 '//foo',這與「bazel run //foo」不同,因為 bazel run //foo' 不同,這和 bazel run //foo' 不同,因為 bazel run - 執行檔案已連結到終端機的 stdin。
標記:affects_outputsexecution
這個選項會影響 Starlark 語言的語意,或是 BUILD 檔案、.bzl 檔案或 WORKSPACE 檔案可用的建構 API。
--[no]incompatible_depset_for_java_output_source_jars預設值:「true」
免人工管理。
標記: loading_and_analysisincompatible_change
--[no]incompatible_new_actions_api預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]incompatible_visibility_private_attributes_at_definition預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]separate_aspect_deps預設值:「true」
免人工管理
標記: no_op
與 Bzlmod 輸出內容和語意相關的選項:
會累積 --allow_yanked_versions=<a string> 個用途
指定模組版本時,請以「<module1>@<version1>,<module2>@<version2>」格式指定在已解析的依附元件圖中,即使這些版本來源不是來自 NonRegistryOverride,仍可在存放區中宣告這些版本。否則,分割版本會導致解析失敗。您也可以使用「BZLMOD_ALLOW_YANKED_VERSIONS」環境變數定義允許的分割版本。您可使用關鍵字「全部」停用這項檢查 (不建議使用)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off> 預設值:「錯誤」
檢查 Bazel 模組的 Bazel 版本相容性。有效值為「error」:可將其提報至解決失敗;設為「off」可停用檢查,「warning」則能在偵測到不相符時顯示警告。
標記:loading_and_analysis
--check_direct_dependencies=<off, warning or error> 預設值:「warning」
檢查根模組中宣告的直接「bazel_dep」依附元件,是否與已解析依附元件圖表中的版本相同。有效值為「off」可停用檢查,「warning」會在偵測到不相符時顯示警告,或是「error」將問題提報至解決失敗。
標記:loading_and_analysis
--[no]ignore_dev_dependency 預設值:「false」
如果為 true,Bazel 會忽略根模組 MODULE.bazel 中宣告為「dev_dependency」的「bazel_dep」和「use_extension」。請注意,如果根模組不是根模組,無論此標記的值為何,系統一律會忽略這些開發依附元件。
標記:loading_and_analysis
--lockfile_mode=<off, update or error> (預設):「更新」
指定使用 Lockfile 的方式,以及是否要使用。有效值為「update」可使用 Lockfile,並在出現變更時進行更新;「error」表示使用 Lockfile,但並非最新版本,會擲回錯誤;如果未更新,則為「off」。
標記:loading_and_analysis
會累積 --override_module=<an equals-separated mapping of module name to path> 個用途
以 <module name>=<path> 的格式覆寫本機路徑的模組。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則該路徑會與目前的工作目錄相對。如果指定路徑的開頭是「%workspace%」,代表與工作區根目錄 (也就是「bazel info workspace」的輸出內容) 有關。
會累積 --registry=<a string> 個用途
指定要用來尋找 Bazel 模組依附元件的登錄檔。順序很重要:系統會先在較早的登錄檔中查詢模組,而且只有在之後的登錄檔中缺少模組時,才會改回使用之後的登錄檔。
標記:changes_inputs
--vendor_dir=<a path> 預設:查看說明
指定應在廠商模式下保存外部存放區的目錄,不論是用於擷取或建立使用這些存放區。路徑可以指定為絕對路徑或相對於工作區目錄的路徑。
標記:loading_and_analysis
會觸發建構時間最佳化的選項:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 預設值:「1s:2,20s:3,1m:5」
限制如果已達到,GcThrashingDetector 會透過 OOM 讓 Bazel 當機,每項限制都以 <period>:<count> 指定,週期為時間長度,計數代表正整數。如果 <period> 內連續 <count> 個 GC 數量超過 --gc_thrashing_threshold 百分比,系統就會觸發 OOM。如要指定多個限制,請以半形逗號分隔。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生完整 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示完整 GC 事件永遠不會觸發下降。如果達到上限,在完整 GC 事件發生且超過保留堆積百分比門檻時,系統不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生輕微 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示次要 GC 事件永遠不會觸發下降。一旦達到限制,發生輕微 GC 事件且超過保留堆積百分比門檻時,系統就不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 預設值:「85」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量至少達到這個門檻,就會捨棄不必要的暫時性 SkyFrame 狀態。調整這個做法,即可減少垃圾收集造成的實際時間影響,也就是以下情形:GC 輾轉現象,是:(i) 這個臨時狀態的記憶體用量造成,(ii) 比在需要時重新建構狀態的成本高昂。
標記: host_machine_resource_optimizations
影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock> 預設:查看說明
記錄指令期間的 Java 航班/機票記錄工具設定檔。支援的剖析事件類型之一 (CPU、牆、分配或鎖定) 必須以引數的形式指定。設定檔將寫入一個檔案,並以事件類型在輸出基本目錄下命名。這個旗標的語法和語意日後可能會變更,以支援其他設定檔類型或輸出格式,請自行承擔風險。
--[no]experimental_record_metrics_for_all_mnemonics 預設值:「false」
根據預設,動作類型數量限制為已執行次數最多的 20 種記憶。如果設定這個選項,系統將寫入所有助測器的統計資料。
指定或變更不屬於其他類別 Bazel 指令的一般輸入選項:
--experimental_resolved_file_instead_of_workspace=<a string> 預設值:「」
如果讀取指定的已解析檔案 (而非 WORKSPACE 檔案) 為非空白檔案
標記: changes_inputs
遠端快取和執行選項:
--experimental_downloader_config=<a string> 預設:查看說明
指定要用於設定遠端下載程式的檔案。這個檔案由各行組成,每個指令都是以指令 (「allow」、「block」或「rewrite」) 開頭,後面接有主機名稱 (適用於「allow」和「block」) 或兩個模式,一個要比對做為替代網址,另一個則做為替代網址,並以「$1」開頭的反向參照。即使多個「重新編寫」指令,也可視為相同網址的「rewrite」指令。
--experimental_worker_for_repo_fetching=<off, platform, virtual or auto> 預設值:「auto」
用於存放區擷取的執行緒模式。如果設為「off」,系統就不會使用任何工作站執行緒,且會重新啟動存放區擷取作業。如果設為「平台」,則會使用平台執行緒 (即 OS 執行緒) 或虛擬執行緒 (如設為「virtual」)。如果設為「auto」,系統就會在可用的情況下使用虛擬執行緒 (即在 JDK 21 以上版本中執行),否則就不會使用工作站執行緒。
其他未分類的選項。
會累積 --override_repository=<an equals-separated mapping of repository name to path> 個用途
用 <repository name>=<path> 的格式覆寫本機路徑的存放區。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則以相對路徑為準。如果指定路徑的開頭是「%workspace%」,代表相對於工作區根目錄,也就是「bazel info workspace」的輸出內容

關機選項

這些選項會顯示在指令之前,並由用戶端剖析:
會累積 --distdir=<a path> 個用途
還有許多地方可以搜尋封存檔案,以便透過網路下載封存內容。
標記:bazel_internal_configuration
如有設定,存放區快取會在快取成功時將檔案硬式編碼,而非複製檔案。以便節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 預設值:「0」
重試下載錯誤的次數上限。如果設為 0,系統就會停用重試功能。
標記:experimental
--experimental_scale_timeouts=<a double> 預設值:「1.0」
按照這項係數調整 Starlark 存放區規則中的所有逾時時間。如此一來,即使效能低於規則作者預期的機器,外部存放區也能在不變更原始碼的情況下正常運作。
標記:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 預設值:「8」
http 下載作業的次數上限。
標記:bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 預設值:「0s」
http 下載重試的逾時時間上限。如果值為 0,就不會定義逾時上限。
標記:bazel_internal_configuration
--http_timeout_scaling=<a double> 預設值:「1.0」
依指定係數調整所有與 http 下載相關的逾時時間
標記: bazel_internal_configuration
--repository_cache=<a path> 預設:查看說明
指定擷取外部存放區時取得的已下載值的快取位置。將空字串做為引數要求停用快取,否則會使用預設的「<output_user_root>/cache/repos/v1」
標記: bazel_internal_configuration
--[no]repository_disable_download 預設值:「false」
如果已設定,無法在存放區擷取期間使用 ctx.download{,_and_extract} 進行下載。請注意,網路存取權並未完全停用;ctx.execute 仍可以執行存取網際網路的任意執行檔。
標記:bazel_internal_configuration
控制建構執行作業的選項:
--gc_thrashing_threshold=<an integer in 0-100 range> 預設值:「100」
上方 GcThrashingDetector 會將記憶體壓力事件視為其配額限制 (--gc_thrashing_limits),而佔用空間佔用的空間百分比 (0-100)。如果設為 100,系統會停用 GcThrashingDetector。
標記:host_machine_resource_optimizations
控制指令輸出內容的選項:
--iff_heap_size_greater_than=<an integer> 預設值:「0」
如果非零為零,則只有在 JVM 耗用的記憶體總量 (以 MB 為單位) 超過這個值時,關機才會關閉伺服器。
標記:loses_incremental_stateeagerness_to_exit
這個選項會影響 Starlark 語言的語意,或是 BUILD 檔案、.bzl 檔案或 WORKSPACE 檔案使用的建構 API。
--[no]incompatible_depset_for_java_output_source_jars預設值:「true」
免人工管理。
標記: loading_and_analysisincompatible_change
--[no]incompatible_new_actions_api預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]incompatible_visibility_private_attributes_at_definition預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]separate_aspect_deps預設值:「true」
免人工管理
標記: no_op
與 Bzlmod 輸出內容和語意相關的選項:
會累積 --allow_yanked_versions=<a string> 個用途
指定模組版本時,請以「<module1>@<version1>,<module2>@<version2>」格式指定在已解析的依附元件圖中,即使這些版本來源不是來自 NonRegistryOverride,仍可在存放區中宣告這些版本。否則,分割版本會導致解析失敗。您也可以使用「BZLMOD_ALLOW_YANKED_VERSIONS」環境變數定義允許的分割版本。您可使用關鍵字「全部」停用這項檢查 (不建議使用)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off> 預設值:「錯誤」
檢查 Bazel 模組的 Bazel 版本相容性。有效值為「error」:可將其提報至解決失敗;設為「off」可停用檢查,「warning」則能在偵測到不相符時顯示警告。
標記:loading_and_analysis
--check_direct_dependencies=<off, warning or error> 預設值:「warning」
檢查根模組中宣告的直接「bazel_dep」依附元件,是否與已解析依附元件圖表中的版本相同。有效值為「off」可停用檢查,「warning」會在偵測到不相符時顯示警告,或是「error」將問題提報至解決失敗。
標記:loading_and_analysis
--[no]ignore_dev_dependency 預設值:「false」
如果為 true,Bazel 會忽略根模組 MODULE.bazel 中宣告為「dev_dependency」的「bazel_dep」和「use_extension」。請注意,如果根模組不是根模組,無論此標記的值為何,系統一律會忽略這些開發依附元件。
標記:loading_and_analysis
--lockfile_mode=<off, update or error> (預設):「更新」
指定使用 Lockfile 的方式,以及是否要使用。有效值為「update」可使用 Lockfile,並在出現變更時進行更新;「error」表示使用 Lockfile,但並非最新版本,會擲回錯誤;如果未更新,則為「off」。
標記:loading_and_analysis
會累積 --override_module=<an equals-separated mapping of module name to path> 個用途
以 <module name>=<path> 的格式覆寫本機路徑的模組。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則該路徑會與目前的工作目錄相對。如果指定路徑的開頭是「%workspace%」,代表與工作區根目錄 (也就是「bazel info workspace」的輸出內容) 有關。
會累積 --registry=<a string> 個用途
指定要用來尋找 Bazel 模組依附元件的登錄檔。順序很重要:系統會先在較早的登錄檔中查詢模組,而且只有在之後的登錄檔中缺少模組時,才會改回使用之後的登錄檔。
標記:changes_inputs
--vendor_dir=<a path> 預設:查看說明
指定應在廠商模式下保存外部存放區的目錄,不論是用於擷取或建立使用這些存放區。路徑可以指定為絕對路徑或相對於工作區目錄的路徑。
標記:loading_and_analysis
會觸發建構時間最佳化的選項:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 預設值:「1s:2,20s:3,1m:5」
限制如果已達到,GcThrashingDetector 會透過 OOM 讓 Bazel 當機,每項限制都以 <period>:<count> 指定,週期為時間長度,計數代表正整數。如果 <period> 內連續 <count> 個 GC 數量超過 --gc_thrashing_threshold 百分比,系統就會觸發 OOM。如要指定多個限制,請以半形逗號分隔。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生完整 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示完整 GC 事件永遠不會觸發下降。如果達到上限,在完整 GC 事件發生且超過保留堆積百分比門檻時,系統不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生輕微 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示次要 GC 事件永遠不會觸發下降。一旦達到限制,發生輕微 GC 事件且超過保留堆積百分比門檻時,系統就不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 預設值:「85」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量至少達到這個門檻,就會捨棄不必要的暫時性 SkyFrame 狀態。調整這個做法,即可減少垃圾收集造成的實際時間影響,也就是以下情形:GC 輾轉現象,是:(i) 這個臨時狀態的記憶體用量造成,(ii) 比在需要時重新建構狀態的成本高昂。
標記: host_machine_resource_optimizations
影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock> 預設:查看說明
記錄指令期間的 Java 航班/機票記錄工具設定檔。支援的剖析事件類型之一 (CPU、牆、分配或鎖定) 必須以引數的形式指定。設定檔將寫入一個檔案,並以事件類型在輸出基本目錄下命名。這個旗標的語法和語意日後可能會變更,以支援其他設定檔類型或輸出格式,請自行承擔風險。
--[no]experimental_record_metrics_for_all_mnemonics 預設值:「false」
根據預設,動作類型數量限制為已執行次數最多的 20 種記憶。如果設定這個選項,系統將寫入所有助測器的統計資料。
指定或變更不屬於其他類別 Bazel 指令的一般輸入選項:
--experimental_resolved_file_instead_of_workspace=<a string> 預設值:「」
如果讀取指定的已解析檔案 (而非 WORKSPACE 檔案) 為非空白檔案
標記: changes_inputs
遠端快取和執行選項:
--experimental_downloader_config=<a string> 預設:查看說明
指定要用於設定遠端下載程式的檔案。這個檔案由各行組成,每個指令都是以指令 (「allow」、「block」或「rewrite」) 開頭,後面接有主機名稱 (適用於「allow」和「block」) 或兩個模式,一個要比對做為替代網址,另一個則做為替代網址,並以「$1」開頭的反向參照。即使多個「重新編寫」指令,也可視為相同網址的「rewrite」指令。
--experimental_worker_for_repo_fetching=<off, platform, virtual or auto> 預設值:「auto」
用於存放區擷取的執行緒模式。如果設為「off」,系統就不會使用任何工作站執行緒,且會重新啟動存放區擷取作業。如果設為「平台」,則會使用平台執行緒 (即 OS 執行緒) 或虛擬執行緒 (如設為「virtual」)。如果設為「auto」,系統就會在可用的情況下使用虛擬執行緒 (即在 JDK 21 以上版本中執行),否則就不會使用工作站執行緒。
其他未分類的選項。
會累積 --override_repository=<an equals-separated mapping of repository name to path> 個用途
用 <repository name>=<path> 的格式覆寫本機路徑的存放區。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則以相對路徑為準。如果指定路徑的開頭是「%workspace%」,代表相對於工作區根目錄,也就是「bazel info workspace」的輸出內容

同步處理選項

這些選項會顯示在指令之前,並由用戶端剖析:
會累積 --distdir=<a path> 個用途
還有許多地方可以搜尋封存檔案,以便透過網路下載封存內容。
標記:bazel_internal_configuration
如有設定,存放區快取會在快取成功時將檔案硬式編碼,而非複製檔案。以便節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 預設值:「0」
重試下載錯誤的次數上限。如果設為 0,系統就會停用重試功能。
標記:experimental
--experimental_scale_timeouts=<a double> 預設值:「1.0」
按照這項係數調整 Starlark 存放區規則中的所有逾時時間。如此一來,即使效能低於規則作者預期的機器,外部存放區也能在不變更原始碼的情況下正常運作。
標記:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 預設值:「8」
http 下載作業的次數上限。
標記:bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 預設值:「0s」
http 下載重試的逾時時間上限。如果值為 0,就不會定義逾時上限。
標記:bazel_internal_configuration
--http_timeout_scaling=<a double> 預設值:「1.0」
依指定係數調整所有與 http 下載相關的逾時時間
標記: bazel_internal_configuration
--repository_cache=<a path> 預設:查看說明
指定擷取外部存放區時取得的已下載值的快取位置。將空字串做為引數要求停用快取,否則會使用預設的「<output_user_root>/cache/repos/v1」
標記: bazel_internal_configuration
--[no]repository_disable_download 預設值:「false」
如果已設定,無法在存放區擷取期間使用 ctx.download{,_and_extract} 進行下載。請注意,網路存取權並未完全停用;ctx.execute 仍可以執行存取網際網路的任意執行檔。
標記:bazel_internal_configuration
控制建構執行作業的選項:
--[no]configure 預設值:「False」
只同步處理基於系統設定用途標示為「設定」的存放區。
標記:changes_inputs
--gc_thrashing_threshold=<an integer in 0-100 range> 預設值:「100」
上方 GcThrashingDetector 會將記憶體壓力事件視為其配額限制 (--gc_thrashing_limits),而佔用空間佔用的空間百分比 (0-100)。如果設為 100,系統會停用 GcThrashingDetector。
標記:host_machine_resource_optimizations
--[no]keep_going [-k] 預設值:「false」
發生錯誤後請盡可能繼續操作。雖然失敗的目標及依附的目標無法分析,但您可以採用這些目標的其他必要條件。
標記:eagerness_to_exit
--loading_phase_threads=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5"> 預設值:「auto」
用於載入/分析階段的平行執行緒數量。可使用整數或關鍵字 (「auto」、「HOST_CPUS」、「HOST_RAM」),視需要後面加上運算 ([-|*]<float>),例如「auto」、「HOST_CPUS*.5」。「auto」會根據主機資源設定合理的預設值。不得小於 1。
標記:bazel_internal_configuration
會累積 --only=<a string> 個用途
如果您指定此選項,則只同步處理以此選項指定的存放區。但仍視為全部 (或所有設定類似 -- 設定) 已過時。
標記: changes_inputs
這個選項會影響 Starlark 語言的語意,或是 BUILD 檔案、.bzl 檔案或 WORKSPACE 檔案可用的建構 API。
--[no]incompatible_config_setting_private_default_visibility 預設值:「false」
如果 incompatible_enforce_config_setting_visibility=false,即為不相容性。此外,如果這個旗標為 false,任何沒有明確瀏覽權限屬性的 config_setting 都是 //visibility:public。如果這個標記為 true,config_setting 的瀏覽權限邏輯與其他規則相同。請參閱 https://github.com/bazelbuild/bazel/issues/12933。
標記:loading_and_analysisincompatible_change
--[no]incompatible_depset_for_java_output_source_jars預設值:「true」
免人工管理。
標記: loading_and_analysisincompatible_change
--[no]incompatible_enforce_config_setting_visibility預設值:「true」
如果設為 true,請強制執行 config_setting 瀏覽權限限制。如果設為 False,每個目標都會顯示所有 config_setting。請參閱 https://github.com/bazelbuild/bazel/issues/12932。
標記:loading_and_analysisincompatible_change
--[no]incompatible_new_actions_api預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]incompatible_visibility_private_attributes_at_definition預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]separate_aspect_deps預設值:「true」
免人工管理
標記: no_op
與 Bzlmod 輸出內容和語意相關的選項:
會累積 --allow_yanked_versions=<a string> 個用途
指定模組版本時,請以「<module1>@<version1>,<module2>@<version2>」格式指定在已解析的依附元件圖中,即使這些版本來源不是來自 NonRegistryOverride,仍可在存放區中宣告這些版本。否則,分割版本會導致解析失敗。您也可以使用「BZLMOD_ALLOW_YANKED_VERSIONS」環境變數定義允許的分割版本。您可使用關鍵字「全部」停用這項檢查 (不建議使用)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off> 預設值:「錯誤」
檢查 Bazel 模組的 Bazel 版本相容性。有效值為「error」:可將其提報至解決失敗;設為「off」可停用檢查,「warning」則能在偵測到不相符時顯示警告。
標記:loading_and_analysis
--check_direct_dependencies=<off, warning or error> 預設值:「warning」
檢查根模組中宣告的直接「bazel_dep」依附元件,是否與已解析依附元件圖表中的版本相同。有效值為「off」可停用檢查,「warning」會在偵測到不相符時顯示警告,或是「error」將問題提報至解決失敗。
標記:loading_and_analysis
--[no]ignore_dev_dependency 預設值:「false」
如果為 true,Bazel 會忽略根模組 MODULE.bazel 中宣告為「dev_dependency」的「bazel_dep」和「use_extension」。請注意,如果根模組不是根模組,無論此標記的值為何,系統一律會忽略這些開發依附元件。
標記:loading_and_analysis
--lockfile_mode=<off, update or error> (預設):「更新」
指定使用 Lockfile 的方式,以及是否要使用。有效值為「update」可使用 Lockfile,並在出現變更時進行更新;「error」表示使用 Lockfile,但並非最新版本,會擲回錯誤;如果未更新,則為「off」。
標記:loading_and_analysis
會累積 --override_module=<an equals-separated mapping of module name to path> 個用途
以 <module name>=<path> 的格式覆寫本機路徑的模組。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則該路徑會與目前的工作目錄相對。如果指定路徑的開頭是「%workspace%」,代表與工作區根目錄 (也就是「bazel info workspace」的輸出內容) 有關。
會累積 --registry=<a string> 個用途
指定要用來尋找 Bazel 模組依附元件的登錄檔。順序很重要:系統會先在較早的登錄檔中查詢模組,而且只有在之後的登錄檔中缺少模組時,才會改回使用之後的登錄檔。
標記:changes_inputs
--vendor_dir=<a path> 預設:查看說明
指定應在廠商模式下保存外部存放區的目錄,不論是用於擷取或建立使用這些存放區。路徑可以指定為絕對路徑或相對於工作區目錄的路徑。
標記:loading_and_analysis
會觸發建構時間最佳化的選項:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 預設值:「1s:2,20s:3,1m:5」
限制如果已達到,GcThrashingDetector 會透過 OOM 讓 Bazel 當機,每項限制都以 <period>:<count> 指定,週期為時間長度,計數代表正整數。如果 <period> 內連續 <count> 個 GC 數量超過 --gc_thrashing_threshold 百分比,系統就會觸發 OOM。如要指定多個限制,請以半形逗號分隔。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生完整 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示完整 GC 事件永遠不會觸發下降。如果達到上限,在完整 GC 事件發生且超過保留堆積百分比門檻時,系統不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生輕微 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示次要 GC 事件永遠不會觸發下降。一旦達到限制,發生輕微 GC 事件且超過保留堆積百分比門檻時,系統就不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 預設值:「85」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量至少達到這個門檻,就會捨棄不必要的暫時性 SkyFrame 狀態。調整這個做法,即可減少垃圾收集造成的實際時間影響,也就是以下情形:GC 輾轉現象,是:(i) 這個臨時狀態的記憶體用量造成,(ii) 比在需要時重新建構狀態的成本高昂。
標記: host_machine_resource_optimizations
影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock> 預設:查看說明
記錄指令期間的 Java 航班/機票記錄工具設定檔。支援的剖析事件類型之一 (CPU、牆、分配或鎖定) 必須以引數的形式指定。設定檔將寫入一個檔案,並以事件類型在輸出基本目錄下命名。這個旗標的語法和語意日後可能會變更,以支援其他設定檔類型或輸出格式,請自行承擔風險。
--[no]experimental_record_metrics_for_all_mnemonics 預設值:「false」
根據預設,動作類型數量限制為已執行次數最多的 20 種記憶。如果設定這個選項,系統將寫入所有助測器的統計資料。
--experimental_repository_resolved_file=<a string> 預設值:「」
如果非空白,請使用已執行的所有 Starlark 存放區規則解析資訊編寫 Starlark 值。
標記:affects_outputs
可為不屬於其他類別的 Bazel 指令指定或變更一般輸入的選項:
--experimental_resolved_file_instead_of_workspace=<a string> 預設值:「」
如果讀取指定的已解析檔案 (而非 WORKSPACE 檔案) 為非空白檔案
標記: changes_inputs
遠端快取和執行選項:
--experimental_downloader_config=<a string> 預設:查看說明
指定要用於設定遠端下載程式的檔案。這個檔案由各行組成,每個指令都是以指令 (「allow」、「block」或「rewrite」) 開頭,後面接有主機名稱 (適用於「allow」和「block」) 或兩個模式,一個要比對做為替代網址,另一個則做為替代網址,並以「$1」開頭的反向參照。即使多個「重新編寫」指令,也可視為相同網址的「rewrite」指令。
--experimental_worker_for_repo_fetching=<off, platform, virtual or auto> 預設值:「auto」
用於存放區擷取的執行緒模式。如果設為「off」,系統就不會使用任何工作站執行緒,且會重新啟動存放區擷取作業。如果設為「平台」,則會使用平台執行緒 (即 OS 執行緒) 或虛擬執行緒 (如設為「virtual」)。如果設為「auto」,系統就會在可用的情況下使用虛擬執行緒 (即在 JDK 21 以上版本中執行),否則就不會使用工作站執行緒。
其他未分類的選項。
會累積 --deleted_packages=<comma-separated list of package names> 個用途
逗號分隔的套件名稱清單,即使這些套件出現在套件路徑中,建構系統也不會將其視為不存在。 刪除現有套件「x」的子套件「x/y」時,請使用這個選項。舉例來說,在用戶端刪除 x/y/BUILD 後,如果建構系統發現標籤「//x:y/z」仍由另一個 package_path 項目提供,可能會抱怨。指定 --deleted_packages x/y 以避免這個問題。
--[no]fetch預設值:「true」
允許指令擷取外部依附元件。如果設為 False,這個指令會使用依附元件的任何快取版本;如果不存在,該指令就會導致失敗。
會累積 --override_repository=<an equals-separated mapping of repository name to path> 個用途
用 <repository name>=<path> 的格式覆寫本機路徑的存放區。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則以相對路徑為準。如果指定路徑的開頭是「%workspace%」,代表與工作區根目錄 (也就是「bazel info workspace」的輸出內容) 有關。
--package_path=<colon-separated list of options>預設值:「%workspace%」
尋找套件的位置清單 (以半形冒號分隔)。開頭為「%workspace%」的元素與所屬工作區相對。如果省略或留空,則預設值為「bazel info default-package-path」的輸出內容。
--[no]show_loading_progress預設值:「true」
啟用後,Bazel 就會顯示「Loading package:」訊息。

測試選項

繼承 build 的所有選項。

這些選項會顯示在指令之前,並由用戶端剖析:
會累積 --distdir=<a path> 個用途
還有許多地方可以搜尋封存檔案,以便透過網路下載封存內容。
標記:bazel_internal_configuration
如有設定,存放區快取會在快取成功時將檔案硬式編碼,而非複製檔案。以便節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 預設值:「0」
重試下載錯誤的次數上限。如果設為 0,系統就會停用重試功能。
標記:experimental
--experimental_scale_timeouts=<a double> 預設值:「1.0」
按照這項係數調整 Starlark 存放區規則中的所有逾時時間。如此一來,即使效能低於規則作者預期的機器,外部存放區也能在不變更原始碼的情況下正常運作。
標記:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 預設值:「8」
http 下載作業的次數上限。
標記:bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 預設值:「0s」
http 下載重試的逾時時間上限。如果值為 0,就不會定義逾時上限。
標記:bazel_internal_configuration
--http_timeout_scaling=<a double> 預設值:「1.0」
依指定係數調整所有與 http 下載相關的逾時時間
標記: bazel_internal_configuration
--repository_cache=<a path> 預設:查看說明
指定擷取外部存放區時取得的已下載值的快取位置。將空字串做為引數要求停用快取,否則會使用預設的「<output_user_root>/cache/repos/v1」
標記: bazel_internal_configuration
--[no]repository_disable_download 預設值:「false」
如果已設定,無法在存放區擷取期間使用 ctx.download{,_and_extract} 進行下載。請注意,網路存取權並未完全停用;ctx.execute 仍可以執行存取網際網路的任意執行檔。
標記:bazel_internal_configuration
控制建構執行作業的選項:
--gc_thrashing_threshold=<an integer in 0-100 range> 預設值:「100」
上方 GcThrashingDetector 會將記憶體壓力事件視為其配額限制 (--gc_thrashing_limits),而佔用空間佔用的空間百分比 (0-100)。如果設為 100,系統會停用 GcThrashingDetector。
標記: host_machine_resource_optimizations
這個選項會影響 Starlark 語言的語意,或是 BUILD 檔案、.bzl 檔案或 WORKSPACE 檔案可用的建構 API。
--[no]incompatible_depset_for_java_output_source_jars預設值:「true」
免人工管理。
標記: loading_and_analysisincompatible_change
--[no]incompatible_new_actions_api預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]incompatible_visibility_private_attributes_at_definition預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]separate_aspect_deps預設值:「true」
免人工管理
標記: no_op
與 Bzlmod 輸出內容和語意相關的選項:
會累積 --allow_yanked_versions=<a string> 個用途
指定模組版本時,請以「<module1>@<version1>,<module2>@<version2>」格式指定在已解析的依附元件圖中,即使這些版本來源不是來自 NonRegistryOverride,仍可在存放區中宣告這些版本。否則,分割版本會導致解析失敗。您也可以使用「BZLMOD_ALLOW_YANKED_VERSIONS」環境變數定義允許的分割版本。您可使用關鍵字「全部」停用這項檢查 (不建議使用)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off> 預設值:「錯誤」
檢查 Bazel 模組的 Bazel 版本相容性。有效值為「error」:可將其提報至解決失敗;設為「off」可停用檢查,「warning」則能在偵測到不相符時顯示警告。
標記:loading_and_analysis
--check_direct_dependencies=<off, warning or error> 預設值:「warning」
檢查根模組中宣告的直接「bazel_dep」依附元件,是否與已解析依附元件圖表中的版本相同。有效值為「off」可停用檢查,「warning」會在偵測到不相符時顯示警告,或是「error」將問題提報至解決失敗。
標記:loading_and_analysis
--[no]ignore_dev_dependency 預設值:「false」
如果為 true,Bazel 會忽略根模組 MODULE.bazel 中宣告為「dev_dependency」的「bazel_dep」和「use_extension」。請注意,如果根模組不是根模組,無論此標記的值為何,系統一律會忽略這些開發依附元件。
標記:loading_and_analysis
--lockfile_mode=<off, update or error> (預設):「更新」
指定使用 Lockfile 的方式,以及是否要使用。有效值為「update」可使用 Lockfile,並在出現變更時進行更新;「error」表示使用 Lockfile,但並非最新版本,會擲回錯誤;如果未更新,則為「off」。
標記:loading_and_analysis
會累積 --override_module=<an equals-separated mapping of module name to path> 個用途
以 <module name>=<path> 的格式覆寫本機路徑的模組。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則該路徑會與目前的工作目錄相對。如果指定路徑的開頭是「%workspace%」,代表與工作區根目錄 (也就是「bazel info workspace」的輸出內容) 有關。
會累積 --registry=<a string> 個用途
指定要用來尋找 Bazel 模組依附元件的登錄檔。順序很重要:系統會先在較早的登錄檔中查詢模組,而且只有在之後的登錄檔中缺少模組時,才會改回使用之後的登錄檔。
標記:changes_inputs
--vendor_dir=<a path> 預設:查看說明
指定應在廠商模式下保存外部存放區的目錄,不論是用於擷取或建立使用這些存放區。路徑可以指定為絕對路徑或相對於工作區目錄的路徑。
標記:loading_and_analysis
會觸發建構時間最佳化的選項:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 預設值:「1s:2,20s:3,1m:5」
限制如果已達到,GcThrashingDetector 會透過 OOM 讓 Bazel 當機,每項限制都以 <period>:<count> 指定,週期為時間長度,計數代表正整數。如果 <period> 內連續 <count> 個 GC 數量超過 --gc_thrashing_threshold 百分比,系統就會觸發 OOM。如要指定多個限制,請以半形逗號分隔。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生完整 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示完整 GC 事件永遠不會觸發下降。如果達到上限,在完整 GC 事件發生且超過保留堆積百分比門檻時,系統不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生輕微 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示次要 GC 事件永遠不會觸發下降。一旦達到限制,發生輕微 GC 事件且超過保留堆積百分比門檻時,系統就不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 預設值:「85」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量至少達到這個門檻,就會捨棄不必要的暫時性 SkyFrame 狀態。調整這個做法,即可減少垃圾收集造成的實際時間影響,也就是以下情形:GC 輾轉現象,是:(i) 這個臨時狀態的記憶體用量造成,(ii) 比在需要時重新建構狀態的成本高昂。
標記: host_machine_resource_optimizations
影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock> 預設:查看說明
記錄指令期間的 Java 航班/機票記錄工具設定檔。支援的剖析事件類型之一 (CPU、牆、分配或鎖定) 必須以引數的形式指定。設定檔將寫入一個檔案,並以事件類型在輸出基本目錄下命名。這個旗標的語法和語意日後可能會變更,以支援其他設定檔類型或輸出格式,請自行承擔風險。
--[no]experimental_record_metrics_for_all_mnemonics 預設值:「false」
根據預設,動作類型數量限制為已執行次數最多的 20 種記憶。如果設定這個選項,系統將寫入所有助測器的統計資料。
--[no]print_relative_test_log_paths 預設值:「false」
如果為 true,將路徑輸出至測試記錄時,請使用使用「testlogs」便利符號連結的相對路徑。N.B. - 如果後續使用不同設定叫用「build」/「test」/etc ,可能會導致這個符號連結的目標變更,導致先前列印的路徑不再實用。
標記:affects_outputs
--[no]test_verbose_timeout_warnings 預設值:「false」
如果為 true,則當實際測試執行時間與測試定義的逾時時間 (無論暗示或明確) 不符時,會顯示額外警告。
標記:affects_outputs
--[no]verbose_test_summary預設值:「true」
如果為 true,請在測試摘要中列印其他資訊 (時間、失敗次數等)。
標記:affects_outputs
可為不屬於其他類別的 Bazel 指令指定或變更一般輸入的選項:
--experimental_resolved_file_instead_of_workspace=<a string> 預設值:「」
如果讀取指定的已解析檔案 (而非 WORKSPACE 檔案) 為非空白檔案
標記: changes_inputs
遠端快取和執行選項:
--experimental_downloader_config=<a string> 預設:查看說明
指定要用於設定遠端下載程式的檔案。這個檔案由各行組成,每個指令都是以指令 (「allow」、「block」或「rewrite」) 開頭,後面接有主機名稱 (適用於「allow」和「block」) 或兩個模式,一個要比對做為替代網址,另一個則做為替代網址,並以「$1」開頭的反向參照。即使多個「重新編寫」指令,也可視為相同網址的「rewrite」指令。
--experimental_worker_for_repo_fetching=<off, platform, virtual or auto> 預設值:「auto」
用於存放區擷取的執行緒模式。如果設為「off」,系統就不會使用任何工作站執行緒,且會重新啟動存放區擷取作業。如果設為「平台」,則會使用平台執行緒 (即 OS 執行緒) 或虛擬執行緒 (如設為「virtual」)。如果設為「auto」,系統就會在可用的情況下使用虛擬執行緒 (即在 JDK 21 以上版本中執行),否則就不會使用工作站執行緒。
其他未分類的選項。
會累積 --override_repository=<an equals-separated mapping of repository name to path> 個用途
用 <repository name>=<path> 的格式覆寫本機路徑的存放區。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則以相對路徑為準。如果指定路徑的開頭是「%workspace%」,代表相對於工作區根目錄,也就是「bazel info workspace」的輸出內容

供應商選項

這些選項會顯示在指令之前,並由用戶端剖析:
會累積 --distdir=<a path> 個用途
還有許多地方可以搜尋封存檔案,以便透過網路下載封存內容。
標記:bazel_internal_configuration
如有設定,存放區快取會在快取成功時將檔案硬式編碼,而非複製檔案。以便節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 預設值:「0」
重試下載錯誤的次數上限。如果設為 0,系統就會停用重試功能。
標記:experimental
--experimental_scale_timeouts=<a double> 預設值:「1.0」
按照這項係數調整 Starlark 存放區規則中的所有逾時時間。如此一來,即使效能低於規則作者預期的機器,外部存放區也能在不變更原始碼的情況下正常運作。
標記:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 預設值:「8」
http 下載作業的次數上限。
標記:bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 預設值:「0s」
http 下載重試的逾時時間上限。如果值為 0,就不會定義逾時上限。
標記:bazel_internal_configuration
--http_timeout_scaling=<a double> 預設值:「1.0」
依指定係數調整所有與 http 下載相關的逾時時間
標記: bazel_internal_configuration
--repository_cache=<a path> 預設:查看說明
指定擷取外部存放區時取得的已下載值的快取位置。將空字串做為引數要求停用快取,否則會使用預設的「<output_user_root>/cache/repos/v1」
標記: bazel_internal_configuration
--[no]repository_disable_download 預設值:「false」
如果已設定,無法在存放區擷取期間使用 ctx.download{,_and_extract} 進行下載。請注意,網路存取權並未完全停用;ctx.execute 仍可以執行存取網際網路的任意執行檔。
標記:bazel_internal_configuration
控制建構執行作業的選項:
--gc_thrashing_threshold=<an integer in 0-100 range> 預設值:「100」
上方 GcThrashingDetector 會將記憶體壓力事件視為其配額限制 (--gc_thrashing_limits),而佔用空間佔用的空間百分比 (0-100)。如果設為 100,系統會停用 GcThrashingDetector。
標記:host_machine_resource_optimizations
--[no]keep_going [-k] 預設值:「false」
發生錯誤後請盡可能繼續操作。雖然失敗的目標及依附的目標無法分析,但您可以採用這些目標的其他必要條件。
標記:eagerness_to_exit
--loading_phase_threads=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5"> 預設值:「auto」
用於載入/分析階段的平行執行緒數量。可使用整數或關鍵字 (「auto」、「HOST_CPUS」、「HOST_RAM」),視需要後面加上運算 ([-|*]<float>),例如「auto」、「HOST_CPUS*.5」。「auto」會根據主機資源設定合理的預設值。不得小於 1。
標記: bazel_internal_configuration
這個選項會影響 Starlark 語言的語意,或是 BUILD 檔案、.bzl 檔案或 WORKSPACE 檔案可用的建構 API。
--[no]incompatible_config_setting_private_default_visibility 預設值:「false」
如果 incompatible_enforce_config_setting_visibility=false,即為不相容性。此外,如果這個旗標為 false,任何沒有明確瀏覽權限屬性的 config_setting 都是 //visibility:public。如果這個標記為 true,config_setting 的瀏覽權限邏輯與其他規則相同。請參閱 https://github.com/bazelbuild/bazel/issues/12933。
標記:loading_and_analysisincompatible_change
--[no]incompatible_depset_for_java_output_source_jars預設值:「true」
免人工管理。
標記: loading_and_analysisincompatible_change
--[no]incompatible_enforce_config_setting_visibility預設值:「true」
如果設為 true,請強制執行 config_setting 瀏覽權限限制。如果設為 False,每個目標都會顯示所有 config_setting。請參閱 https://github.com/bazelbuild/bazel/issues/12932。
標記:loading_and_analysisincompatible_change
--[no]incompatible_new_actions_api預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]incompatible_visibility_private_attributes_at_definition預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]separate_aspect_deps預設值:「true」
免人工管理
標記: no_op
與 Bzlmod 輸出內容和語意相關的選項:
會累積 --allow_yanked_versions=<a string> 個用途
指定模組版本時,請以「<module1>@<version1>,<module2>@<version2>」格式指定在已解析的依附元件圖中,即使這些版本來源不是來自 NonRegistryOverride,仍可在存放區中宣告這些版本。否則,分割版本會導致解析失敗。您也可以使用「BZLMOD_ALLOW_YANKED_VERSIONS」環境變數定義允許的分割版本。您可使用關鍵字「全部」停用這項檢查 (不建議使用)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off> 預設值:「錯誤」
檢查 Bazel 模組的 Bazel 版本相容性。有效值為「error」:可將其提報至解決失敗;設為「off」可停用檢查,「warning」則能在偵測到不相符時顯示警告。
標記:loading_and_analysis
--check_direct_dependencies=<off, warning or error> 預設值:「warning」
檢查根模組中宣告的直接「bazel_dep」依附元件,是否與已解析依附元件圖表中的版本相同。有效值為「off」可停用檢查,「warning」會在偵測到不相符時顯示警告,或是「error」將問題提報至解決失敗。
標記:loading_and_analysis
--[no]ignore_dev_dependency 預設值:「false」
如果為 true,Bazel 會忽略根模組 MODULE.bazel 中宣告為「dev_dependency」的「bazel_dep」和「use_extension」。請注意,如果根模組不是根模組,無論此標記的值為何,系統一律會忽略這些開發依附元件。
標記:loading_and_analysis
--lockfile_mode=<off, update or error> (預設):「更新」
指定使用 Lockfile 的方式,以及是否要使用。有效值為「update」可使用 Lockfile,並在出現變更時進行更新;「error」表示使用 Lockfile,但並非最新版本,會擲回錯誤;如果未更新,則為「off」。
標記:loading_and_analysis
會累積 --override_module=<an equals-separated mapping of module name to path> 個用途
以 <module name>=<path> 的格式覆寫本機路徑的模組。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則該路徑會與目前的工作目錄相對。如果指定路徑的開頭是「%workspace%」,代表與工作區根目錄 (也就是「bazel info workspace」的輸出內容) 有關。
會累積 --registry=<a string> 個用途
指定要用來尋找 Bazel 模組依附元件的登錄檔。順序很重要:系統會先在較早的登錄檔中查詢模組,而且只有在之後的登錄檔中缺少模組時,才會改回使用之後的登錄檔。
標記:changes_inputs
會累積 --repo=<a string> 個用途
只有指定的存放區 (可以是「@apparent_repo_name」或「@@canonical_repo_name」)。這個選項可以多次設定
標記: changes_inputs
--vendor_dir=<a path> 預設:查看說明
指定應在廠商模式下保存外部存放區的目錄,不論是用於擷取或建立使用這些存放區。路徑可以指定為絕對路徑或相對於工作區目錄的路徑。
標記:loading_and_analysis
會觸發建構時間最佳化的選項:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 預設值:「1s:2,20s:3,1m:5」
限制如果已達到,GcThrashingDetector 會透過 OOM 讓 Bazel 當機,每項限制都以 <period>:<count> 指定,週期為時間長度,計數代表正整數。如果 <period> 內連續 <count> 個 GC 數量超過 --gc_thrashing_threshold 百分比,系統就會觸發 OOM。如要指定多個限制,請以半形逗號分隔。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生完整 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示完整 GC 事件永遠不會觸發下降。如果達到上限,在完整 GC 事件發生且超過保留堆積百分比門檻時,系統不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生輕微 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示次要 GC 事件永遠不會觸發下降。一旦達到限制,發生輕微 GC 事件且超過保留堆積百分比門檻時,系統就不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 預設值:「85」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量至少達到這個門檻,就會捨棄不必要的暫時性 SkyFrame 狀態。調整這個做法,即可減少垃圾收集造成的實際時間影響,也就是以下情形:GC 輾轉現象,是:(i) 這個臨時狀態的記憶體用量造成,(ii) 比在需要時重新建構狀態的成本高昂。
標記: host_machine_resource_optimizations
影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock> 預設:查看說明
記錄指令期間的 Java 航班/機票記錄工具設定檔。支援的剖析事件類型之一 (CPU、牆、分配或鎖定) 必須以引數的形式指定。設定檔將寫入一個檔案,並以事件類型在輸出基本目錄下命名。這個旗標的語法和語意日後可能會變更,以支援其他設定檔類型或輸出格式,請自行承擔風險。
--[no]experimental_record_metrics_for_all_mnemonics 預設值:「false」
根據預設,動作類型數量限制為已執行次數最多的 20 種記憶。如果設定這個選項,系統將寫入所有助測器的統計資料。
指定或變更不屬於其他類別 Bazel 指令的一般輸入選項:
--experimental_resolved_file_instead_of_workspace=<a string> 預設值:「」
如果讀取指定的已解析檔案 (而非 WORKSPACE 檔案) 為非空白檔案
標記: changes_inputs
遠端快取和執行選項:
--experimental_downloader_config=<a string> 預設:查看說明
指定要用於設定遠端下載程式的檔案。這個檔案由各行組成,每個指令都是以指令 (「allow」、「block」或「rewrite」) 開頭,後面接有主機名稱 (適用於「allow」和「block」) 或兩個模式,一個要比對做為替代網址,另一個則做為替代網址,並以「$1」開頭的反向參照。即使多個「重新編寫」指令,也可視為相同網址的「rewrite」指令。
--experimental_worker_for_repo_fetching=<off, platform, virtual or auto> 預設值:「auto」
用於存放區擷取的執行緒模式。如果設為「off」,系統就不會使用任何工作站執行緒,且會重新啟動存放區擷取作業。如果設為「平台」,則會使用平台執行緒 (即 OS 執行緒) 或虛擬執行緒 (如設為「virtual」)。如果設為「auto」,系統就會在可用的情況下使用虛擬執行緒 (即在 JDK 21 以上版本中執行),否則就不會使用工作站執行緒。
其他未分類的選項。
會累積 --deleted_packages=<comma-separated list of package names> 個用途
逗號分隔的套件名稱清單,即使這些套件出現在套件路徑中,建構系統也不會將其視為不存在。 刪除現有套件「x」的子套件「x/y」時,請使用這個選項。舉例來說,在用戶端刪除 x/y/BUILD 後,如果建構系統發現標籤「//x:y/z」仍由另一個 package_path 項目提供,可能會抱怨。指定 --deleted_packages x/y 以避免這個問題。
--[no]fetch預設值:「true」
允許指令擷取外部依附元件。如果設為 False,這個指令會使用依附元件的任何快取版本;如果不存在,該指令就會導致失敗。
會累積 --override_repository=<an equals-separated mapping of repository name to path> 個用途
用 <repository name>=<path> 的格式覆寫本機路徑的存放區。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則以相對路徑為準。如果指定路徑的開頭是「%workspace%」,代表與工作區根目錄 (也就是「bazel info workspace」的輸出內容) 有關。
--package_path=<colon-separated list of options>預設值:「%workspace%」
尋找套件的位置清單 (以半形冒號分隔)。開頭為「%workspace%」的元素與所屬工作區相對。如果省略或留空,則預設值為「bazel info default-package-path」的輸出內容。
--[no]show_loading_progress預設值:「true」
啟用後,Bazel 就會顯示「Loading package:」訊息。

版本選項

這些選項會顯示在指令之前,並由用戶端剖析:
會累積 --distdir=<a path> 個用途
還有許多地方可以搜尋封存檔案,以便透過網路下載封存內容。
標記:bazel_internal_configuration
如有設定,存放區快取會在快取成功時將檔案硬式編碼,而非複製檔案。以便節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 預設值:「0」
重試下載錯誤的次數上限。如果設為 0,系統就會停用重試功能。
標記:experimental
--experimental_scale_timeouts=<a double> 預設值:「1.0」
按照這項係數調整 Starlark 存放區規則中的所有逾時時間。如此一來,即使效能低於規則作者預期的機器,外部存放區也能在不變更原始碼的情況下正常運作。
標記:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 預設值:「8」
http 下載作業的次數上限。
標記:bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 預設值:「0s」
http 下載重試的逾時時間上限。如果值為 0,就不會定義逾時上限。
標記:bazel_internal_configuration
--http_timeout_scaling=<a double> 預設值:「1.0」
依指定係數調整所有與 http 下載相關的逾時時間
標記: bazel_internal_configuration
--repository_cache=<a path> 預設:查看說明
指定擷取外部存放區時取得的已下載值的快取位置。將空字串做為引數要求停用快取,否則會使用預設的「<output_user_root>/cache/repos/v1」
標記: bazel_internal_configuration
--[no]repository_disable_download 預設值:「false」
如果已設定,無法在存放區擷取期間使用 ctx.download{,_and_extract} 進行下載。請注意,網路存取權並未完全停用;ctx.execute 仍可以執行存取網際網路的任意執行檔。
標記:bazel_internal_configuration
控制建構執行作業的選項:
--gc_thrashing_threshold=<an integer in 0-100 range> 預設值:「100」
上方 GcThrashingDetector 會將記憶體壓力事件視為其配額限制 (--gc_thrashing_limits),而佔用空間佔用的空間百分比 (0-100)。如果設為 100,系統會停用 GcThrashingDetector。
標記: host_machine_resource_optimizations
允許使用者設定預定的輸出內容,且影響其值 (而非存在) 的選項:
--[no]gnu_format 預設值:「false」
如果已設定,請按照 GNU 標準中所述的慣例將版本寫入 stdout。
標記:affects_outputsexecution
這個選項會影響 Starlark 語言的語意,或是 BUILD 檔案、.bzl 檔案或 WORKSPACE 檔案可用的建構 API。
--[no]incompatible_depset_for_java_output_source_jars預設值:「true」
免人工管理。
標記: loading_and_analysisincompatible_change
--[no]incompatible_new_actions_api預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]incompatible_visibility_private_attributes_at_definition預設值:「true」
免人工管理
標記: no_opincompatible_change
--[no]separate_aspect_deps預設值:「true」
免人工管理
標記: no_op
與 Bzlmod 輸出內容和語意相關的選項:
會累積 --allow_yanked_versions=<a string> 個用途
指定模組版本時,請以「<module1>@<version1>,<module2>@<version2>」格式指定在已解析的依附元件圖中,即使這些版本來源不是來自 NonRegistryOverride,仍可在存放區中宣告這些版本。否則,分割版本會導致解析失敗。您也可以使用「BZLMOD_ALLOW_YANKED_VERSIONS」環境變數定義允許的分割版本。您可使用關鍵字「全部」停用這項檢查 (不建議使用)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off> 預設值:「錯誤」
檢查 Bazel 模組的 Bazel 版本相容性。有效值為「error」:可將其提報至解決失敗;設為「off」可停用檢查,「warning」則能在偵測到不相符時顯示警告。
標記:loading_and_analysis
--check_direct_dependencies=<off, warning or error> 預設值:「warning」
檢查根模組中宣告的直接「bazel_dep」依附元件,是否與已解析依附元件圖表中的版本相同。有效值為「off」可停用檢查,「warning」會在偵測到不相符時顯示警告,或是「error」將問題提報至解決失敗。
標記:loading_and_analysis
--[no]ignore_dev_dependency 預設值:「false」
如果為 true,Bazel 會忽略根模組 MODULE.bazel 中宣告為「dev_dependency」的「bazel_dep」和「use_extension」。請注意,如果根模組不是根模組,無論此標記的值為何,系統一律會忽略這些開發依附元件。
標記:loading_and_analysis
--lockfile_mode=<off, update or error> (預設):「更新」
指定使用 Lockfile 的方式,以及是否要使用。有效值為「update」可使用 Lockfile,並在出現變更時進行更新;「error」表示使用 Lockfile,但並非最新版本,會擲回錯誤;如果未更新,則為「off」。
標記:loading_and_analysis
會累積 --override_module=<an equals-separated mapping of module name to path> 個用途
以 <module name>=<path> 的格式覆寫本機路徑的模組。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則該路徑會與目前的工作目錄相對。如果指定路徑的開頭是「%workspace%」,代表與工作區根目錄 (也就是「bazel info workspace」的輸出內容) 有關。
會累積 --registry=<a string> 個用途
指定要用來尋找 Bazel 模組依附元件的登錄檔。順序很重要:系統會先在較早的登錄檔中查詢模組,而且只有在之後的登錄檔中缺少模組時,才會改回使用之後的登錄檔。
標記:changes_inputs
--vendor_dir=<a path> 預設:查看說明
指定應在廠商模式下保存外部存放區的目錄,不論是用於擷取或建立使用這些存放區。路徑可以指定為絕對路徑或相對於工作區目錄的路徑。
標記:loading_and_analysis
會觸發建構時間最佳化的選項:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 預設值:「1s:2,20s:3,1m:5」
限制如果已達到,GcThrashingDetector 會透過 OOM 讓 Bazel 當機,每項限制都以 <period>:<count> 指定,週期為時間長度,計數代表正整數。如果 <period> 內連續 <count> 個 GC 數量超過 --gc_thrashing_threshold 百分比,系統就會觸發 OOM。如要指定多個限制,請以半形逗號分隔。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生完整 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示完整 GC 事件永遠不會觸發下降。如果達到上限,在完整 GC 事件發生且超過保留堆積百分比門檻時,系統不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 預設值:「2147483647」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量超過 --skyframe_high_water_mark_threshold 設定的門檻,發生輕微 GC 事件時,就會捨棄不必要的臨時 SkyFrame 狀態,每次叫用最多可達到這個值。預設值為 Integer.MAX_VALUE;實際上無限制。0 表示次要 GC 事件永遠不會觸發下降。一旦達到限制,發生輕微 GC 事件且超過保留堆積百分比門檻時,系統就不會再捨棄 SkyFrame 狀態。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 預設值:「85」
Bazel 內部 SkyFrame 引擎的進階設定標記。如果 Bazel 偵測到其保留的堆積百分比用量至少達到這個門檻,就會捨棄不必要的暫時性 SkyFrame 狀態。調整這個做法,即可減少垃圾收集造成的實際時間影響,也就是以下情形:GC 輾轉現象,是:(i) 這個臨時狀態的記憶體用量造成,(ii) 比在需要時重新建構狀態的成本高昂。
標記: host_machine_resource_optimizations
影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock> 預設:查看說明
記錄指令期間的 Java 航班/機票記錄工具設定檔。支援的剖析事件類型之一 (CPU、牆、分配或鎖定) 必須以引數的形式指定。設定檔將寫入一個檔案,並以事件類型在輸出基本目錄下命名。這個旗標的語法和語意日後可能會變更,以支援其他設定檔類型或輸出格式,請自行承擔風險。
--[no]experimental_record_metrics_for_all_mnemonics 預設值:「false」
根據預設,動作類型數量限制為已執行次數最多的 20 種記憶。如果設定這個選項,系統將寫入所有助測器的統計資料。
指定或變更不屬於其他類別 Bazel 指令的一般輸入選項:
--experimental_resolved_file_instead_of_workspace=<a string> 預設值:「」
如果讀取指定的已解析檔案 (而非 WORKSPACE 檔案) 為非空白檔案
標記: changes_inputs
遠端快取和執行選項:
--experimental_downloader_config=<a string> 預設:查看說明
指定要用於設定遠端下載程式的檔案。這個檔案由各行組成,每個指令都是以指令 (「allow」、「block」或「rewrite」) 開頭,後面接有主機名稱 (適用於「allow」和「block」) 或兩個模式,一個要比對做為替代網址,另一個則做為替代網址,並以「$1」開頭的反向參照。即使多個「重新編寫」指令,也可視為相同網址的「rewrite」指令。
--experimental_worker_for_repo_fetching=<off, platform, virtual or auto> 預設值:「auto」
用於存放區擷取的執行緒模式。如果設為「off」,系統就不會使用任何工作站執行緒,且會重新啟動存放區擷取作業。如果設為「平台」,則會使用平台執行緒 (即 OS 執行緒) 或虛擬執行緒 (如設為「virtual」)。如果設為「auto」,系統就會在可用的情況下使用虛擬執行緒 (即在 JDK 21 以上版本中執行),否則就不會使用工作站執行緒。
其他未分類的選項。
會累積 --override_repository=<an equals-separated mapping of repository name to path> 個用途
用 <repository name>=<path> 的格式覆寫本機路徑的存放區。如果指定路徑是絕對路徑,系統會將該路徑視為絕對路徑。如果指定路徑是相對路徑,則以相對路徑為準。如果指定路徑的開頭是「%workspace%」,代表相對於工作區根目錄,也就是「bazel info workspace」的輸出內容

選項效果標記

unknown 這個選項具有不明或未記載的效果。
no_op 這個選項根本不會帶來任何影響。
loses_incremental_state 變更這個選項的值可能會使漸進式狀態大幅損失,導致建構速度變慢。伺服器重新啟動,或依附元件圖表的大部分內容失效,都可能會遺失狀態。
changes_inputs 這個選項會主動變更 bazel 針對建構作業考量的輸入內容,例如檔案系統限制、存放區版本或其他選項。
affects_outputs 這個選項會影響 bazel 的輸出內容。這個標記刻意範圍很廣,可能含遞移影響,且不指定影響的輸出類型。
build_file_semantics 這個選項會影響 BUILD 或 .bzl 檔案的語意。
bazel_internal_configuration 這個選項會影響 Bazel 內部機器的設定。這個標記本身,表示建構構件會受到影響。
loading_and_analysis 這個選項會影響依附元件的載入和分析,以及依附元件圖的建構方式。
execution 這個選項會影響執行階段,例如沙箱機製或遠端執行相關選項。
host_machine_resource_optimizations 這個選項會觸發最佳化作業。這項最佳化作業可能會由機器指定,並不保證在所有機器上都能正常運作。最佳化作業可能包含效能的其他面向 (例如記憶體或 CPU 成本)。
eagerness_to_exit 這個選項會改變令人急著的清除方式,從失敗時選擇繼續,直到叫用失敗並結束叫用。
bazel_monitoring 這個選項是用於監控 bazel 的行為和效能。
terminal_output 這個選項會影響 bazel 的終端機輸出。
action_command_lines 這個選項會變更一或多個建構動作的指令列引數。
test_runner 這個選項會變更版本的測試執行工具環境。

選項中繼資料標記

experimental 這個選項會觸發實驗功能,但不保證一定會有功能。
incompatible_change 這個選項會觸發破壞性變更。您可以使用這個選項測試遷移作業的準備程度,或搶先體驗新功能
deprecated 這個選項已淘汰,這可能是因為其影響的功能已淘汰,或是建議您使用其他提供資訊的方法。
immutable 您無法在轉場效果中變更這個選項。