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 |
將 Bazel 選項清單標準化。 |
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 |
列印 Bazel 的版本資訊。 |
開機選項
- 顯示在指令前方且由用戶端剖析的選項:
--[no]autodetect_server_javabase
預設值:「true」-
傳遞 --noautodetect_server_javabase 時,Bazel 不會改用本機 JDK 來執行 bazel 伺服器,而是會結束。
標記:affects_outputs
、loses_incremental_state
--[no]batch
預設值:「false」-
如果設定此值,Bazel 就會以沒有伺服器的用戶端程序執行,而不是以標準用戶端/伺服器模式執行。這個功能已淘汰且即將移除。如要避免伺服器停擺,建議您明確關閉伺服器。
標記:loses_incremental_state
、bazel_internal_configuration
、deprecated
--[no]batch_cpu_scheduling
預設值:「false」-
僅適用於 Linux;請使用 Blaze 適用的「批次」CPU 排程功能。這項政策適用於非互動的工作負載,但不想降低其優先順序值。請參閱「man 2 sched_setscheduler」。如果設為 False,Bazel 就不會執行系統呼叫。
標記:host_machine_resource_optimizations
--bazelrc=<path>
預設:查看說明-
包含 Bazel 選項預設值的使用者 .bazelrc 檔案位置。/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_outputs
、bazel_monitoring
--connect_timeout_secs=<an integer>
預設值:「30」-
用戶端每次嘗試連線至伺服器時等待的時間長度。
代碼:bazel_internal_configuration
--digest_function=<hash function>
預設值:請參閱說明-
計算檔案摘要時要使用的雜湊函式。
標記:loses_incremental_state
、bazel_internal_configuration
--[no]expand_configs_in_place
預設值:「true」-
將 --config 旗標的展開動作變更為直接完成,而不是在一般 rc 選項和指令列指定選項之間進行固定點展開。
標記:no_op
、deprecated
--failure_detail_out=<path>
預設值:請參閱說明-
如果已設定,則會在伺服器發生失敗且無法正常透過 gRPC 回報時,指定寫入 failure_detail protobuf 訊息的位置。否則位置會是 ${OUTPUT_BASE}/failure_detail.rawproto。
標記:affects_outputs
、loses_incremental_state
--[no]home_rc
預設值:「true」-
是否在 $HOME/.bazelrc 中尋找主目錄 bazelrc 檔案
標記:changes_inputs
--[no]idle_server_tasks
預設值:「true」-
在伺服器閒置時執行 System.gc()
標記:loses_incremental_state
、host_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 系統呼叫,將等級設為 0 到 7,以便盡力安排 I/O 排程。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 上執行時,設定 bazel 伺服器的 QoS 服務類別。這個旗標不會對其他平台產生任何影響,但可以確保這些檔案能在沒有變更的情況下共用 rc 檔案。可能的值包括:使用者互動式、使用者啟動、預設、公用程式和背景。
標記:host_machine_resource_optimizations
--max_idle_secs=<integer>
預設值:「10800」-
建構伺服器在關閉前等待閒置的秒數。零表示伺服器一律不會關閉。這個值只會在伺服器啟動時讀取,變更這個選項不會導致伺服器重新啟動。
標記:eagerness_to_exit
、loses_incremental_state
--output_base=<path>
預設值:請參閱說明-
如果設為此值,系統會指定所有建構輸出內容的輸出位置。否則,位置會是 ${OUTPUT_ROOT}/_blaze_${USER}/${MD5_OF_WORKSPACE_ROOT}。注意:如果您為這個值指定不同的選項,從一個 Bazel 叫用到下一個 Bazel 叫用,很可能會啟動新的額外 Bazel 伺服器。Bazel 只會在每個指定的輸出基礎上啟動一個伺服器。一般來說,每個工作區都會有一個輸出基礎,不過使用這個選項時,每個工作區可能會有多個輸出基礎,因此可在同一部機器中,為同一個用戶端同時執行多個建構作業。請參閱「bazel help shutdown」瞭解如何關閉 Bazel 伺服器。
標記:affects_outputs
、loses_incremental_state
--output_user_root=<path>
預設值:請參閱說明-
使用者專屬目錄,所有建構輸出內容都會寫入此目錄;根據預設,這是 $USER 的函式,但如果指定常數,建構輸出內容就能在協作使用者之間共用。
標記:affects_outputs
、loses_incremental_state
--[no]preemptible
預設值:「false」-
如果為 true,在啟動其他指令時,系統可以搶先執行此指令。
標記:eagerness_to_exit
--server_jvm_out=<path>
預設值:請參閱說明-
寫入伺服器 JVM 輸出內容的位置。如未設定,則預設為 output_base 中的某個位置。
標記:affects_outputs
、loses_incremental_state
--[no]shutdown_on_low_sys_mem
預設值:「false」-
如果設定了 max_idle_secs,且建構伺服器閒置一段時間,請在系統可用 RAM 電量不足時關閉伺服器。僅適用於 Linux。
標記:eagerness_to_exit
、loses_incremental_state
--[no]system_rc
預設值:「true」-
是否要尋找系統層級的 bazelrc。
標記:changes_inputs
--[no]unlimit_coredumps
預設值:「false」-
將軟性核心轉儲限制提高至硬性限制,以便在一般情況下,為伺服器 (包括 JVM) 和用戶端建立核心轉儲。請在 bazelrc 中貼上這個旗標一次,然後就忘記它,這樣當您實際遇到觸發核心傾印的條件時,就能取得核心傾印。
標記:bazel_internal_configuration
--[no]watchfs
預設值:「false」-
如果設為 True,bazel 會嘗試使用作業系統的檔案監控服務,以便監控本機變更,而非掃描每個檔案以尋找變更。
標記:deprecated
--[no]windows_enable_symlinks
預設值:「false」-
如果設為 true,Windows 上會建立實際的符號連結,而非複製檔案。必須啟用 Windows 開發人員模式,並使用 Windows 10 1703 以上版本。
標記:bazel_internal_configuration
--[no]workspace_rc
預設值:「true」-
是否在 $workspace/.bazelrc 中尋找工作區的 bazelrc 檔案
標記:changes_inputs
--host_jvm_args=<jvm_arg>
累積多次使用--host_jvm_debug
展開為:
--host_jvm_args=-Xdebug
--host_jvm_args=-Xrunjdwp:transport=dt_socket,server=y,address=5005
--host_jvm_profile=<profiler_name>
預設值:「」--server_javabase=<jvm path>
預設值:""所有指令的通用選項
- 會顯示在指令之前且由用戶端剖析的選項:
--http_connector_attempts=<an integer>
預設:「8」-
HTTP 下載嘗試次數上限。
標記:bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.>
預設值:「0 秒」-
http 下載重試的逾時時間上限。如果值為 0,則未定義逾時上限。
標記:bazel_internal_configuration
--http_max_parallel_downloads=<an integer>
預設值:「8」-
平行 http 下載數量上限。
標記:bazel_internal_configuration
--http_timeout_scaling=<a double>
預設值:「1.0」-
以指定係數調整與 HTTP 下載相關的所有逾時時間
代碼:bazel_internal_configuration
- 控制建構執行作業的選項:
--experimental_ui_max_stdouterr_bytes=<an integer in (-1)-1073741819 range>
預設:「1048576」-
要輸出至控制台的 stdout / stderr 檔案大小上限。-1 表示無限制。
標記:execution
--[no]incompatible_remote_dangling_symlinks
預設值:「true」-
如果設為 true,系統就會允許將上傳至遠端或磁碟快取的符號連結懸掛。
標記:execution
、incompatible_change
--[no]incompatible_remote_symlinks
預設值:「true」-
如果設為 true,Bazel 一律會將符號連結上傳至遠端或磁碟快取。否則,系統會將非懸空相對符號連結 (僅限這些連結) 上傳為所指向的檔案或目錄。
標記:execution
、incompatible_change
- 設定用於執行動作的工具鍊的選項:
--[no]incompatible_enable_proto_toolchain_resolution
預設值:「false」-
如果為 true,Proto 語言規則會定義來自 rules_proto、rules_java 和 rules_cc 存放區的工具鍊。
標記:loading_and_analysis
、incompatible_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>
預設值:「toplevel」-
如果設為「最小」,則不會將任何遠端建構輸出內容下載到本機電腦,但本機動作所需的輸出內容除外。如果設為「toplevel」,則會像「minimal」一樣運作,但會將頂層目標的輸出內容下載到本機。如果網路頻寬是瓶頸,這兩個選項都可以大幅縮短建構時間。
標記:affects_outputs
--remote_download_symlink_template=<a string>
預設值:""-
請不要將遠端建構輸出內容下載到本機電腦,而是建立符號連結。符號連結的目標可以使用範本字串的形式指定。這個範本字串可能包含 {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 參數,用於本機執行。否則,系統會將記憶體和 CPU 的預設值設為 250 MB 和 1。
標記:execution
、build_file_semantics
、experimental
--[no]experimental_bzl_visibility
預設值:「true」-
如果啟用,就會新增 `visibility()` 函式,.bzl 檔案可在頂層評估期間呼叫此函式,以便針對 load() 陳述式的目的設定其可見度。
標記:loading_and_analysis
、experimental
-
如果設為 true,系統就會提供規則 cc_shared_library 所需的規則屬性和 Starlark API 方法
標記:build_file_semantics
、loading_and_analysis
、experimental
--[no]experimental_cc_static_library
預設值:「false」-
如果設為 true,就會提供 cc_static_library 規則所需的規則屬性和 Starlark API 方法
標記:build_file_semantics
、loading_and_analysis
、experimental
--[no]experimental_disable_external_package
預設值:「false」-
如果設為 true,將無法使用自動產生的 //external 套件。Bazel 仍無法剖析檔案「external/BUILD」,但從未命名套件進入 external/ 的 glob 會正常運作。
標記:loading_and_analysis
、loses_incremental_state
、experimental
--[no]experimental_enable_android_migration_apis
預設值:「false」-
如果設為 true,系統就會啟用支援 Android Starlark 遷移作業所需的 API。
標記: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_analysis
、experimental
--[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_analysis
、incompatible_change
--[no]experimental_platforms_api
預設值:「false」-
如果設為 true,系統會啟用許多與平台相關的 Starlark API,這些 API 可用於偵錯。
標記:loading_and_analysis
、experimental
--[no]experimental_repo_remote_exec
預設值:「false」-
如果設為 true,repository_rule 就會獲得部分遠端執行功能。
標記:build_file_semantics
、loading_and_analysis
、experimental
--[no]experimental_sibling_repository_layout
預設值:「false」-
如果設為 true,非主要存放區會在執行根目錄中,以符號連結方式連結至主要存放區。也就是說,所有存放區都是 $output_base/execution_root 目錄的直接子項。這會將 $output_base/execution_root/__main__/external 釋出至實際的頂層「外部」目錄。
標記:action_command_lines
、bazel_internal_configuration
、loading_and_analysis
、loses_incremental_state
、experimental
-
如果設為 true,標記會從目標傳播至動作的執行需求;否則標記不會傳播。詳情請參閱 https://github.com/bazelbuild/bazel/issues/8830。
標記:build_file_semantics
、experimental
--[no]incompatible_always_check_depset_elements
預設值:「true」-
在所有建構函式中,檢查新增至 depset 的元素是否有效。元素必須是不可變動的,但過去 depset(direct=...) 建構函式忘記檢查。在 depset 元素中使用元組,而非清單。詳情請參閱 https://github.com/bazelbuild/bazel/issues/10313。
標記:build_file_semantics
、incompatible_change
--incompatible_autoload_externally=<comma-separated set of options>
預設值:""-
以逗號分隔的規則 (或其他符號) 清單,這些規則先前是 Bazel 的一部分,現在則會從各自的外部存放區擷取。這個旗標是用來協助從 Bazel 遷移規則。另請參閱 https://github.com/bazelbuild/bazel/issues/23043。
在檔案中自動載入的符號,其行為就像是內建在 Bazel 中的定義,已由外部存放區中的新標準定義取代。對於 BUILD 檔案,這基本上表示隱含新增 load() 陳述式。對於 .bzl 檔案,這可能是 load() 陳述式,也可能是對 `native` 物件欄位的變更,這取決於自動載入的符號是否為規則。Bazel 會保留所有可能自動載入的符號的硬式編碼清單;只有這些符號會出現在此標記中。Bazel 會知道每個符號在外部存放區中的新定義位置,以及一組不得為避免建立循環的特殊情況存放區。這個標記中的「+foo」清單項目會導致符號 foo 自動載入,但在 foo 的豁免存放區中除外,因為在該存放區中,Bazel 定義的 foo 版本仍可使用。清單項目「foo」會觸發上述自動載入功能,但 Bazel 定義的 foo 版本不會提供給已排除的存放區。這可確保 foo 的外部存放區不依賴 foo 的舊 Bazel 實作。清單項目「-foo」不會觸發任何自動載入作業,但會使整個工作區無法存取 Bazel 定義的 foo 版本。這可用於驗證工作區是否已準備好從 Bazel 中刪除 foo 的定義。如果這個標記中沒有指定符號,則會繼續正常運作,不會執行自動載入,也不會抑制 Bazel 定義的版本。如需設定資訊,請參閱 https://github.com/bazelbuild/bazel/blob/master/src/main/java/com/google/devtools/build/lib/packages/AutoloadSymbols.java。您也可以使用整個存放區做為捷徑,例如 +@rules_python 會自動載入所有 Python 規則。
標記:loses_incremental_state
、build_file_semantics
、incompatible_change
--[no]incompatible_depset_for_java_output_source_jars
預設值:「true」-
如果為 true,Bazel 就不會再從 java_info.java_output[0].source_jars 傳回清單,而是傳回 depset。
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_depset_for_libraries_to_link_getter
預設值:「true」-
如果為 true,Bazel 就不會再從 linking_context.libraries_to_link 傳回清單,而是傳回 depset。
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_disable_objc_library_transition
預設值:「true」-
停用 objc_library 的自訂轉場效果,並沿用頂層目標
標記:build_file_semantics
、incompatible_change
--[no]incompatible_disable_starlark_host_transitions
預設值:「false」-
如果設為 true,規則屬性就無法設定「cfg = "host"」。規則應設定「cfg = "exec"」。
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_disable_target_provider_fields
預設值:「false」-
如果設為 true,就無法透過欄位語法存取「目標」物件上的提供者。請改用 provider-key 語法。舉例來說,請改用 `ctx.attr.dep[MyInfo]`,而非 `ctx.attr.dep.my_info`,以便從規則實作函式中存取 `my_info`。詳情請參閱 https://github.com/bazelbuild/bazel/issues/9014。
標記:build_file_semantics
、incompatible_change
--[no]incompatible_disallow_empty_glob
預設值:「false」-
如果設為 true,glob() 的 `allow_empty` 引數預設值為 False。
標記:build_file_semantics
、incompatible_change
--[no]incompatible_disallow_struct_provider_syntax
預設值:「false」-
如果設為 true,規則實作函式可能不會傳回結構體。而是必須傳回提供者執行個體清單。
標記:build_file_semantics
、incompatible_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_semantics
、loading_and_analysis
、incompatible_change
--[no]incompatible_fail_on_unknown_attributes
預設值:「true」-
如果啟用,則未知屬性設為「None」的目標會失敗。
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_fix_package_group_reporoot_syntax
預設值:「true」-
在 package_group 的 `packages` 屬性中,變更「//...」值的含義,以便參照目前存放區中的所有套件,而非任何存放區中的所有套件。您可以使用特殊值「public」取代「//...」,以取得舊版行為。這個旗標需要同時啟用 --incompatible_package_group_has_public_syntax。
標記:build_file_semantics
、incompatible_change
--[no]incompatible_java_common_parameters
預設值:「true」-
如果設為 true,系統會移除所有 pack_sources 中的 output_jar 和 host_javabase 參數。
標記:build_file_semantics
、incompatible_change
--[no]incompatible_merge_fixed_and_default_shell_env
預設值:「true」-
如果啟用此選項,則使用 ctx.actions.run 和 ctx.actions.run_shell 註冊的動作,並同時指定「env」和「use_default_shell_env = True」時,系統會使用從預設殼層環境取得的環境,方法是覆寫傳入「env」的值。如果停用,系統會完全忽略「env」的值。
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_new_actions_api
預設值:「true」-
如果設為 true,就只能在「ctx.actions」上使用建立動作的 API,無法在「ctx」上執行動作。
標記:build_file_semantics
、incompatible_change
--[no]incompatible_no_attr_license
預設值:「true」-
如果設為 true,就會停用 `attr.license` 函式。
標記:build_file_semantics
、incompatible_change
--[no]incompatible_no_implicit_file_export
預設值:「false」-
如果已設定,(已使用) 來源檔案會封裝為私人檔案 (除非已明確匯出)。請參閱 https://github.com/bazelbuild/proposals/blob/master/designs/2019-10-24-file-visibility.md
標記:build_file_semantics
、incompatible_change
--[no]incompatible_no_implicit_watch_label
預設值:「false」-
如果為 true,則傳遞標籤的 <code>repository_ctx</code> 方法將不再自動監控該標籤底下的檔案是否有變更,即使 <code>watch = "no"</code>,且 <code>repository_ctx.path</code> 不再導致傳回路徑遭到監控也一樣。請改用 <code>repository_ctx.watch</code>。
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_no_rule_outputs_param
預設值:「false」-
如果設為 true,則會停用 `rule()` Starlark 函式的 `outputs` 參數。
標記:build_file_semantics
、incompatible_change
--[no]incompatible_objc_provider_remove_linking_info
預設值:「false」-
如果設為 true,系統會移除 ObjcProvider 的連結資訊 API。
標記:build_file_semantics
、incompatible_change
--[no]incompatible_package_group_has_public_syntax
預設值:「true」-
在 package_group 的 `packages` 屬性中,允許寫入「public」或「private」,分別參照所有套件或不參照任何套件。
標記:build_file_semantics
、incompatible_change
--[no]incompatible_require_linker_input_cc_api
預設值:「true」-
如果設為 true,則規則 create_linking_context 會要求 linker_inputs,而不是 libraries_to_link。舊的 linking_context getter 也會遭到停用,只會提供 linker_inputs。
標記:build_file_semantics
、loading_and_analysis
、incompatible_change
--[no]incompatible_run_shell_command_string
預設值:「true」-
如果設為 true, actions.run_shell 的指令參數將只接受字串
標記:build_file_semantics
、incompatible_change
--[no]incompatible_stop_exporting_language_modules
預設值:「false」-
如果啟用,使用者 .bzl 檔案就無法使用特定語言專屬模組 (例如 `cc_common`),只能從各自的規則存放區呼叫。
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_struct_has_no_methods
預設值:「false」-
停用 struct 的 to_json 和 to_proto 方法,這會汙染 struct 欄位命名空間。請改用 json.encode 或 json.encode_indent 處理 JSON,或是使用 proto.encode_text 處理 textproto。
標記:build_file_semantics
、incompatible_change
--[no]incompatible_top_level_aspects_require_providers
預設值:「false」-
如果設為 true,頂層層面會遵循其必要供應器,並只在規則的廣告供應器滿足層面必要供應器的情況下,在頂層目標上執行。
標記:loading_and_analysis
、incompatible_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_analysis
、incompatible_change
--[no]incompatible_use_cc_configure_from_rules_cc
預設值:「false」-
設為 true 時,Bazel 將不再允許使用 @bazel_tools 中的 cc_configure。如需詳細資料和遷移操作說明,請前往 https://github.com/bazelbuild/bazel/issues/10134。
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_use_plus_in_repo_names
預設值:「false」-
如果設為「true」,請使用加號 (+) 做為標準存放區名稱中的分隔符,而非使用波浪號 (~)。這種做法是為瞭解決 Windows 系統的嚴重效能問題。詳情請參閱 https://github.com/bazelbuild/bazel/issues/22865。
標記:loading_and_analysis
--[no]incompatible_visibility_private_attributes_at_definition
預設值:「true」-
如果設為 true,系統會根據規則定義檢查私人規則屬性的瀏覽權限,如果無法查看,則會改回規則使用情形。
標記:build_file_semantics
、incompatible_change
--max_computation_steps=<a long integer>
預設值:「0」-
可由 BUILD 檔案執行的 Starlark 運算步驟數量上限 (零表示無限制)。
標記:build_file_semantics
--nested_set_depth_limit=<an integer>
預設:「3500」-
depset (也稱為 NestedSet) 內部圖表的深度上限,超過此上限,depset() 建構函式就會失敗。
標記:loading_and_analysis
--repositories_without_autoloads=<comma-separated set of options>
預設值:""-
未新增自動載入的其他存放區清單 (除了 Bazel 知道的硬式編碼存放區)。這通常應包含可能會自動載入的存放區所間接依附的存放區 (因此可能會產生循環)。
標記:loses_incremental_state
、build_file_semantics
、incompatible_change
- 選項會觸發建構時間最佳化:
--[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_analysis
、incompatible_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] 的格式指定 Build Event Service (BES) 後端端點。預設會停用 BES 上傳功能。支援的配置為 gRPC 和 gRPC (已啟用 TLS 的 gRPC)。如果未提供配置,Bazel 會假設使用 grpcs。
標記:affects_outputs
--[no]bes_check_preceding_lifecycle_events
預設值:「false」-
在 PublishBuildToolEventStreamRequest 上設定 check_preceding_lifecycle_events_present 欄位,指示 BES 檢查先前是否收到與目前工具事件相符的 InvocationAttemptStarted 和 BuildEnqueued 事件。
標記:affects_outputs
- 累積
--bes_header=<a 'name=value' assignment>
次多次使用 -
以名稱=值的格式指定標頭,以便納入 BES 要求中。您可以多次指定標記,藉此傳遞多個標頭。同一個名稱的多個值會轉換成以半形逗號分隔的清單。
標記:affects_outputs
--bes_instance_name=<a string>
預設值:請參閱說明-
指定 BES 會在哪個執行個體下保存上傳的 BEP。預設值為 null。
標記: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.>
預設值:「10m」-
指定 Bazel 在 OOM 時,應等待 BES/BEP 上傳作業完成的時間長度。這個標記可確保在 JVM 發生嚴重 GC 衝突且無法在任何使用者執行緒上取得進展時終止。
標記:bazel_monitoring
--bes_outerr_buffer_size=<an integer>
預設值:「10240」-
指定 stdout 或 stderr 在回報為進度事件之前,要在 BEP 中緩衝的大小上限。即使個別寫入作業的大小超過指定值 (--bes_outerr_chunk_size),系統仍會在單一事件中回報這些作業。
標記:affects_outputs
--bes_outerr_chunk_size=<an integer>
預設值:「1048576」-
指定在單一郵件中,要傳送至 BEP 的 stdout 或 stderr 大小上限。
標記:affects_outputs
--bes_proxy=<a string>
預設值:請參閱說明- 透過 Proxy 連線至 Build Event Service。目前這個旗標只能用於設定 Unix 網域 Socket (unix:/path/to/socket)。
--bes_results_url=<a string>
預設值:""-
指定使用者可查看串流至 BES 後端的資訊的基礎網址。Bazel 會將叫用 ID 附加的網址輸出到終端機。
標記:terminal_output
- 累積
--bes_system_keywords=<comma-separated list of options>
次多次使用 -
指定要直接納入的通知關鍵字清單,如果是透過 --bes_ keywords 提供的關鍵字,則不要包含「user_keyword=」前置字元。適用於設定 --bes_lifecycle_events=false 且在呼叫 PublishLifecycleEvent 時加入關鍵字的 Build 服務運算子。使用此旗標建構服務運算子時,應禁止使用者覆寫標記值。
標記:affects_outputs
--bes_timeout=<An immutable length of time.>
預設值:「0 秒」-
指定 Bazel 在建構和測試完成後,應等待多久才能完成 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」或「fully_async」。
標記:eagerness_to_exit
--build_event_binary_file=<a string>
預設值:""-
如果不為空白,請將建構事件通訊協定以 varint 分隔的二進位表示法寫入該檔案。這個選項會暗示 --bes_upload_mode=wait_for_upload_complete。
標記:affects_outputs
--[no]build_event_binary_file_path_conversion
預設值:「true」-
盡可能將建構事件通訊協定的二進位檔案路徑轉換為更全球通用的 URI;如果停用此設定,系統一律會使用 file:// uri scheme
標記: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 的 Build Event Service 上傳作業應否阻斷建構作業完成,或是應立即結束叫用作業,並在背景完成上傳作業。可選的值為「wait_for_upload_complete」(預設)、「nowait_for_upload_complete」或「fully_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 配置項
標記: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 的 Build Event Service 上傳作業應否阻斷建構作業的完成,或是應立即結束叫用作業,並在背景完成上傳作業。「wait_for_upload_complete」(預設值)、「nowait_for_upload_complete」或「full_async」。
標記:eagerness_to_exit
--build_event_max_named_set_of_file_entries=<an integer>
預設值:「-1」-
單一 named_set_of_files 事件的項目數量上限;系統會忽略小於 2 的值,且不會執行事件分割作業。這項設定旨在限制建構事件通訊協定中的事件大小上限,但不會直接控制事件大小。事件總大小取決於集合結構、檔案和 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
--[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 中展開 Fileset。
標記:affects_outputs
--[no]experimental_build_event_fully_resolve_fileset_symlinks
預設值:「false」-
如果設為 true,在呈現輸出檔案時,BEP 會完全解析相對檔案集符號連結。需要使用 --experimental_build_event_expand_filesets。
標記:affects_outputs
--experimental_build_event_upload_max_retries=<an integer>
預設值:「4」-
Bazel 應重新上傳建構事件的次數上限。
標記:bazel_internal_configuration
--experimental_build_event_upload_retry_minimum_delay=<An immutable length of time.>
預設值:「1 秒」-
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」-
如果啟用,剖析器會收集 worker 的匯總資源資料。
標記: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_io, pressure_stall_memory, conflict_check, dynamic_lock, repository_fetch, repository_vendor 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 整合時所需的欄位。
標記: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 會有 2 個 GC,暫停 4 秒,然後是 4 個 GC (暫停 0 秒)
標記:bazel_monitoring
--profile=<a path>
預設值:請參閱說明-
如果已設定,系統會分析 Bazel 並將資料寫入指定檔案。使用 bazel analyze-profile 分析設定檔。
標記:bazel_monitoring
--[no]record_full_profiler_data
預設值:「false」-
根據預設,Bazel 分析工具只會針對快速且大量的事件 (例如檢查檔案狀態) 記錄匯總資料。如果啟用這個選項,剖析器會記錄每個事件,因此產生的剖析資料會更精確,但會對效能造成巨大影響。只有在使用 --profile 時,這個選項才會生效。
標記:bazel_monitoring
--remote_print_execution_messages=<failure, success or all>
預設值:「failure」-
選擇要何時列印遠端執行訊息。有效值為 `failure` (只在失敗時列印)、`success` (只在成功時列印) 和 `all` (一律列印)。
標記:terminal_output
--[no]slim_profile
預設值:「true」-
如果設定檔過大,則會合併事件,以縮減 JSON 設定檔的大小。
標記:bazel_monitoring
--starlark_cpu_profile=<a string>
預設值:""-
將所有 Starlark 執行緒的 CPU 用量 pprof 設定檔寫入指定檔案。
標記:bazel_monitoring
--tool_tag=<a string>
預設值:""-
要將此 Bazel 叫用歸屬至的工具名稱。
標記:affects_outputs
、bazel_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>
預設值:請參閱說明-
指定斷路器使用的策略。可用的策略為「failure」。在選項的無效值上,行為與未設定選項相同。
標記:execution
--[no]experimental_guard_against_concurrent_changes
預設值:「false」- 關閉這項設定即可停用執行動作的輸入檔案 Ctime 檢查功能,再將動作上傳至遠端快取。在某些情況下,Linux 核心可能會延遲寫入檔案,導致誤判。
--[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 會定期將「Find MissingBlobs」呼叫傳送至遠端快取,在建構期間延長遠端動作的輸出租約。頻率取決於 `--experimental_remote_cache_ttl` 的值。
--experimental_remote_cache_ttl=<An immutable length of time.>
預設值:「3h」-
在最近參照 Blob 摘要 (例如透過 ActionResult 或 FindMissingBlobs) 後,保證遠端快取中 Blob 的最短 TTL。Bazel 會根據 Blob 的 TTL 執行多項最佳化作業,例如在漸進式建構作業中不重複呼叫 GetActionResult。這個值應設為略低於實際的 TTL,因為伺服器傳回摘要與 Bazel 收到摘要之間存在時間差。
標記:execution
--experimental_remote_capture_corrupted_outputs=<a path>
預設值:請參閱說明- 要擷取損毀輸出內容的目錄路徑。
--[no]experimental_remote_discard_merkle_trees
預設值:「false」- 如果設為 true,在呼叫 GetActionResult() 和 Execute() 時,系統會捨棄輸入根目錄的 Merkle 樹狀結構和相關輸入對應項目的記憶體副本。這麼做可大幅減少記憶體使用量,但在遠端快取遺漏和重試時,Bazel 必須重新計算這些項目。
--experimental_remote_downloader=<a string>
預設值:請參閱說明- Remote Asset API 端點 URI,用於做為遠端下載 Proxy。支援的結構定義為 grpc、grpcs (gRPC,已啟用 TLS) 和 Unix (本機 UNIX 通訊端)。如果未提供結構定義,Bazel 會預設為 grpcs。請參閱: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 秒」-
計算遠端要求失敗率的間隔。如果值為 0,則系統會計算執行期間的完整時間長度。可使用以下單位:天 (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 (gRPC,已啟用 TLS) 和 Unix (本機 UNIX 通訊端)。如果未提供結構定義,Bazel 會預設為使用 grpcs。指定 grpc:// 或 unix: 結構定義,以停用 TLS。
--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 消費者的重要檔案 (例如測試記錄和時間設定檔)。即使遠端快取遺漏檔案,系統仍會將 bytestream:// scheme 用於檔案 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 會預設為使用 grpcs。指定 grpc://、http:// 或 unix: 結構定義,即可停用 TLS。請參閱 https://bazel.build/remote/caching
--[no]remote_cache_compression
預設值:「false」- 如果啟用,當快取 blob 的大小至少達到 --experimental_remote_cache_compression_threshold 時,系統就會使用 zstd 進行壓縮/解壓縮。
- 累積
--remote_cache_header=<a 'name=value' assignment>
次多次使用 - 指定要包含在快取要求中的標頭:--remote_cache_header=Name=Value。您可以多次指定標記,藉此傳遞多個標頭。同一個名稱的多個值會轉換為以半形逗號分隔的清單。
- 累積
--remote_default_exec_properties=<a 'name=value' assignment>
次多次使用 -
設定預設 exec 屬性,做為遠端執行平台 (如果執行平台尚未設定 exec_properties)。
標記:affects_outputs
--remote_default_platform_properties=<a string>
預設值:""- 如果執行平台尚未設定 remote_execution_properties,請設定要為遠端執行 API 設定的預設平台屬性。如果主機平台已選為遠端執行的執行平台,系統也會使用這個值。
--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 會預設為使用 grpcs。指定 grpc:// 或 unix: 結構定義,以停用 TLS。
--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=名稱=值。您可以多次指定標記,藉此傳遞多個標頭。同一個名稱的多個值會轉換為以半形逗號分隔的清單。
--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 網域 Socket (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.>
預設值:「30m」- 如果憑證輔助程式未在憑證到期時提供憑證,則系統會將憑證輔助程式提供的憑證快取一段預設時間。
--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 專屬的設定行。舉例來說,如果主機作業系統是 Linux,且您執行 bazel build,Bazel 會挑選開頭為 build:linux 的程式碼行。支援的 OS ID 為 linux、macos、window、freebsd 和 openbsd。啟用這個標記,就等同於在 Linux 上使用 --config=linux,在 Windows 上使用 --config=windows 等。
--experimental_disk_cache_gc_idle_delay=<An immutable length of time.>
預設值:「5m」- 在磁碟快取進行垃圾收集前,伺服器必須閒置多久。如要指定垃圾收集政策,請設定 --experimental_disk_cache_gc_max_size 和/或 --experimental_disk_cache_gc_max_age。
--experimental_disk_cache_gc_max_age=<An immutable length of time.>
預設值:「0」- 如果設為正值,系統會定期執行垃圾收集作業,移除超過此年齡的項目。如果與 --experimental_disk_cache_gc_max_size 一併設定,會同時套用這兩個條件。伺服器閒置後,系統會根據 --experimental_disk_cache_gc_idle_delay 標記,在背景執行垃圾收集作業。
--experimental_disk_cache_gc_max_size=<a size in bytes, optionally followed by a K, M, G or T multiplier>
預設值:「0」- 如果設為正值,系統會定期執行垃圾收集作業,確保磁碟快取大小不超過這個值。如果與 --experimental_disk_cache_gc_max_age 搭配使用,系統會套用這兩個條件。伺服器閒置後,在背景中執行垃圾收集作業 (由 --experimental_disk_cache_gc_idle_delay 標記決定)。
--[no]experimental_rule_extension_api
預設值:「false」-
啟用實驗性規則擴充功能 API 和子規則 API
標記:loading_and_analysis
、experimental
--[no]experimental_windows_watchfs
預設值:「false」- 如果為 true,系統就會啟用實驗性 Windows 支援 --watchfs。否則 --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 會在連線上沒有讀取作業的時間達到這個值後傳送 ping,但前提是至少有一個待處理的 gRPC 呼叫。時間會視為第二項精細度;如果設定的值小於一秒,就會發生錯誤。根據預設,系統會停用保活 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_analysis
、incompatible_change
--[no]incompatible_disallow_symlink_file_to_dir
預設值:「true」-
免人工管理。
標記:loading_and_analysis
、incompatible_change
--invocation_id=<a UUID>
預設值:""-
執行的指令專屬 ID,格式為 UUID。如果明確指定不重複性,則呼叫端必須確保不重複性。UUID 會輸出至 stderr、BEP 和遠端執行通訊協定。
標記:bazel_monitoring
、bazel_internal_configuration
--[no]progress_in_terminal_title
預設值:「false」- 在終端機標題中顯示指令進度。有助於瞭解 Terraform 在擁有多個終端機分頁時的運作情形。
--[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 合併啟用。在任何作業系統上:如果工作區位於網路檔案系統中,且檔案是在遠端電腦上編輯,則行為未定義。
Analyze-profile 選項
- 顯示在指令前方且由用戶端剖析的選項:
--distdir=<a path>
累積多次使用-
在存取網路下載檔案之前,可搜尋檔案的其他位置。
標記:bazel_internal_configuration
--[no]experimental_repository_cache_hardlinks
預設值:「false」-
如果已設定,存放區快取會在快取命中時建立檔案的硬連結,而不是複製檔案。這麼做是為了節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer>
預設值:「0」-
重試下載錯誤的次數上限。如果設為 0,則系統會停用重試功能。
標記:experimental
--experimental_scale_timeouts=<a double>
預設值:「1.0」-
根據這個因數調整 Starlark 存放區規則中的所有逾時時間。如此一來,外部存放區就能在速度比規則作者預期慢的電腦上運作,而不需要變更原始碼
標記:bazel_internal_configuration
、experimental
--[no]incompatible_disable_native_repo_rules
預設值:「false」-
如果設為 false,則可在 WORKSPACE 中使用原生存放區規則;否則,必須改用 Starlark 存放區規則。原生存放區規則包括 local_repository、new_local_repository、local_config_platform、android_sdk_repository 和 android_ndk_repository。
標記:bazel_internal_configuration
--repository_cache=<a path>
預設值:請參閱說明-
指定在擷取外部存放區時取得的下載值的快取位置。空字串做為引數時,系統會要求停用快取,否則會使用預設的「<output_user_root>/cache/repos/v1」
bazel_internal_configuration
--[no]repository_disable_download
預設值:「false」-
如果設為 true,系統就不會在擷取存放區時允許使用 ctx.download{,_and_extract} 下載。請注意,系統並未完全停用網路存取權;ctx.execute 仍可執行任意可存取網際網路的執行檔。
標記:bazel_internal_configuration
- 控制建構執行作業的選項:
--gc_thrashing_threshold=<an integer in 0-100 range>
預設:「100」-
佔用已登記空間的百分比 (0-100),超過此值後,GcThrashingDetector 會根據限制 (--gc_thrashing_limits) 判斷記憶體壓力事件。如果設為 100,則會停用 GcThrashingDetector。
標記:host_machine_resource_optimizations
- Bzlmod 輸出和語意相關選項:
--allow_yanked_versions=<a string>
累積多次使用-
以 <module1>@<version1>,<module2>@<version2>` 的格式指定模組版本,系統會在解析的依附元件圖表中允許該模組版本,即使這些版本在其來源的登錄檔中宣告為客層版本 (如果不是來自 NonRegistryOverride)。否則,撤銷版本會導致解析失敗。您也可以使用 `BZLMOD_ALLOW_YANKED_VERSIONS` 環境變數,定義允許的撤銷版本。您可以使用「all」關鍵字停用這項檢查 (不建議)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off>
預設值:「error」-
檢查 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`。請注意,如果不是根模組,系統一律會忽略 MODULE.bazel 中的這些開發依附元件,無論此旗標的值為何。
標記:loading_and_analysis
--lockfile_mode=<off, update, refresh or error>
預設值:「update」-
指定如何使用鎖定檔案,以及是否要使用鎖定檔案。有效值包括 `update` (使用鎖定檔案,並在有變更時更新)、`refresh` (不時從遠端登錄重新整理可變更資訊 (已撤銷的版本和先前遺漏的模組))、`error` (使用鎖定檔案,但如果檔案未更新就會擲回錯誤) 或 `off` (既不讀取也不寫入鎖定檔案)。
標記:loading_and_analysis
- 累積
--override_module=<an equals-separated mapping of module name to 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_thrashing_threshold 的持久空間 (舊代堆積) 停留在 <period> 內連續 <count> 個完整 GC 後,就會觸發 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,實際上沒有上限。若為零,表示次要 GC 事件永遠不會觸發釋放作業。如果達到上限,當發生次要 GC 事件且超過保留堆積百分比門檻時,SkyFrame 狀態不會再遭到捨棄。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer>
預設值:「85」-
標記用於 Bazel 內部 Skyframe 引擎的進階設定。如果 Bazel 偵測到保留的堆積百分比用量至少達到這個門檻,就會捨棄不必要的暫時性 SkyFrame 狀態。調整這個值,或許能減輕 GC 耗損的實際時間影響,前提是 GC 耗損 (i) 由此暫時狀態的記憶體用量所造成,且 (ii) 比在必要時重建狀態的成本更高。
標記:host_machine_resource_optimizations
- 影響記錄詳細程度、格式或位置的選項:
--dump=<text or raw>
[-d
] 預設值:請參閱說明-
以人類可讀的「文字」格式或易於腳本使用的「原始」格式輸出完整設定檔資料傾印。
標記:affects_outputs
--experimental_command_profile=<cpu, wall, alloc or lock>
預設值:請參閱說明- 會在指令執行期間記錄 Java Flight Recorder 設定檔。必須提供一個支援的剖析事件類型 (cpu、wall、alloc 或 lock) 做為引數。系統會將設定檔寫入輸出基礎目錄下以事件類型命名的檔案。這個旗標的語法和語意可能會在日後變更,以支援其他設定檔類型或輸出格式;請自行承擔使用風險。
--[no]experimental_record_metrics_for_all_mnemonics
預設值:「false」- 根據預設,動作類型數量上限為 20 個,且只會納入執行動作次數最多的 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」,系統就不會使用 worker 執行緒,且 repo 擷取作業會在重新啟動時執行。否則,請使用虛擬工作者執行緒。
- 其他 (不含其他類別):
- 累積
--override_repository=<an equals-separated mapping of repository name to path>
次多次使用 - 使用本機路徑覆寫存放區,格式為 <repository name>=<path>。如果指定的路徑是絕對路徑,系統會直接使用該路徑。如果指定的路徑是相對路徑,則會以目前的作業目錄為基準。如果指定的路徑以「%workspace%」開頭,則會相對於工作區根目錄,也就是 `bazel info workspace` 的輸出內容。如果指定的路徑為空白,請移除先前的覆寫值。
Aquery 選項
繼承 build 的所有選項。
- 顯示在指令前方且由用戶端剖析的選項:
--distdir=<a path>
累積多次使用-
在存取網路下載封存前,可先搜尋其他位置來搜尋封存內容。
標記:bazel_internal_configuration
--[no]experimental_repository_cache_hardlinks
預設值:「false」-
如果已設定,則存放區快取會在快取命中時建立檔案的硬連結,而不是複製檔案。這麼做是為了節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer>
預設值:「0」-
重試下載錯誤的次數上限。如果設為 0,則系統會停用重試功能。
標記:experimental
--experimental_scale_timeouts=<a double>
預設值:「1.0」-
以這個係數縮放 Starlark 存放區規則中的所有逾時時間。如此一來,外部存放區就能在速度比規則作者預期慢的電腦上運作,而不需要變更原始碼
標記:bazel_internal_configuration
、experimental
--[no]incompatible_disable_native_repo_rules
預設值:「false」-
如果為 false,可以在 WORKSPACE 中使用原生存放區規則,否則必須改用 Starlark 存放區規則。原生存放區規則包括 local_repository、new_local_repository、local_config_platform、android_sdk_repository 和 android_ndk_repository。
標記:bazel_internal_configuration
--repository_cache=<a path>
預設值:請參閱說明-
指定在擷取外部存放區時取得的下載值的快取位置。空字串做為引數時,系統會要求停用快取,否則會使用預設的「<output_user_root>/cache/repos/v1」
bazel_internal_configuration
--[no]repository_disable_download
預設值:「false」-
如果設為 true,則在擷取存放區時,系統不會允許使用 ctx.download{,_and_extract} 下載。請注意,網路存取權不會完全停用;ctx.execute 仍可執行會存取網際網路的任意執行檔。
代碼:bazel_internal_configuration
- 控制建構執行作業的選項:
--gc_thrashing_threshold=<an integer in 0-100 range>
預設值:「100」-
佔用已登記空間的百分比 (0-100),超過此值後,GcThrashingDetector 會根據限制 (--gc_thrashing_limits) 判斷記憶體壓力事件。如果設為 100,則會停用 GcThrashingDetector。
標記:host_machine_resource_optimizations
- 查詢輸出內容和語意相關的選項:
--aspect_deps=<off, conservative or precise>
預設值:「conservative」-
如何在輸出格式為 {xml,proto,record} 的情況下解析面向方面的依附元件。「off」表示不會解析任何面向依賴項、「conservative」(預設值) 表示會新增所有已宣告的面向依賴項,無論其是否已指定直接依賴項的規則類別;「precise」表示只會新增那些在直接依賴項的規則類別中可能處於作用中的面向。請注意,精確模式需要載入其他套件才能評估單一目標,因此速度會比其他模式慢。另請注意,即使是精確模式也不完全精確:決定是否要計算某個面向的決定是在分析階段做出,而該階段不會在「bazel 查詢」期間執行。
標記:build_file_semantics
--[no]consistent_labels
預設值:「false」-
如果啟用,每個查詢指令都會像是將 Starlark <code>str</code> 函式套用至 <code>Label</code> 例項時一樣,發出標籤。這項功能對於需要比對不同查詢指令和/或規則產生標籤的工具來說非常實用。如果未啟用,輸出格式化器可以自由發出明顯的存放區名稱 (相對於主要存放區),以便讓輸出內容更易讀。
標記:terminal_output
--[no]experimental_explicit_aspects
預設值:「false」-
aquery、cquery:是否要在輸出內容中加入由子集產生的動作。query:無操作 (一律會遵循子集)。
標記: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」-
aquery、cquery:是否要在輸出內容中加入由子集產生的動作。query:無操作 (一律會遵循子集)。
標記: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]incompatible_package_group_includes_double_slash
預設值:「true」-
如果啟用這項政策,在輸出 package_group 的「packages」屬性時,不會省略開頭的「//」。
標記:terminal_output
、incompatible_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」。執行並剖析 `info build-language` 的輸出內容,瞭解建構語言中的所有「nodep」屬性。
標記:build_file_semantics
--output=<a string>
預設值:「text」-
查詢結果的列印格式。aquery 的有效值為: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 原型欄位 (如果沒有,則為空字串)。
標記: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」-
查詢:如果停用,系統就不會在查詢運作的依附元件圖中納入「執行設定」的依附元件。「執行設定」依附元件邊緣 (例如從任何「proto_library」規則到 Protocol Compiler 的邊緣),通常會指向建構期間執行的工具,而非同一個「target」程式的一部分。Cquery:如果停用,系統會篩除所有從發現此已設定目標的頂層目標跨越執行轉換的已設定目標。也就是說,如果頂層目標位於目標設定中,則系統只會傳回目標設定中已設定的目標。如果頂層目標位於 exec 設定中,系統只會傳回 exec 所設定的目標,這個選項不會排除已解析的工具鍊。
標記: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` 環境變數,定義允許的撤銷版本。您可以使用「all」關鍵字停用這項檢查 (不建議)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off>
預設值:「error」-
檢查 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`。請注意,如果不是根模組,系統一律會忽略 MODULE.bazel 中的這些開發依附元件,無論此旗標的值為何。
標記:loading_and_analysis
--lockfile_mode=<off, update, refresh or error>
預設值:「update」-
指定如何使用鎖定檔案,以及是否要使用鎖定檔案。有效值包括 `update` (使用鎖定檔案,並在有變更時更新)、`refresh` (不時從遠端登錄重新整理可變更資訊 (已撤銷的版本和先前遺漏的模組))、`error` (使用鎖定檔案,但如果檔案未更新就會擲回錯誤) 或 `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,實際上沒有上限。零表示完整 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 耗損的實際時間影響,前提是 GC 耗損 (i) 是由此暫時狀態的記憶體用量所造成,且 (ii) 比在必要時重建狀態的成本還要高。
標記:host_machine_resource_optimizations
- 影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock>
預設:查看說明- 在指令執行期間記錄 Java Flight Recorder 設定檔。必須提供一個支援的剖析事件類型 (cpu、wall、alloc 或 lock) 做為引數。系統會將設定檔寫入在輸出基本目錄底下,以事件類型命名的檔案。這個旗標的語法和語意可能會在日後變更,以支援其他設定檔類型或輸出格式;請自行承擔使用風險。
--[no]experimental_record_metrics_for_all_mnemonics
預設值:「false」- 根據預設,動作類型數量上限為 20 個,且只會納入執行動作次數最多的 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」,系統就不會使用 worker 執行緒,且 repo 擷取作業會在重新啟動時執行。否則,請使用虛擬工作者執行緒。
- 其他選項,未歸類於其他類別:
- 累積
--override_repository=<an equals-separated mapping of repository name to path>
次多次使用 - 以 <repository name>=<path> 的格式覆寫具有本機路徑的存放區。如果指定路徑是絕對路徑,系統會直接採用該路徑。如果指定路徑是相對路徑,則會以目前工作目錄為相對路徑。如果指定的路徑以「%workspace%」開頭,則會相對於工作區根目錄,也就是 `bazel info workspace` 的輸出內容。如果指定的路徑為空白,請移除先前的覆寫值。
- 控制建構執行作業的選項:
--[no]experimental_inprocess_symlink_creation
預設值:「false」-
是否要發出直接檔案系統呼叫來建立符號連結樹狀結構
標記:loading_and_analysis
、execution
、experimental
--[no]experimental_persistent_aar_extractor
預設值:「false」-
使用 worker 啟用持續性 AAR Extractor。
標記:execution
--[no]experimental_remotable_source_manifests
預設值:「false」-
是否要讓來源資訊清單動作可遠端執行
標記:loading_and_analysis
、execution
、experimental
--[no]experimental_split_coverage_postprocessing
預設值:「false」-
如果為 true,Bazel 就會在新的產生作業中執行測試的涵蓋率後置處理程序。
標記:execution
--[no]experimental_strict_fileset_output
預設值:「false」-
如果啟用這個選項,檔案集會將所有輸出構件視為一般檔案。不會遍歷目錄,也不會對符號連結敏感。
標記:execution
--[no]incompatible_disallow_unsound_directory_outputs
預設值:「true」-
如果設為此值,動作將無法將輸出檔案實體化為目錄。不會影響來源目錄。詳情請參閱 https://github.com/bazelbuild/bazel/issues/18646。
標記:bazel_internal_configuration
、incompatible_change
--[no]incompatible_modify_execution_info_additive
預設值:「false」-
啟用後,傳遞多個 --modify_execution_info 標記會相加。停用時,系統只會考量最後一個標記。
標記:execution
、affects_outputs
、loading_and_analysis
、incompatible_change
--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' 會將 'requires-x' 新增至所有 Genrule 動作的執行資訊。'(?!Genrule).*=-requires-x' 會從所有非 Genrule 動作的執行資訊中移除 'requires-x'。
標記:execution
、affects_outputs
、loading_and_analysis
--persistent_android_dex_desugar
-
使用工作者啟用持續性的 Android dex 和 desugar 動作。
展開為:
--internal_persistent_android_dex_desugar
--strategy=Desugar=worker
--strategy=DexBuilder=worker
標記:host_machine_resource_optimizations
、execution
--persistent_android_resource_processor
-
使用 worker 啟用 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=Aapt2Optimize=worker
--strategy=AARGenerator=worker
--strategy=ProcessDatabinding=worker
--strategy=GenerateDataBindingBaseClasses=worker
標記:host_machine_resource_optimizations
、execution
--persistent_multiplex_android_dex_desugar
-
使用 worker 啟用持續性的多重 Android dex 和 desugar 動作。
展開為:
--persistent_android_dex_desugar
--internal_persistent_multiplex_android_dex_desugar
標記:host_machine_resource_optimizations
、execution
--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=Aapt2Optimize=+supports-multiplex-workers
--modify_execution_info=AARGenerator=+supports-multiplex-workers
標記:host_machine_resource_optimizations
,execution
--persistent_multiplex_android_tools
-
啟用永久性和多工 Android 工具 (DEX、脫糖、資源處理)。
展開為:
--internal_persistent_multiplex_busybox_tools
--persistent_multiplex_android_resource_processor
--persistent_multiplex_android_dex_desugar
標記:host_machine_resource_optimizations
、execution
--[no]use_target_platform_for_tests
預設值:「false」-
如果為 true,Bazel 會使用目標平台執行測試,而不是測試執行群組。
代碼:execution
- 設定用於執行動作的工具鍊的選項:
--android_compiler=<a string>
預設值:請參閱說明-
Android 目標編譯器。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
--android_crosstool_top=<a build target label>
預設值:「//external:android/crosstool」-
用於 Android 建構的 C++ 編譯器位置。
標記:affects_outputs
、changes_inputs
、loading_and_analysis
、loses_incremental_state
--android_grte_top=<a label>
預設:查看說明-
Android 目標 grte_top。
標記:changes_inputs
、loading_and_analysis
、loses_incremental_state
--android_manifest_merger=<legacy, android or force_android>
預設值:「android」-
選取要用於 android_binary 規則的資訊清單合併工具。這個旗標可協助您從舊版合併工具轉換至 Android 資訊清單合併工具。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
--android_platforms=<a build target label>
預設值:""-
設定 android_binary 目標使用的平台。如果指定多個平台,則二進位檔會是笨重的 APK,其中包含每個指定目標平台的原生二進位檔。
標記:changes_inputs
、loading_and_analysis
、loses_incremental_state
--android_sdk=<a build target label>
預設值:"@bazel_tools//tools/android:sdk"-
指定用於建構 Android 應用程式的 Android SDK/平台。
標記:changes_inputs
、loading_and_analysis
、loses_incremental_state
--apple_crosstool_top=<a build target label>
預設:"@bazel_tools//tools/cpp:toolchain"-
在 Apple 和 Objc 規則及其依附元件中使用的 crosstool 套件標籤。
標記:loses_incremental_state
、changes_inputs
--cc_output_directory_tag=<a string>
預設值:""-
指定要新增至設定目錄的後置字串。
標記:affects_outputs
--compiler=<a string>
預設值:請參閱說明-
用於編譯目標的 C++ 編譯器。
標記:loading_and_analysis
、execution
--coverage_output_generator=<a build target label>
預設值:"@bazel_tools//tools/test:lcov_merger"-
用於後處理原始涵蓋率報表的二進位檔位置。這個檔案群組目前必須包含單一檔案 (二進位檔)。預設值為 '//tools/test:lcov_merger'。
標記:changes_inputs
、affects_outputs
、loading_and_analysis
--coverage_report_generator=<a build target label>
預設:"@bazel_tools//tools/test:coverage_report_generator"-
用於產生涵蓋率報表的二進位檔位置。目前這必須是內含單一檔案 (二進位檔) 的檔案群組。預設值為 '//tools/test:coverage_report_generator'。
標記:changes_inputs
、affects_outputs
、loading_and_analysis
--coverage_support=<a build target label>
預設值:「@bazel_tools//tools/test:coverage_support」-
收集程式碼涵蓋率的每個測試動作中,所需的支援檔案位置。預設為 '//tools/test:coverage_support'。
標記:changes_inputs
、affects_outputs
、loading_and_analysis
--crosstool_top=<a build target label>
預設值:"@bazel_tools//tools/cpp:toolchain"-
用於編譯 C++ 程式碼的 crosstool 套件標籤。
標記:loading_and_analysis
、changes_inputs
、affects_outputs
--custom_malloc=<a build target label>
預設值:請參閱說明- 指定自訂 malloc 實作項目。這項設定會覆寫建構規則中的 malloc 屬性。
標記:changes_inputs
、affects_outputs
--experimental_add_exec_constraints_to_targets=<a '<RegexFilter>=<label1>[,<label2>,...]' assignment>
累積多次使用-
以逗號分隔的規則運算式清單,每個運算式可選擇加上前置字元 - (負值運算式),並將 (=) 指派給以逗號分隔的限制值目標清單。如果目標不符合任何負面運算式,且至少符合一個正面運算式,則會執行工具鍊解析作業,就像宣告限制值為執行限制一樣。範例://demo,-test=@platforms//cpus:x86_64 會將「x86_64」新增至 //demo 下的任何目標,但名稱含有「test」的目標除外。
標記:loading_and_analysis
--[no]experimental_include_xcode_execution_requirements
預設值:「false」-
如果已設定,請為每個 Xcode 動作加入「requires-xcode:{version}」執行要求。如果 xcode 版本有連字號標籤,請一併新增「requires-xcode-label:{version_label}」執行要求。
標記:loses_incremental_state
、loading_and_analysis
、execution
--[no]experimental_prefer_mutual_xcode
預設值:「true」-
如果為 true,請使用在本機和遠端都可用的最新 Xcode。如果為 false,或沒有可用的共同版本,請使用透過 xcode-select 所選的本機 Xcode 版本。
標記:loses_incremental_state
--extra_execution_platforms=<comma-separated list of options>
預設值:""-
可用於執行動作的執行平台。您可以使用完全比對目標或目標模式指定平台。系統會先考量這些平台,再透過暫存器在 WORKSPACE 檔案 (由 Register_execution_platforms() 宣告) 中宣告的平台。這個選項只能設定一次;之後的執行個體將覆寫先前的標記設定。
標記:execution
--extra_toolchains=<comma-separated list of options>
累積多次使用-
工具鍊解析期間要考量的工具鍊規則。工具鍊可以由精確目標或目標模式指定。系統會優先考慮這些工具鍊,然後才會在 WORKSPACE 檔案裡 (由 Register_toolchains() 宣告在 WORKSPACE 檔案內宣告) 提供標記。
標記:affects_outputs
、changes_inputs
、loading_and_analysis
--grte_top=<a label>
預設:查看說明-
已簽到 libc 程式庫的標籤。預設值是由 crosstool 工具鍊選取,您幾乎不需要覆寫。
標記:action_command_lines
、affects_outputs
--host_compiler=<a string>
預設值:請參閱說明-
用於主機編譯作業的 C++ 編譯器。如未設定 --host_crosstool_top,系統會忽略這項屬性。
標記:loading_and_analysis
、execution
--host_crosstool_top=<a build target label>
預設值:請參閱說明-
根據預設,--crosstool_top 和 --compiler 選項也可用於執行設定。如果提供這個標記,Bazel 會為指定的 crosstool_top 使用預設的 libc 和編譯器。
標記:loading_and_analysis
、changes_inputs
、affects_outputs
--host_grte_top=<a label>
預設值:請參閱說明-
如果指定,這項設定會覆寫 exec 設定的 libc 頂層目錄 (--grte_top)。
標記:action_command_lines
、affects_outputs
--host_platform=<a build target label>
預設值:"@bazel_tools//tools:host_platform"-
平台規則的標籤,用於說明主機系統。
標記:affects_outputs
、changes_inputs
、loading_and_analysis
--[no]incompatible_dont_enable_host_nonhost_crosstool_features
預設值:「true」-
如果設為 true,Bazel 就不會在 c++ 工具鍊中啟用「host」和「nonhost」功能 (詳情請參閱 https://github.com/bazelbuild/bazel/issues/7407)。
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_enable_android_toolchain_resolution
預設值:「true」-
使用工具鍊解析來選取 Android 規則的 Android SDK (Starlark 和原生)
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_enable_apple_toolchain_resolution
預設值:「false」-
使用工具鍊解析來選取 Apple 規則的 Apple SDK (Starlark 和原生)
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_make_thinlto_command_lines_standalone
預設值:「true」-
如果為 true,Bazel 就不會重複使用 C++ 連結動作指令列來執行 lto 索引指令列 (詳情請參閱 https://github.com/bazelbuild/bazel/issues/6791)。
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_remove_legacy_whole_archive
預設值:「true」-
如果為 true,Bazel 預設不會將程式庫依附元件連結為整個封存檔 (如需遷移操作說明,請參閱 https://github.com/bazelbuild/bazel/issues/7362)。
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_require_ctx_in_configure_features
預設值:「true」-
如果為 true,Bazel 在 cc_common.configure_features 中才會有「ctx」參數 (詳情請參閱 https://github.com/bazelbuild/bazel/issues/7793)。
標記:loading_and_analysis
、incompatible_change
-
如果工具鍊支援,請使用介面共用物件。目前所有 ELF 工具鍊都支援這項設定。
標記:loading_and_analysis
、affects_outputs
、affects_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_analysis
、affects_outputs
--platform_mappings=<a relative path>
預設值:""-
對應檔案的位置,可說明在未設定任何平台時要使用的平台,或在已存在平台時要設定的旗標。必須相對於主要工作區根目錄。預設值為「platform_mappings」(工作區根目錄下方的檔案)。
標記:affects_outputs
、changes_inputs
、loading_and_analysis
--platforms=<a build target label>
預設值:「」-
平台規則的標籤,說明目前指令的目標平台。
標記:affects_outputs
、changes_inputs
、loading_and_analysis
--python2_path=<a string>
預設值:請參閱說明- 已淘汰,無操作。已由 `--incompatible_use_python_toolchains` 停用。
標記:no_op
、deprecated
--python3_path=<a string>
預設值:請參閱說明- 已淘汰,無操作。已由 `--incompatible_use_python_toolchains` 停用。
標記:no_op
、deprecated
--python_path=<a string>
預設值:請參閱說明-
在目標平台上執行 Python 目標時,系統會叫用 Python 解譯器的絕對路徑。已淘汰;已由 --incompatible_use_python_toolchains 停用。
標記:loading_and_analysis
、affects_outputs
--python_top=<a build target label>
預設值:請參閱說明-
這個 py_runtime 標籤,代表為了在目標平台上執行 Python 目標而叫用的 Python 解譯器。已淘汰;已由 --incompatible_use_python_toolchains 停用。
標記:loading_and_analysis
、affects_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_config 規則的標籤,用於在建構設定中選取 Xcode 版本。
標記:loses_incremental_state
、loading_and_analysis
- 控制指令輸出的選項:
--[no]apple_generate_dsym
預設值:「false」-
指出是否要產生偵錯符號 (.dSYM) 檔案。
標記:affects_outputs
、action_command_lines
--[no]build_runfile_links
預設值:「true」-
如果為 true,則為所有目標建立 runfiles 符號連結森林。如果為 false,則只有在本機動作、測試或執行指令要求時,才會寫入。
標記:affects_outputs
--[no]build_runfile_manifests
預設值:「true」-
如果為 true,系統會為所有目標寫入執行檔案資訊清單。如果是 false,請省略。如果為 false,本機測試就會無法執行。
標記:affects_outputs
--[no]build_test_dwp
預設值:「false」-
如果啟用此選項,在使用 Fission 靜態建構 C++ 測試時,系統也會自動建構測試二進位檔的 .dwp 檔案。
標記:loading_and_analysis
、affects_outputs
--cc_proto_library_header_suffixes=<comma-separated set of options>
預設值:".pb.h"-
設定 cc_proto_library 建立的標頭檔案後置字串。
標記:affects_outputs
、loading_and_analysis
--cc_proto_library_source_suffixes=<comma-separated set of options>
預設值:「.pb.cc」-
設定 cc_proto_library 所建立來源檔案的後置字串。
標記:affects_outputs
、loading_and_analysis
--[no]experimental_proto_descriptor_sets_include_source_info
預設值:「false」-
針對 proto_library 中的其他 Java API 版本執行額外動作。
標記:affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_proto_extra_actions
預設值:「false」-
針對 proto_library 中的其他 Java API 版本執行額外動作。
標記:affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_save_feature_state
預設值:「false」-
將已啟用和要求的功能狀態儲存為編譯的輸出內容。
標記:affects_outputs
、experimental
--fission=<a set of compilation modes>
預設值:「no」-
指定哪些編譯模式適用於 C++ 編譯和連結。可以是 {'fastbuild'、'dbg'、'opt'} 的任意組合,或是特殊值「yes」來啟用所有模式,「no」則可停用所有模式。
標記:loading_and_analysis
、action_command_lines
、affects_outputs
--[no]incompatible_always_include_files_in_data
預設值:「true」-
如果為 true,原生規則會將資料依附元件的 <code>DefaultInfo.files</code> 新增至其執行檔,這與 Starlark 規則的建議行為相符 (https://bazel.build/extending/rules#runfiles_features_to_avoid)。
標記:affects_outputs
、incompatible_change
--[no]legacy_external_runfiles
預設值:「true」-
如果為 true,則會為 .runfiles/wsname/external/repo 下的外部存放區 (除了 .runfiles/repo) 建構執行檔案符號連結森林。
標記: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>
累積多次使用-
指定可供含有目標設定的動作使用的一組環境變數。您可以使用名稱指定變數,在這種情況下,系統會從叫用環境取得值;也可以使用名稱=值組合,設定不受叫用環境影響的值。這個選項可以重複使用;如果是針對同一個變數提供的選項,則以最新的選項為準;如果是針對不同變數提供的選項,則會累加。
標記:action_command_lines
--android_cpu=<a string>
預設:「armeabi-v7a」-
Android 目標 CPU。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
--[no]android_databinding_use_androidx
預設值:「true」-
產生與 AndroidX 相容的資料繫結檔案。僅供資料繫結 v2 使用。這個標記不會執行任何操作。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]android_databinding_use_v3_4_args
預設值:「true」-
使用 Android Databinding v2 和 3.4.0 引數。這個標記為免人工管理。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--android_dynamic_mode=<off, default or fully>
預設值:「off」-
決定在 cc_binary 未明確建立共用程式庫時,是否要動態連結 Android 規則的 C++ 依附元件。「預設」表示 Bazel 會選擇是否要動態連結。「整體」表示系統會動態連結所有程式庫。「off」表示所有程式庫都會以靜態模式連結。
標記:affects_outputs
、loading_and_analysis
--android_manifest_merger_order=<alphabetical, alphabetical_by_configuration or dependency>
預設值:「alphabetical」-
設定傳遞至 Android 二進位檔資訊清單合併工具的資訊清單順序。ALPHABETICAL 表示資訊清單會依據相對於執行根目錄的路徑排序。ALPHABETICAL_BY_CONFIGURATION 表示資訊清單會依據輸出目錄中相對於設定目錄的路徑排序。DEPENDENCY 表示資訊清單會依序排列,每個程式庫的資訊清單會排在其依附元件的資訊清單之前。
標記:action_command_lines
、execution
--[no]android_resource_shrinking
預設值:「false」-
為使用 ProGuard 的 android_binary APK 啟用資源縮減功能。
標記:affects_outputs
、loading_and_analysis
--[no]build_python_zip
預設值:「auto」-
建構 Python 可執行 ZIP 檔案;在 Windows 上 (在其他平台上)
標記:affects_outputs
--catalyst_cpus=<comma-separated list of options>
累積多次使用-
用於建構 Apple Catalyst 二進位檔的架構清單 (以半形逗號分隔)。
標記:loses_incremental_state
、loading_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_outputs
、action_command_lines
--conlyopt=<a string>
累積多次使用-
編譯 C 來源檔案時,要傳遞至 gcc 的其他選項。
標記:action_command_lines
、affects_outputs
--copt=<a string>
累積多次使用-
傳遞至 gcc 的其他選項。
標記:action_command_lines
、affects_outputs
--cpu=<a string>
預設值:""-
目標 CPU。
標記:changes_inputs
、affects_outputs
--cs_fdo_absolute_path=<a string>
預設:查看說明-
使用 CSFDO 設定檔資訊將編譯作業最佳化。指定內含設定檔檔案的 ZIP 檔案的絕對路徑名稱,也就是原始或索引 LLVM 設定檔檔案。
標記: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_lines
、affects_outputs
--define=<a 'name=value' assignment>
累積多次使用-
每個 --define 選項都會指定建構變數的指派作業。
標記:changes_inputs
、affects_outputs
--dynamic_mode=<off, default or fully>
預設值:「預設」-
決定是否要動態連結 C++ 二進位檔。「預設」表示 Bazel 會選擇是否要動態連結。「整體」表示系統會動態連結所有程式庫。「off」表示所有程式庫都會以靜態模式連結。
標記:loading_and_analysis
、affects_outputs
--[no]enable_fdo_profile_absolute_path
預設值:「true」-
如果設為此值,使用 fdo_absolute_profile_path 會引發錯誤。
標記:affects_outputs
--[no]enable_runfiles
預設值:「auto」-
啟用執行檔案符號連結樹狀結構;在 Windows 的其他平台上,這項功能預設為關閉。
標記:affects_outputs
- 累積
--experimental_action_listener=<a build target label>
次多次使用 -
已淘汰,並改用切面。使用 action_listener 將 extra_action 附加至現有的建構動作。
標記:execution
、experimental
--[no]experimental_android_compress_java_resources
預設值:「false」-
壓縮 APK 中的 Java 資源
標記:affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_android_databinding_v2
預設值:「true」-
使用 Android Databinding v2。這個標記為免人工管理。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]experimental_android_resource_shrinking
預設值:「false」-
為使用 ProGuard 的 android_binary APK 啟用資源縮減功能。
標記:affects_outputs
、loading_and_analysis
--[no]experimental_android_rewrite_dexes_with_rex
預設值:「false」-
使用 rex 工具重寫 dex 檔案
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[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 和 -fasynchronous-unwind-Table 進行編譯。
標記:action_command_lines
、affects_outputs
、experimental
--experimental_output_paths=<off, content or strip>
預設值:「停用」-
要在輸出樹狀結構規則的何處寫入輸出內容 (尤其是多平台 / 多設定版本) 時,要使用哪個模型。這項功能仍在實驗階段,詳情請參閱 https://github.com/bazelbuild/bazel/issues/6526。Starlark 動作可以選擇啟用路徑對應功能,方法是將「supports-path-mapping」鍵新增至「execution_requirements」字典。
標記:loses_incremental_state
、bazel_internal_configuration
、affects_outputs
、execution
--experimental_override_name_platform_in_output_dir=<a 'label=value' assignment>
累積多次使用-
每個項目都應採用 label=value 的格式,其中 label 是指平台,而 value 是輸出路徑中要使用的所需短名稱。僅在 --experimental_platform_in_output_dir 為 true 時使用。具有最高的命名優先順序。
標記:affects_outputs
、experimental
--[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_outputs
、experimental
--[no]experimental_use_llvm_covmap
預設值:「false」-
如果指定此選項,在啟用 collect_code_coverage 時,Bazel 會產生 llvm-cov 涵蓋範圍對應資訊,而非 gcov。
標記:changes_inputs
、affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_use_platforms_in_output_dir_legacy_heuristic
預設值:「true」-
請僅在建議的遷移或測試策略中使用這個標記。請注意,啟發式搜尋有已知的缺陷,建議您改為只使用 --experimental_override_name_platform_in_output_dir。
標記:affects_outputs
、experimental
--fat_apk_cpu=<comma-separated set of options>
預設值:「armeabi-v7a」-
設定這個選項會啟用笨重的 APK,其中包含所有指定目標架構的原生二進位檔,例如 --fat_apk_cpu=x86,armeabi-v7a. 如果已指定這個標記,則系統會針對 android_binary 規則的依附元件忽略 --android_cpu。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
--[no]fat_apk_hwasan
預設值:「false」-
是否要建立 HWASAN 分割項目。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
--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_inputs
、affects_outputs
--[no]force_pic
預設值:「false」-
如果啟用,所有 C++ 編譯作業都會產生位置無關的程式碼 ("-fPIC"),連結會優先使用 PIC 預先建構的程式庫,而非非 PIC 程式庫,且連結會產生位置無關的可執行檔 ("-pie")。
標記:loading_and_analysis
、affects_outputs
--host_action_env=<a 'name=value' assignment with an optional value part>
累積多次使用-
指定執行作業設定可用的環境變數組合。變數可以透過名稱指定,在這種情況下,系統會從叫用環境取得值;也可以透過名稱=值組合指定,在這種情況下,系統會設定不受叫用環境影響的值。這個選項可多次使用;對於相同變數所提供的選項、最新的勝出結果,以及累積不同變數的選項。
標記:action_command_lines
--host_compilation_mode=<fastbuild, dbg or opt>
預設值:「opt」-
指定在建構期間使用的工具將以何種模式建構。值:'fastbuild'、'dbg'、'opt'。
標記:affects_outputs
、action_command_lines
- 累積
--host_conlyopt=<a string>
次多次使用 -
在 exec 設定中編譯 C (而非 C++) 來源檔案時,傳遞至 C 編譯器的其他選項。
標記:action_command_lines
、affects_outputs
--host_copt=<a string>
累積多次使用-
針對在執行設定中建構的工具,傳遞至 C 編譯器的其他選項。
標記:action_command_lines
、affects_outputs
--host_cpu=<a string>
預設值:""-
主機 CPU。
標記:changes_inputs
、affects_outputs
--host_cxxopt=<a string>
累積多次使用- 針對在執行設定中建構的工具,傳遞至 C++ 編譯器的其他選項。
標記:action_command_lines
、affects_outputs
--host_features=<a string>
累積多次使用-
對於在執行設定中建構的目標,系統會依預設啟用或停用指定功能。如果指定 -<feature>,系統會停用這項功能。負面特徵一律會覆寫正面特徵。
標記:changes_inputs
、affects_outputs
--host_force_python=<PY2 or PY3>
預設:查看說明-
覆寫 exec 設定的 Python 版本。可以是「PY2」或「PY3」。
標記:loading_and_analysis
、affects_outputs
--host_linkopt=<a string>
累積多次使用-
在 Exec 設定中連結工具時,傳送至連接器的額外選項。
標記:action_command_lines
、affects_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@選項_1,選項_2,...,選項_n。其中 regex_filter 代表包含和排除規則運算式模式的清單 (另請參閱 --instrumentation_filter)。選項_1 到 option_n 代表任意指令列選項。如果選項包含半形逗號,則必須在半形逗號前後加上反斜線。選項可以包含 @。只有第一個 @ 會用來分割字串。範例:--host_per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 會將 -O0 指令列選項加入 //foo/ 中所有 cc 檔案 (除了 bar.cc) 的 gcc 指令列。
標記:action_command_lines
、affects_outputs
--host_swiftcopt=<a string>
累積多次使用-
傳遞至 swiftc 的 exec 工具其他選項。
標記:action_command_lines
、affects_outputs
--[no]incompatible_auto_exec_groups
預設值:「false」-
啟用後,系統會為規則使用的每個工具鍊自動建立執行群組。為使這項規則運作,您需要在其動作中指定「toolchain」參數。如需更多資訊,請參閱 https://github.com/bazelbuild/bazel/issues/17134。
標記:affects_outputs
、incompatible_change
--[no]incompatible_merge_genfiles_directory
預設值:「true」-
如果設為 true,系統會將 genfiles 目錄折疊至 bin 目錄。
標記:affects_outputs
、incompatible_change
--[no]incompatible_use_host_features
預設值:「true」-
如果為 true,請只將 --features 用於目標設定,並將 --host_features 用於執行設定。
標記:changes_inputs
、affects_outputs
、incompatible_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_state
、loading_and_analysis
--[no]legacy_whole_archive
預設值:「true」-
已淘汰,已由 --incompatible_remove_legacy_whole_archive 取代 (詳情請參閱 https://github.com/bazelbuild/bazel/issues/7362)。開啟後,請針對 cc_binary 規則使用 --whole-archive,該規則的 linkshared 為 True,且 linkopts 中為 linkstatic=True 或 '-static'。這項設定僅適用於回溯相容性。更好的做法是在必要時使用 Alwayslink=1。
標記:action_command_lines
、affects_outputs
、deprecated
- 累積
--linkopt=<a string>
次多次使用 -
連結時傳送至 gcc 的其他選項。
標記:action_command_lines
、affects_outputs
--ltobackendopt=<a string>
累積多次使用-
傳遞至 LTO 後端步驟的其他選項 (在 --features=thin_lto 下方)。
標記:action_command_lines
、affects_outputs
--ltoindexopt=<a string>
累積多次使用-
傳遞至 LTO 索引步驟的其他選項 (在 --features=thin_lto 下方)。
標記:action_command_lines
、affects_outputs
--macos_cpus=<comma-separated list of options>
累積多次使用-
以逗號分隔的架構清單,用於建構 Apple macOS 二進位檔。
標記:loses_incremental_state
、loading_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@選項_1,選項_2,...,選項_n。其中 regex_filter 代表包含和排除的規則運算式模式清單 (另請參閱 --instrumentation_filter)。option_1 到 option_n 代表任意指令列選項。如果選項中包含半形逗號,就必須用反斜線加引號。選項可以包含 @。只有第一個 @ 會用來分割字串。範例:--per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 會將 -O0 指令列選項新增至 //foo/ 中所有 cc 檔案 (除了 bar.cc) 的 gcc 指令列。
標記:action_command_lines
、affects_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@選項_1,選項_2,...,選項_n。其中 regex_filter 代表包含和排除規則運算式的清單。option_1 到 option_n 代表任意指令列選項。如果選項包含半形逗號,則必須在半形逗號前後加上反斜線。選項可以包含 @。只有第一個 @ 會用來分割字串。範例:--per_file_ltobackendopt=//foo/.*\.o,-//foo/bar\.o@-O0 會將 -O0 指令列選項新增至 //foo/ 中所有 o 檔案 (除了 bar.o) 的 LTO 後端指令列。
標記:action_command_lines
、affects_outputs
--platform_suffix=<a string>
預設值:請參閱說明-
指定要新增至設定目錄的後置字串。
標記:loses_incremental_state
、affects_outputs
、loading_and_analysis
--propeller_optimize=<a build target label>
預設值:請參閱說明-
使用 Propeller 設定檔資訊來改善建構目標。Propeller 設定檔至少必須包含以下兩個檔案之一:cc 設定檔和 ld 設定檔。此旗標接受建構標籤,該標籤必須參照依附元件設定檔輸入檔案。舉例來說,定義標籤的 BUILD 檔案,在 a/b/BUILD:propeller_optimize( name = "propeller_profile", cc_profile = "propeller_cc_profile.txt", ld_profile = "propeller_ld_profile.txt",) 中,您可能必須在對應的套件中加入 exports_files 指示詞,才能讓 Bazel 看到這些檔案。這個選項必須以以下方式使用:--propeller_optimize=//a/b:propeller_profile
標記:action_command_lines
、affects_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
-
如為 true,則包含相同功能的原生資料庫會在不同的目標之間共用。
標記:loading_and_analysis
、affects_outputs
--[no]stamp
預設值:「false」-
在二進位檔上蓋上日期、使用者名稱、主機名稱、工作區資訊等資訊。
標記:affects_outputs
--strip=<always, sometimes or never>
預設值:「sometimes」-
用於指定是否要移除二進位檔和共用程式庫 (使用「-Wl,--strip-debug」)。預設值為「sometimes」表示如果 --compilation_mode=fastbuild,則會移除。
標記:affects_outputs
--stripopt=<a string>
累積多次使用- 產生 '<name>.stripped'二進位檔時,要傳遞至 strip 的其他選項。
標記:action_command_lines
、affects_outputs
- 累積
--swiftcopt=<a string>
次多次使用 -
傳遞至 Swift 編譯的其他選項。
標記:action_command_lines
--tvos_cpus=<comma-separated list of options>
累積多次使用-
用於建構 Apple tvOS 二進位檔的架構清單 (以半形逗號分隔)。
標記:loses_incremental_state
、loading_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_state
、loading_and_analysis
--watchos_cpus=<comma-separated list of options>
累積多次使用-
以半形逗號分隔的架構清單,用於建構 Apple watchOS 二進位檔。
標記:loses_incremental_state
、loading_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>
預設值:""-
宣告環境_group,用於自動將 cpu 值對應至 target_environment 值。
標記:changes_inputs
、loading_and_analysis
、experimental
--[no]check_licenses
預設值:「false」-
請確認依附套件施加的授權限制,不會與建構目標的發布模式衝突。根據預設,系統不會檢查授權。
標記:build_file_semantics
--[no]check_visibility
預設值:「true」-
如果停用這項政策,目標依附元件中的瀏覽權限錯誤會降低為警告。
標記:build_file_semantics
--[no]desugar_for_android
預設值:「true」-
是否要在解碼前脫糖 Java 8 位元組碼。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
--[no]desugar_java8_libs
預設值:「false」-
是否要在舊版裝置的應用程式中加入支援的 Java 8 程式庫。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]enforce_constraints
預設值:「true」-
檢查各目標的相容環境,並在任何目標的依附元件不支援相同環境時回報錯誤
標記:build_file_semantics
--[no]experimental_check_desugar_deps
預設值:「true」-
是否要再次檢查 Android 二進位檔層級的正確去糖化。
標記:eagerness_to_exit
、loading_and_analysis
、experimental
--experimental_import_deps_checking=<off, warning or error>
預設值:「OFF」-
啟用後,系統會檢查 aar_import 的依附元件是否完整。這項強制執行可能會破壞建構作業,或只會導致警告。
標記:loading_and_analysis
--experimental_one_version_enforcement=<off, warning or error>
預設值:「OFF」-
啟用後,系統會強制規定 java_binary 規則在 classpath 中不得包含同一個類別檔案的多個版本。這項強制執行措施可能會導致建構作業中斷,或只會產生警告。
標記:loading_and_analysis
--experimental_strict_java_deps=<off, warn, error, strict or default>
預設值:「預設」-
如果為 true,則會檢查 Java 目標是否明確將所有直接使用的目標宣告為依附元件。
標記:build_file_semantics
、eagerness_to_exit
--[no]incompatible_check_testonly_for_output_files
預設值:「false」-
如果啟用,請查詢產生規則的 testonly,檢查 testonly 是否為輸出檔案的必要條件目標。這與檢查瀏覽權限相符。
標記:build_file_semantics
、incompatible_change
--[no]incompatible_check_visibility_for_toolchains
預設值:「false」-
如果已啟用,可視性檢查也會套用至工具鍊實作。
標記:build_file_semantics
、incompatible_change
--[no]incompatible_disable_native_android_rules
預設值:「false」-
如果啟用,系統就會停用原生 Android 規則的直接用法。請使用 https://github.com/bazelbuild/rules_android 中的 Starlark Android 規則
標記:eagerness_to_exit
、incompatible_change
--[no]incompatible_disable_native_apple_binary_rule
預設值:「false」-
無操作。為回溯相容性而保留。
標記:eagerness_to_exit
、incompatible_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_analysis
、incompatible_change
--[no]incompatible_validate_top_level_header_inclusions
預設值:「true」-
如果為 True,Bazel 也會驗證頂層目錄標頭的納入項目 (詳情請參閱 https://github.com/bazelbuild/bazel/issues/10047)。
標記:loading_and_analysis
、incompatible_change
--[no]one_version_enforcement_on_java_tests
預設值:「true」-
如果啟用,並將 experiment_one_version_enforcement 設為非 NONE 值,則應對 java_test 目標強制套用一個版本。您可以停用這個標記,以便提升增量測試效能,但可能會錯過某個版本的違規項目。
標記:loading_and_analysis
--python_native_rules_allowlist=<a build target label>
預設值:請參閱說明-
在強制執行 --incompatible_python_disallow_native_rules 時,要使用的許可清單 (package_group 目標)。
標記:loading_and_analysis
--[no]strict_filesets
預設值:「false」-
如果啟用這個選項,系統會將跨越套件邊界的檔案集回報為錯誤。
標記:build_file_semantics
、eagerness_to_exit
--strict_proto_deps=<off, warn, error, strict or default>
預設值:「error」-
除非為「關閉」,否則檢查 proto_library 目標是否明確宣告所有直接使用的目標為依附元件。
標記:build_file_semantics
、eagerness_to_exit
、incompatible_change
--strict_public_imports=<off, warn, error, strict or default>
預設值:「off」-
除非設為 OFF,否則會檢查 proto_library 目標是否明確宣告在「import public」中使用的所有目標為匯出目標。
標記:build_file_semantics
、eagerness_to_exit
、incompatible_change
--[no]strict_system_includes
預設值:「false」-
如果設為 true,則系統會透過系統包含路徑 (-isystem) 找到的標頭也必須宣告。
標記:loading_and_analysis
、eagerness_to_exit
- 累積
--target_environment=<a build target label>
次多次使用 -
宣告此建構作業的目標環境。必須是「環境」規則的標籤參照。如果指定了這個環境,則所有頂層目標都必須與這個環境相容。
標記:changes_inputs
- 影響建構簽署輸出內容的選項:
--apk_signing_method=<v1, v2, v1_v2 or v4>
預設值:「v1_v2」-
用於簽署 APK 的實作方式
標記:action_command_lines
、affects_outputs
、loading_and_analysis
--[no]device_debug_entitlements
預設值:「true」-
如果已設定,且編譯模式不是「最佳化」,objc 應用程式會在簽署時納入偵錯授權。
標記:changes_inputs
--ios_signing_cert_name=<a string>
預設:查看說明-
iOS 簽署作業要使用的憑證名稱。如果未設定,系統會改為使用佈建設定檔。根據 codesign 的 man 頁面 (SIGNING IDENTITIES),可能為憑證的鑰匙圈身分偏好設定或憑證的常用名稱 (子字串)。
標記:action_command_lines
- 這個選項會影響 Starlark 語言的語意,或 BUILD 檔案、.bzl 檔案或 WORKSPACE 檔案可存取的建構 API:
--[no]incompatible_disallow_legacy_py_provider
預設值:「true」-
免人工管理,我們很快就會移除。
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_disallow_sdk_frameworks_attributes
預設值:「false」-
如果設為 true,就禁止在 objc_library 和 objc_import 中使用 sdk_frameworks 和 weak_sdk_frameworks 屬性。
標記:build_file_semantics
、incompatible_change
--[no]incompatible_objc_alwayslink_by_default
預設值:「false」-
如果為 true,請將 objc_library 和 objc_import 中的 alwayslink 屬性預設值設為 true。
標記:build_file_semantics
、incompatible_change
--[no]incompatible_python_disallow_native_rules
預設值:「false」-
如果為 True,使用內建的 py_* 規則時會發生錯誤;應改用 rule_python 規則。詳情請參閱 https://github.com/bazelbuild/bazel/issues/17773 瞭解遷移操作說明。
標記:loading_and_analysis
、incompatible_change
- 用於控管測試環境或測試執行工具行為的選項:
--[no]allow_analysis_failures
預設值:「false」-
如果設為 true,規則目標的分析失敗會導致目標傳播包含錯誤說明的 AnalysisFailureInfo 例項,而不會導致建構失敗。
標記:loading_and_analysis
、experimental
--analysis_testing_deps_limit=<an integer>
預設:「2000」-
透過規則屬性和 for_analysis_testing 設定轉換,設定遞移依附元件的數量上限。若超出這項限制,就會導致規則錯誤。
標記:loading_and_analysis
--[no]break_build_on_parallel_dex2oat_failure
預設值:「false」-
如果為 true,則 dex2oat 動作失敗會導致建構中斷,而不會在測試執行階段執行 dex2oat。
標記:loading_and_analysis
、experimental
--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,並可選擇加上 [-|*]<浮點> (例如 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_analysis
、host_machine_resource_optimizations
、experimental
--[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。其中 runs_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」表示不會解析任何面向依賴項、「conservative」(預設值) 表示會新增所有已宣告的面向依賴項,無論其是否已指定直接依賴項的規則類別;「precise」表示只會新增那些在指定直接依賴項的規則類別時可能處於作用中的面向。請注意,如要使用精確模式,必須載入其他套件來評估單一目標,因此速度會低於其他模式。另請注意,即使是精確模式也不完全精確:決定是否要計算某個面向的決定是在分析階段做出,而該階段不會在「bazel 查詢」期間執行。
標記:build_file_semantics
--[no]consistent_labels
預設值:「false」-
如果啟用,每個查詢指令都會像是將 Starlark <code>str</code> 函式套用至 <code>Label</code> 例項時一樣,發出標籤。這項功能對於需要比對不同查詢指令和/或規則產生標籤的工具來說非常實用。如果未啟用,輸出格式化器可以自由發出明顯的存放區名稱 (相對於主要存放區),以便讓輸出內容更易讀。
標記:terminal_output
--[no]experimental_explicit_aspects
預設值:「false」- 查詢、cquery:是否要在輸出中納入切面產生的動作。查詢:免人工管理 (一律遵循切面)。
標記: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」-
aquery、cquery:是否要在輸出內容中加入由子集產生的動作。query:無操作 (一律會遵循子集)。
標記: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]incompatible_package_group_includes_double_slash
預設值:「true」-
如果啟用這項政策,在輸出 package_group 的「packages」屬性時,不會省略開頭的「//」。
標記:terminal_output
、incompatible_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」。執行並剖析 `info build-language` 的輸出內容,瞭解建構語言中的所有「nodep」屬性。
標記:build_file_semantics
--output=<a string>
預設值:「text」-
aquery 結果的輸出格式。aquery 的有效值為: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>
預設值:「all」-
以半形逗號分隔的屬性清單,用於納入輸出內容。預設為所有屬性。如要不輸出任何屬性,請將其設為空字串。這個選項適用於 --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」-
查詢:如果停用,系統就不會在查詢運作的依附元件圖中納入「執行設定」的依附元件。「執行設定」依附元件邊緣 (例如從任何「proto_library」規則到 Protocol Compiler 的邊緣),通常會指向建構期間執行的工具,而非同一個「target」程式的一部分。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_analysis
、execution
、affects_outputs
、experimental
--[no]experimental_inmemory_jdeps_files
預設值:「true」-
如果啟用此選項,系統會直接從遠端建構節點,透過記憶體傳遞從 Java 編譯產生的依附元件檔案 (.jdeps),而不會寫入磁碟。
標記:loading_and_analysis
、execution
、affects_outputs
、experimental
--[no]experimental_objc_include_scanning
預設值:「false」-
是否要為 Objective-C/C++ 執行包含掃描作業。
標記:loading_and_analysis
、execution
、changes_inputs
--[no]experimental_retain_test_configuration_across_testonly
預設值:「false」-
啟用後,--trim_test_configuration 就不會為標示為 testonly=1 的規則裁減測試設定。這種做法是為了減少非測試規則依賴 cc_test 規則時發生的動作衝突問題。如果 --trim_test_configuration 為 false,就不會產生任何影響。
標記:loading_and_analysis
、loses_incremental_state
--[no]experimental_starlark_cc_import
預設值:「false」-
啟用後,即可使用 cc_import 的 Starlark 版本。
標記:loading_and_analysis
、experimental
--[no]experimental_unsupported_and_brittle_include_scanning
預設值:「false」-
是否要透過剖析輸入檔案中的 #include 行,將輸入內容縮減為 C/C++ 編譯。這麼做可減少編譯輸入樹狀結構大小,進而提升效能和成效增幅。不過,由於包含掃描器未完全實作 C 預處理器語意,因此也可能會導致建構作業中斷。特別是,它無法瞭解動態 #include 指令,且會忽略預先處理器的條件邏輯。您必須自行承擔使用風險。我們會關閉與這個標記相關的所有已提交問題。
標記:loading_and_analysis
、execution
、changes_inputs
--[no]incremental_dexing
預設值:「true」-
針對每個 Jar 檔案分別執行大部分的解析工作。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
--[no]objc_use_dotd_pruning
預設值:「true」-
如果設定此引數,系統會使用由 clang 產生的 .d 檔案,來裁剪傳遞至 objc 編譯作業的輸入集合。
標記:changes_inputs
、loading_and_analysis
--[no]process_headers_in_dependencies
預設值:「false」-
建構目標 //a:a 時,請處理 //a:a 依附的所有目標中的標頭 (如果工具鍊啟用了標頭處理功能)。
標記:execution
--[no]trim_test_configuration
預設值:「true」-
啟用後,系統會將測試相關選項清除至版本頂層下方的內容。啟用此標記後,測試就無法建構為非測試規則的依附元件,但變更測試相關選項不會導致非測試規則重新分析。
標記:loading_and_analysis
、loses_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 標記的簡寫名稱。它會將單一鍵/值組合 (格式為「<鍵>=<值>」) 做為引數。
標記: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_outputs
、incompatible_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_outputs
、incompatible_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_analysis
、affects_outputs
、incompatible_change
--[no]incompatible_use_python_toolchains
預設值:「true」-
如果設為 true,可執行的原生 Python 規則將使用 Python 工具鍊指定的 Python 執行階段,而非舊版旗標 (例如 --python_top) 指定的執行階段。
標記:loading_and_analysis
、incompatible_change
--python_version=<PY2 or PY3>
預設值:請參閱說明-
Python 主要版本模式,可以是「PY2」或「PY3」。請注意,「py_binary」和「py_test」目標會遭到覆寫 (即使未明確指定版本),因此通常沒有太多理由提供這個旗標。
標記:loading_and_analysis
、affects_outputs
- 其他選項 (不屬於其他類別):
--[no]cache_test_results
[-t
] 預設值:「auto」- 如果設為「auto」,Bazel 只會在下列情況中重新執行測試:(1) Bazel 偵測到測試或其依附元件中的變更;(2) 將測試標示為外部,(3) 透過 --runs_per_test 或(4) 測試先前失敗,要求多次執行測試。如果設為「yes」,Bazel 會快取所有測試結果,除了標示為外部的測試以外。如果設為「no」,Bazel 就不會快取任何測試結果。
--[no]experimental_cancel_concurrent_tests
預設值:「false」-
如果為 true,Blaze 會在第一次成功執行時取消同時執行的測試。只有在搭配 --runs_per_test_detects_flakes 時才有用。
標記:affects_outputs
、loading_and_analysis
--[no]experimental_fetch_all_coverage_outputs
預設值:「false」-
如果為 true,Bazel 會在執行涵蓋率時,為每項測試擷取整個涵蓋率資料目錄。
標記:affects_outputs
、loading_and_analysis
--[no]experimental_generate_llvm_lcov
預設值:「false」-
如果設為 True,clang 的涵蓋率就會產生 LCOV 報表。
標記:affects_outputs
、loading_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_analysis
、incompatible_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_outputs
、loading_and_analysis
--proto_toolchain_for_cc=<a build target label>
預設值:"@bazel_tools//tools/proto:cc_toolchain"-
proto_lang_toolchain() 的標籤,說明如何編譯 C++ 原型
標記:affects_outputs
、loading_and_analysis
--proto_toolchain_for_j2objc=<a build target label>
預設值:"@bazel_tools//tools/j2objc:j2objc_proto_toolchain"-
proto_lang_toolchain() 標籤,用於說明如何編譯 j2objc proto
標記:affects_outputs
、loading_and_analysis
--proto_toolchain_for_java=<a build target label>
預設值:"@bazel_tools//tools/proto:java_toolchain"-
proto_lang_toolchain() 的標籤,說明如何編譯 Java 原型檔
標記:affects_outputs
、loading_and_analysis
--proto_toolchain_for_javalite=<a build target label>
預設值:"@bazel_tools//tools/proto:javalite_toolchain"-
proto_lang_toolchain() 標籤,用於說明如何編譯 JavaLite protos
標記:affects_outputs
、loading_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: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 屬性,則只使用區塊劃分策略。「已停用」表示不使用測試資料分割。使用「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
--[no]experimental_repository_cache_hardlinks
預設值:「false」-
如果已設定,存放區快取會在快取命中時建立檔案的硬連結,而不是複製檔案。這麼做是為了節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer>
預設值:「0」-
重試下載錯誤的次數上限。如果設為 0,則會停用重試。
標記:experimental
--experimental_scale_timeouts=<a double>
預設值:「1.0」-
以這個係數縮放 Starlark 存放區規則中的所有逾時時間。這樣一來,就能在不變更原始碼的情況下,在比規則編寫速度更慢的機器上運作外部存放區
標記:bazel_internal_configuration
、experimental
--[no]incompatible_disable_native_repo_rules
預設值:「false」-
如果設為 false,則可在 WORKSPACE 中使用原生存放區規則;否則,必須改用 Starlark 存放區規則。原生存放區規則包括 local_repository、new_local_repository、local_config_platform、android_sdk_repository 和 android_ndk_repository。
標記: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」-
如果遠端執行在建構作業 (至少執行一次) 中加快執行速度,本機執行作業應延遲多少毫秒?
標記:execution
、host_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,...]
標記:execution
、host_machine_resource_optimizations
--dynamic_remote_strategy=<a '[name=]value1[,..,valueN]' assignment>
累積多次使用-
針對指定助憶法使用的遠端策略,依序列出。系統會使用第一個適用的策略。如果未提供助憶法,系統會使用策略清單做為所有助憶法的備用選項。預設的備用清單為 `remote`,因此通常不需要明確設定這個旗標。採用 [mnemonic=]remote_strategy[,remote_strategy,...]
標記:execution
、host_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」-
如果啟用,系統會在使用 Docker 映像檔前,將目前使用者的 uid 和 gid 插入 Docker 映像檔。如果您的建構 / 測試作業需要使用者在容器中擁有名稱和主目錄,則必須執行此操作。這項功能預設為開啟,但如果自動圖片自訂功能無法正常運作,或您不想使用這項功能,可以將其停用。
標記:execution
--[no]experimental_dynamic_exclude_tools
預設值:「true」-
如果已設定,則建構「for tool」的目標就不會受到動態執行的影響。這類目標極不可能以漸進方式建構,因此不值得花費本機週期。
標記:execution
、host_machine_resource_optimizations
--experimental_dynamic_local_load_factor=<a double>
預設值:「0」-
控管動態執行作業的負載量,以便將其放到本機電腦上。這個標記會調整我們在動態執行作業中同時排定的動作數量。這項值取決於 Blaze 認為可用的 CPU 數量,您可以使用 --local_cpu_resources 標記控制這項值。如果此標記為 0,所有動作都會立即在本機排程。如果 > 0,本機排定的動作數量會受限於可用的 CPU 數量。如果 < 1,當等待排程的動作數量偏高時,系統會使用負載因子減少在本機排定的動作數量。這樣在簡潔的建構案例中降低本機電腦的負載,因為本機電腦上的負載不多。
標記:execution
、host_machine_resource_optimizations
--experimental_dynamic_slow_remote_time=<An immutable length of time.>
預設值:「0」-
如果 > 0,則動態執行動作必須先以遠端方式執行,我們才能將優先順序給予本地執行作業,以免發生遠端逾時。這可能會隱藏遠端執行系統的部分問題。請勿在未監控遠端執行問題的情況下開啟這項功能。
標記:execution
、host_machine_resource_optimizations
--[no]experimental_enable_docker_sandbox
預設值:「false」-
啟用以 Docker 為基礎的沙箱機制。如果未安裝 Docker,這個選項不會產生任何作用。
標記:execution
--[no]experimental_inmemory_sandbox_stashes
預設值:「false」-
如果設為 true,系統會在記憶體中追蹤重用_sandbox_directories 的暫存沙箱內容。這麼做可減少重複使用時所需的 I/O 量。視建構作業而定,這個標記可能會改善實際時間。視版本而定,這個標記可能會使用大量額外記憶體。
標記:host_machine_resource_optimizations
、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_optimizations
、execution
--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」-
啟用後,如果工作站的記憶體壓力偏高,即可縮減工作站集區。這個旗標只有在啟用 experimental_total_worker_memory_limit_mb 旗標時才會生效。
標記:execution
、host_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」-
如果這個上限大於零的閒置工作站,當所有工作站的記憶體總用量超過限制時,系統可能會終止該工作站。
標記:execution
、host_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_optimizations
、execution
--[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>
預設:查看說明-
如果非空白,則僅允許搭配指定工作站金鑰記憶使用永久工作站。
標記:execution
、host_machine_resource_optimizations
--[no]experimental_worker_as_resource
預設值:「true」-
免人工管理,我們很快就會移除。
標記:no_op
--[no]experimental_worker_cancellation
預設值:「false」-
如果啟用,Bazel 可能會向支援的 worker 傳送取消要求。
標記: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` 搭配使用,這可能會導致建構作業異常終止。
標記:execution
、host_machine_resource_optimizations
--experimental_worker_metrics_poll_interval=<An immutable length of time.>
預設:「5 秒」-
收集工作站指標和可能會嘗試撤銷狀態的間隔時間。基於效能考量,實際上不得少於 1 秒。
標記:execution
、host_machine_resource_optimizations
--[no]experimental_worker_multiplex_sandboxing
預設值:「false」-
如果啟用,多重工作者將會進行沙箱處理,並為每個工作要求使用個別的沙箱目錄。只有符合「supports-multiplex-sandboxing」執行要求的 worker 才會進行沙箱處理。
標記:execution
--[no]experimental_worker_sandbox_hardening
預設值:「false」-
如果啟用這項功能,系統會在實作允許的情況下,在強化的沙箱中執行 worker。
標記:execution
--[no]experimental_worker_strict_flagfiles
預設值:「false」-
如果啟用這項功能,如果 worker 的動作引數不符合 worker 規格,就會發生錯誤。工作站引數必須有一個 @flagfile 引數,做為引數清單的最後一個引數。
標記:execution
--gc_thrashing_threshold=<an integer in 0-100 range>
預設值:「100」-
高於 (0-100) 的持久空間佔用空間百分比 (0-100)。GcThrashingDetector 會根據本身的上限 (--gc_thrashing_limits) 將記憶體壓力事件納入考量。如果設為 100,系統就會停用 GcThrashingDetector。
標記:host_machine_resource_optimizations
--genrule_strategy=<comma-separated list of options>
預設值:""-
指定執行 genrules 的方式。這個標記將逐步淘汰。請改用 --spawn_strategy=<value> 來控制所有動作,或使用 --strategy=Genrule=<value> 來控制 genrule。
標記:execution
- 累積
--high_priority_workers=<a string>
次多次使用 -
無操作,即將移除。
標記:execution
--[no]incompatible_remote_dangling_symlinks
預設值:「true」-
如果設為 true,系統就會允許將上傳至遠端或磁碟快取的符號連結懸掛。
標記:execution
、incompatible_change
--[no]incompatible_remote_symlinks
預設值:「true」-
如果設為 true,Bazel 一律會將符號連結上傳到遠端或磁碟快取。否則,系統會將非懸空相對符號連結 (以及僅限這些連結) 上傳為所指向的檔案或目錄。
標記:execution
、incompatible_change
--[no]incompatible_sandbox_hermetic_tmp
預設值:「true」-
如果設為 true,每個 Linux 沙箱都會有專屬的空目錄,並掛載為 /tmp,而不是與主機檔案系統共用 /tmp。使用 --sandbox_add_mount_pair=/tmp 可在所有沙箱中繼續查看主機的 /tmp。
標記:execution
--[no]internal_spawn_scheduler
預設值:「false」-
預留位置選項,以便我們在 Blaze 中判斷是否已啟用產生調度器。
標記:execution
、host_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_optimizations
、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
--[no]reuse_sandbox_directories
預設值:「true」-
如果設為 true,沙箱非 worker 執行作業所使用的目錄可能會重複使用,以避免不必要的設定成本。
標記:host_machine_resource_optimizations
、execution
--sandbox_base=<a string>
預設值:""-
讓沙箱在這個路徑下建立沙箱目錄。在 tmpfs (例如 /run/shm) 上指定路徑,可能會在建構 / 測試包含許多輸入檔案時,大幅提升效能。注意:您需要在 tmpfs 中保留足夠的 RAM 和可用空間,才能容納執行動作所產生的輸出和中繼檔案。
標記:host_machine_resource_optimizations
、execution
--[no]sandbox_explicit_pseudoterminal
預設值:「false」-
明確啟用為沙箱動作建立偽終端機的功能。部分 Linux 發行版需要將程序的群組 ID 設為「tty」,才能讓虛擬終結函式正常運作。如果因此造成問題,您可以停用這個標記以啟用其他群組。
標記:execution
- 累積
--sandbox_tmpfs_path=<an absolute path>
次多次使用 -
對於沙箱動作,請在這個絕對路徑中掛接可寫入的空目錄 (如果沙箱實作支援,否則會忽略)。
標記:host_machine_resource_optimizations
、execution
--[no]skip_incompatible_explicit_targets
預設值:「false」-
略過指令列中明確列出的不相容目標。根據預設,建構這類目標會導致錯誤,但啟用此選項時,系統會自動略過這些目標。請參閱:https://bazel.build/extending/platforms#skipping-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 設定的值 (如果與 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 之外,會傳遞至 worker 程序的額外指令標記,以助憶法為索引 (例如 --worker_extra_flag=Javac=--debug)。
標記:execution
、host_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],為每個助憶法提供不同的值。限制取決於 worker 鍵,這些鍵會根據助憶法和啟動旗標和環境進行區分,因此在某些情況下,每個助憶法可能會有比此旗標指定的更多 worker。可接受整數或關鍵字 (「auto」、「HOST_CPUS」、「HOST_RAM」),後面可選擇加上運算符號 ([-|*]<浮點>),例如「auto」、「HOST_CPUS*.5」等。系統會根據機器容量計算「自動」的合理預設值。「=value」會為未指定的助憶法設定預設值。
標記:execution
、host_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」),後面可選擇加上運算符號 ([-|*]<浮點>),例如「auto」、「HOST_CPUS*.5」等。「auto」會根據機器容量計算合理的預設值。「=value」會設定未指定的記憶法的預設值。
標記:execution
、host_machine_resource_optimizations
--[no]worker_multiplex
預設值:「true」-
啟用後,工作站會在支援多工處理的情況下使用多工處理功能。
標記:execution
、host_machine_resource_optimizations
--[no]worker_quit_after_build
預設值:「false」-
如果啟用,則在建構完成後,所有 worker 都會結束。
標記:execution
、host_machine_resource_optimizations
--[no]worker_sandboxing
預設值:「false」-
啟用後,工作站會在沙箱環境中執行。
標記:execution
--[no]worker_verbose
預設值:「false」- 啟用後,系統會在工作站啟動時顯示詳細訊息。
- 設定用於執行動作的工具鍊選項:
--target_platform_fallback=<a string>
預設值:「」-
這個選項已淘汰,不會產生任何作用。
標記:affects_outputs
、changes_inputs
、loading_and_analysis
- 控制指令輸出的選項:
--[no]build
預設值:「true」-
執行建構作業,這是一般行為。指定 --nobuild 會在執行建構動作前停止建構,並在套件載入和分析階段成功完成時傳回零;這個模式可用於測試這些階段。
標記:execution
、affects_outputs
--[no]experimental_use_validation_aspect
預設值:「false」-
是否要使用切面執行驗證動作 (以便與測試並行)。
標記:execution
、affects_outputs
--output_groups=<comma-separated list of options>
累積多次使用-
以半形逗號分隔的輸出群組名稱清單,每個名稱的前置字串可選為 + 或 -。前置字串為 + 的群組會加入預設的輸出群組集,而前置字串為 - 的群組會從預設集中移除。如果至少有一個群組未加上前置字串,則會略過預設的輸出群組組合。例如,--output_groups=+foo,+bar 會建立預設集合、foo 和 bar 的聯集;--output_groups=foo,bar 會覆寫預設集合,只建構 foo 和 bar。
標記:execution
、affects_outputs
--[no]run_validations
預設值:「true」-
是否要在建構期間執行驗證動作。請參閱 https://bazel.build/extending/rules#validation_actions
標記:execution
、affects_outputs
- 選項可讓使用者設定預期輸出內容,影響其值,而非其存在:
--aspects=<comma-separated list of options>
累積多次使用- 要套用至頂層目標的元素清單 (以半形逗號分隔)。如果清單中的某個層面 (some_aspect) 透過 required_aspect_providers 指定必要的層面供應商,則系統會在清單中先前提到的每個層面 (如果廣告供應商符合某個層面的必要層面供應商) 之後執行某個層面。此外,some_aspect 會在所有由 requires 屬性指定的必要面向執行後執行。接著,some_aspect 就能存取這些面向提供者的值。<bzl-file-label>%<aspect_name>,例如「//tools:my_def.bzl%my_aspect」,其中「my_aspect」是檔案工具/my_def.bzl 中的頂層值
--bep_maximum_open_remote_upload_files=<an integer>
預設:「-1」-
BEP 構件上傳期間允許開啟的檔案數量上限。
標記:affects_outputs
--[no]experimental_convenience_symlinks
預設值:「normal」-
這個標記可控管便利快捷連結 (在建構後顯示於工作區中的快捷連結) 的管理方式。可能的值:
normal (預設):系統會根據建構作業決定是否建立或刪除每種便利捷連結。clean:系統會無條件刪除所有符號連結。ignore:不會處理符號連結。log_only:產生記錄訊息,就像「正常」傳遞一樣,但實際上不會執行任何檔案系統作業 (適用於工具)。請注意,只有名稱是由 --symlink_prefix 目前值產生的符號連結會受到影響;如果前置字串變更,則任何現有的符號連結都不會受到影響。
標記:affects_outputs
--[no]experimental_convenience_symlinks_bep_event
預設值:「false」-
這個標記可控制是否要將已識別的事件「eventConvenienceSymlinks」發布至 BuildEventProtocol。如果值為 true,BuildEventProtocol 將有一個方便您識別便利性 Symlinks 的項目,並列出工作區中建立的所有便利符號連結。如果為 false,BuildEventProtocol 中的 convenienceSymlinksIdentified 項目會為空白。
標記: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>
預設值:「toplevel」-
如果設為「最小」,則不會將任何遠端建構輸出內容下載到本機電腦,但本機動作所需的輸出內容除外。如果設為「toplevel」,則會像「minimal」一樣運作,但會將頂層目標的輸出內容下載到本機。如果網路頻寬是瓶頸,這兩個選項都可以大幅縮短建構時間。
標記:affects_outputs
--remote_download_symlink_template=<a string>
預設值:""-
請勿將遠端建構輸出內容下載到本機電腦,而是建立符號連結。可以使用範本字串的形式,指定符號連結的目標。這個範本字串可能包含 {hash} 和 {size_bytes},分別會展開為物件的雜湊和以位元組為單位的大小。例如,這些符號連結可能會指向 FUSE 檔案系統,該系統會視需要從 CAS 載入物件。
標記:affects_outputs
--remote_download_toplevel
-
只會將頂層目標的遠端輸出內容下載到本機。這個旗標是 --remote_download_outputs=toplevel 的別名。
展開為:
--remote_download_outputs=toplevel
標記:affects_outputs
--symlink_prefix=<a string>
預設值:請參閱說明-
在建構後建立的任何便利捷徑前方加上的前置字串。如果省略此欄位,預設值為建構工具名稱,後面加上連字號。如果傳遞「/」,系統就不會建立符號連結,也不會發出警告。警告:'/' 的特殊功能即將淘汰,請改用 --experimental_convenience_symlinks=ignore。
標記:affects_outputs
- 影響 Bazel 強制執行有效建構輸入內容 (規則定義、標記組合等) 的方式:
--[no]experimental_docker_privileged
預設值:「false」-
如果啟用,Bazel 會在執行動作時,將 --privileged 標記傳遞至「docker run」。您的建構作業可能需要這麼做,但這也可能導致密封性降低。
標記:execution
--[no]experimental_sandboxfs_map_symlink_targets
預設值:「false」-
免人工管理
標記:host_machine_resource_optimizations
、execution
--[no]incompatible_legacy_local_fallback
預設值:「false」-
如果設為 true,則會啟用從沙箱到本機策略的舊版隱含備用機制。這個標記最終會預設為 false,然後變成無操作。請改用 --strategy、--spawn_strategy 或 --dynamic_local_strategy 設定備用方案。
標記:execution
、incompatible_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」-
如要使用沙箱動作,請將目前的使用者名稱變更為「nobody」。
標記: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_analysis
、incompatible_change
--[no]incompatible_enforce_config_setting_visibility
預設值:「true」-
如果為 true,系統會強制執行 config_setting 曝光度限制。如果為 false,則每個目標都能看到每個 config_setting。請參閱 https://github.com/bazelbuild/bazel/issues/12932。
標記:loading_and_analysis
、incompatible_change
- 用於控管測試環境或測試執行工具行為的選項:
--[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 次的所有測試。如果是「預設」,則系統只會為一般測試執行一次測試,而為規則明確標示為不穩定的測試執行三次測試 (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 底下的測試除外) 重複執行三次,以便排除問題。這個選項可以多次傳遞。系統會優先採用最近傳遞且相符的引數。如果沒有任何相符項目,行為就會如上述的「預設」一樣。
標記: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」),後面可選擇加上運算符號 ([-|*]<浮點>),例如「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」環境變數定義允許的變形版本。您可以使用關鍵字「all」(不建議) 停用這項檢查。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off>
預設值:「error」-
檢查 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`。請注意,如果不是根模組,系統一律會忽略 MODULE.bazel 中的這些開發依附元件,無論此旗標的值為何。
標記:loading_and_analysis
--lockfile_mode=<off, update, refresh or error>
預設值:「update」-
指定是否使用 Lockfile 以及是否要使用。有效值包括 `update` (使用鎖定檔案,並在有變更時更新)、`refresh` (不時從遠端登錄重新整理可變更資訊 (已撤銷的版本和先前遺漏的模組))、`error` (使用鎖定檔案,但如果檔案未更新就會擲回錯誤) 或 `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
--gc_thrashing_limits=<comma separated pairs of <period>:<count>>
預設:「1s:2,20s:3,1m:5」-
如果達到此限制,就會導致 GcThrashingDetector 因 OOM 而導致 Bazel 當機。每個限制都會以 <period>:<count> 的格式指定,其中 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」,後面可選擇接收 [-|*]<浮點數> (例如 HOST_CPUS*.5 會使用一半的可用 CPU 核心)。根據預設 (「HOST_CPUS」),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」,並可選擇後接 [-|*]<浮點數> (例如 HOST_RAM*.5 會使用一半的可用 RAM)。根據預設 (「HOST_RAM*.67」),Bazel 會查詢系統設定,估算可用的 RAM 容量,並使用其中的 67%。
標記: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,並可選擇接續 [-|*]<浮點值> (例如 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 輾轉造成的實際時間影響,在以下情形發生時,GC 輾轉現象:(i) 由此暫時狀態的記憶體用量造成,以及 (ii) 成本會高於在需要時重組狀態。
標記:host_machine_resource_optimizations
- 影響記錄詳細程度、格式或位置的選項:
--[no]debug_spawn_scheduler
預設值:「false」--[no]experimental_bep_target_summary
預設值:「false」- 指出是否發布 TargetSummary 事件。
--[no]experimental_build_event_expand_filesets
預設值:「false」-
如果為 true,則在呈現輸出檔案時,會在 BEP 中展開 Fileset。
標記:affects_outputs
--[no]experimental_build_event_fully_resolve_fileset_symlinks
預設值:「false」-
如果設為 true,在呈現輸出檔案時,BEP 會完全解析相對檔案集符號連結。需要使用 --experimental_build_event_expand_filesets。
標記:affects_outputs
--experimental_build_event_upload_max_retries=<an integer>
預設值:「4」-
Bazel 重試上傳建構事件的次數上限。
標記:bazel_internal_configuration
--experimental_build_event_upload_retry_minimum_delay=<An immutable length of time.>
預設值:「1 秒」-
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 Flight Recorder 設定檔。必須將支援的其中一個剖析事件類型 (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
--[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 整合時所需的欄位。
標記: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_runner
、terminal_output
、execution
--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` (只在失敗時列印)、`success` (只在成功時列印) 和 `all` (一律列印)。
標記:terminal_output
--[no]sandbox_debug
預設值:「false」-
啟用沙箱功能的偵錯功能。這包括兩件事:首先,沙箱根目錄內容在建構後不會受到影響;其次,執行時會顯示額外的偵錯資訊。這有助於 Bazel 或 Starlark 規則的開發人員,解決因缺少輸入檔案而導致的偵錯失敗問題。
標記:terminal_output
--show_result=<an integer>
預設值:「1」-
顯示建構結果。針對每個目標,指出是否已更新,如果是,則列出已建構的輸出檔案。這些輸出的檔案是方便的字串,可複製並貼到 Shell 中執行。這個選項需要整數引數,也就是目標的閾值數量,超過這個數量就不會列印結果資訊。因此,零會導致訊息遭到抑制,而 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」-
指定所需的輸出模式。有效值包括「summary」(僅輸出測試狀態摘要)、「errors」(同時列印失敗測試的測試記錄)、「all」(列印所有測試的記錄) 和「streamed」(即時輸出所有測試的記錄)。請注意,這會強制在本機執行測試,且不論 --test_strategy 值為何,都會一次執行一項測試。
標記:test_runner
、terminal_output
、execution
--test_summary=<short, terse, detailed, none or testcase>
預設值:「短」-
指定所需的測試摘要格式。有效值包括「short」(僅列印執行的測試資訊)、「terse」(僅列印執行的失敗測試資訊)、「detailed」(列印失敗測試案例的詳細資訊)、「testcase」(列印測試案例解決方案摘要,但不列印失敗測試案例的詳細資訊) 和「none」(省略摘要)。
標記: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」是 --aspects 清單中某個面向的參數,或清單中某個面向所需的參數。這個選項可以多次使用。不過,您無法為同一個參數指派多個值。
標記: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>
預設值:請參閱說明-
指定斷路器使用的策略。可用的策略為「failure」。選項的無效值會與未設定選項的行為相同。
標記:execution
--experimental_downloader_config=<a string>
預設:查看說明- 指定要用來設定遠端下載器的檔案。這個檔案包含幾行內容,每個行的開頭都是「allow」、「block」或「rewrite」指令,後面加上主機名稱 (「allow」和「block」) 或兩個模式,一個用於比對,另一個則做為替代網址使用,並從「$1」開始傳回多個「重寫」指令。同個網址可能會傳回多個「重寫」指令,這樣就會傳回多個網址。
--[no]experimental_guard_against_concurrent_changes
預設值:「false」- 關閉這項設定即可停用執行動作的輸入檔案 Ctime 檢查功能,再將動作上傳至遠端快取。在某些情況下,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 會定期將「Find MissingBlobs」呼叫傳送至遠端快取,在建構期間延長遠端動作的輸出租約。頻率取決於 `--experimental_remote_cache_ttl` 的值。
--experimental_remote_cache_ttl=<An immutable length of time.>
預設值:「3h」-
最近參照了 ActionResult 或 Find MissingBlobs 這類動作,在遠端快取中 blob 的保證最短存留時間 (TTL)。Bazel 會根據 blob 的 TTL 執行多項最佳化作業,例如不會在漸進式建構作業中重複呼叫 GetActionResult。這個值應設為略低於實際的 TTL,因為伺服器傳回摘要與 Bazel 收到摘要之間存在時間差。
標記:execution
--experimental_remote_capture_corrupted_outputs=<a path>
預設值:請參閱說明- 要擷取損毀輸出內容的目錄路徑。
--[no]experimental_remote_discard_merkle_trees
預設值:「false」- 如果設為 true,系統會在呼叫 GetActionResult() 和 Execute() 時,捨棄輸入根目錄的 Merkle 樹狀結構和相關輸入對應項目的記憶體副本。這麼做可大幅減少記憶體使用量,但需要在遠端快取遺漏和重試時,由 Bazel 重新計算這些項目。
--experimental_remote_downloader=<a string>
預設值:請參閱說明- Remote Asset API 端點 URI,用於做為遠端下載 Proxy。支援的結構定義為 grpc、grpcs (已啟用 TLS 的 grpc) 和 unix (本機 UNIX 通訊端)。如未提供結構定義,Bazel 會預設使用 grpcs。請參閱: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 秒」-
計算遠端要求失敗率的間隔。如果值為 0,則系統會計算執行期間的完整時間長度。可使用以下單位:天 (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 會預設使用 grpcs。指定 grpc:// 或 unix: 結構定義,以停用 TLS。
--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」,系統就不會使用 worker 執行緒,且 repo 擷取作業會在重新啟動時執行。否則,請使用虛擬工作者執行緒。
--[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,當快取錯誤 (包括快取淘汰) 導致建構失敗時,Bazel 會使用新的結束代碼 39 而非 34。
標記:incompatible_change
--[no]remote_accept_cached
預設值:「true」- 是否接受遠端快取的動作結果。
--remote_build_event_upload=<all or minimal>
預設值:「minimal」- 如果設為「all」,BEP 參照的所有本機輸出內容都會上傳到遠端快取。 如果設為「minimal」,BEP 參照的本機輸出不會上傳至遠端快取,除非是 BEP 消費者的重要檔案 (例如測試記錄和時間設定檔)。即使遠端快取遺漏檔案,系統仍會將 bytestream:// scheme 用於檔案 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 會預設為使用 grpcs。指定 grpc://、http:// 或 unix: 結構定義,即可停用 TLS。請參閱 https://bazel.build/remote/caching
--[no]remote_cache_compression
預設值:「false」- 啟用後,在大小至少為 --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>
預設值:""- 如果執行平台尚未設定 remote_execution_properties,請設定要為遠端執行 API 設定的預設平台屬性。如果主機平台已選為遠端執行的執行平台,系統也會使用這個值。
- 累積
--remote_download_regex=<a valid Java regular expression>
次多次使用 -
強制下載路徑符合這個模式的遠端建構輸出內容 (無論 --remote_download_outputs)。您可以重複使用這個旗標來指定多個模式。
標記:affects_outputs
--remote_downloader_header=<a 'name=value' assignment>
累積多次使用- 指定要納入遠端下載器要求的標頭:--remote_downloader_header=名稱=值。您可以多次指定標記,藉此傳遞多個標頭。同一個名稱的多個值會轉換成以半形逗號分隔的清單。
--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 (gRPC,已啟用 TLS) 和 Unix (本機 UNIX 通訊端)。如果未提供結構定義,Bazel 會預設為使用 grpcs。指定 grpc:// 或 unix: 結構定義,以停用 TLS。
--remote_grpc_log=<a path>
預設值:請參閱說明- 如果指定,則為記錄 gRPC 呼叫相關詳細資料的檔案路徑。此記錄包含序列化的 com.google.devtools.build.lib.remote.logging.RemoteExecutionLog.LogEntry protobuf,每則訊息的前置字串為 varint,表示下一個序列化 protobuf 訊息的大小,如 LogEntry.writeDelimitedTo(OutputStream) 方法所執行。
- 累積
--remote_header=<a 'name=value' assignment>
次多次使用 - 指定要納入要求的標頭:--remote_header=名稱=值。只要多次指定旗標,即可傳遞多個標頭。同一個名稱的多個值會轉換成以半形逗號分隔的清單。
--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 網域 Socket (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>
預設值:「none」- 如果未指定 --output_filter,系統會使用這個選項的值自動建立篩選器。允許的值為「none」(不篩選 / 顯示所有值)、「all」(篩選全部 / 不顯示任何內容)、「packages」(包含 Blaze 指令列中所列套件中規則的輸出) 以及「subpackages」(例如「packages」,但包含子套件)。對於「packages」和「subpackages」值,系統會將 //java/foo 和 //javatests/foo 視為一個套件。
--[no]build_manual_tests
預設值:「false」- 強制建構標記為「手動」的測試目標。系統不會處理「手動」測試。這個選項會強制建構 (但不會執行)。
--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>
預設值:「none」- 指定所需的累積涵蓋率報表類型。目前僅支援 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 原型檔,並儲存在這個檔案中。建議使用 --execution_log_compact_file,這個檔案的製作規模也十分小且成本較低。相關標記:--execution_log_compact_file (精簡格式;互斥)、--execution_log_json_file (文字 JSON 格式;互斥)、--execution_log_sort (是否要排序執行記錄)、--subcommands (用於在終端機輸出內容中顯示子指令)。
--execution_log_compact_file=<a path>
預設值:請參閱說明- 根據 src/main/protobuf/spawn.proto 的說明,將執行的產生事件記錄為長度分隔的 ExecLogEntry 原型檔,並儲存在這個檔案中。整個檔案都會經過 zstd 壓縮。相關旗標:--execution_log_binary_file (二進位 protobuf 格式;互斥)、--execution_log_json_file (文字 JSON 格式;可互斥)、--sub 指令 (用於在終端機輸出中顯示子指令)。
--execution_log_json_file=<a path>
預設值:請參閱說明- 根據 src/main/protobuf/spawn.proto,將執行後產生的結果記錄為 SpawnExec 原型的 JSON 表示法 (以換行符號分隔)。建議使用 --execution_log_compact_file,因為產生的檔案大小較小,產生成本也較低。相關標記:--execution_log_compact_file (精簡格式;互斥)、--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_disk_cache_gc_idle_delay=<An immutable length of time.>
預設值:「5m」- 伺服器必須閒置多久,系統才會開始收集磁碟快取。如要指定垃圾收集政策,請設定 --experimental_disk_cache_gc_max_size 和/或 --experimental_disk_cache_gc_max_age。
--experimental_disk_cache_gc_max_age=<An immutable length of time.>
預設值:「0」- 如果設為正值,系統會定期垃圾收集磁碟快取,以移除早於這個時間的項目。如果與 --experimental_disk_cache_gc_max_size 一併設定,會同時套用這兩個條件。伺服器閒置後,系統會根據 --experimental_disk_cache_gc_idle_delay 標記,在背景執行垃圾收集作業。
--experimental_disk_cache_gc_max_size=<a size in bytes, optionally followed by a K, M, G or T multiplier>
預設值:「0」- 如果設為正值,系統會定期執行垃圾收集作業,確保磁碟快取大小不超過這個值。如果與 --experimental_disk_cache_gc_max_age 搭配使用,系統會套用這兩項條件。伺服器閒置後,在背景中執行垃圾收集作業 (由 --experimental_disk_cache_gc_idle_delay 標記決定)。
--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 會在本機和遠端產生每項動作,並挑選最先完成的動作。如果動作支援工作站,本機動作就會以持續工作站模式執行。如要為個別動作助憶碼啟用動態執行功能,請改用 `--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
--[no]experimental_inprocess_symlink_creation
預設值:「false」-
是否要發出直接檔案系統呼叫來建立符號連結樹狀結構
標記:loading_and_analysis
、execution
、experimental
--[no]experimental_persistent_aar_extractor
預設值:「false」-
使用工作站啟用永久 AAR 擷取器。
標記:execution
--[no]experimental_remotable_source_manifests
預設值:「false」-
指出是否要讓來源資訊清單動作能回到這個頁面
標記:loading_and_analysis
、execution
、experimental
--[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,請另外使用信號量來限制並行工作的數量。
標記:host_machine_resource_optimizations
、execution
--genrule_strategy=<comma-separated list of options>
預設值:""-
指定執行 genrules 的方式。這項標記將逐步停用。請改用 --spawn_strategy=<value> 來控制所有動作,或使用 --strategy=Genrule=<value> 只控制 genrule。
標記:execution
--[no]incompatible_disallow_unsound_directory_outputs
預設值:「true」-
如有設定,則動作將輸出檔案具體化為目錄會發生錯誤。不會影響來源目錄。詳情請參閱 https://github.com/bazelbuild/bazel/issues/18646。
標記:bazel_internal_configuration
、incompatible_change
--[no]incompatible_modify_execution_info_additive
預設值:「false」-
啟用後,傳遞多個 --modify_execution_info 標記屬於累加性質。停用時,系統只會考量最後一個標記。
標記:execution
、affects_outputs
、loading_and_analysis
、incompatible_change
--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」),後面可選擇加上運算符號 ([-|*]<浮點>),例如「auto」、「HOST_CPUS*.5」等。值必須介於 1 至 5,000 之間。值超過 2500 可能會導致記憶體問題。「auto」會根據主機資源計算合理的預設值。
標記:host_machine_resource_optimizations
、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' 會將 'requires-x' 新增至所有 Genrule 動作的執行資訊。'(?!Genrule).*=-requires-x' 會從所有非 Genrule 動作的執行資訊中移除 'requires-x'。
標記:execution
、affects_outputs
、loading_and_analysis
--persistent_android_dex_desugar
-
使用工作者啟用持續性的 Android dex 和 desugar 動作。
展開為:
--internal_persistent_android_dex_desugar
--strategy=Desugar=worker
--strategy=DexBuilder=worker
標記:host_machine_resource_optimizations
、execution
--persistent_android_resource_processor
-
使用 worker 啟用持續性 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=Aapt2Optimize=worker
--strategy=AARGenerator=worker
--strategy=ProcessDatabinding=worker
--strategy=GenerateDataBindingBaseClasses=worker
標記:host_machine_resource_optimizations
、execution
--persistent_multiplex_android_dex_desugar
-
使用 worker 啟用持續性的多重 Android dex 和 desugar 動作。
展開為:
--persistent_android_dex_desugar
--internal_persistent_multiplex_android_dex_desugar
標記:host_machine_resource_optimizations
、execution
--persistent_multiplex_android_resource_processor
-
使用 worker 啟用持續性的多重 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
{14/7}
{14/5}
{14/5}
{14/5}
--modify_execution_info=AaptPackage=+supports-multiplex-workers
--modify_execution_info=AndroidResourceParser=+supports-multiplex-workers
--modify_execution_info=AndroidResourceValidator=+supports-multiplex-workers
--modify_execution_info=Aapt2Optimize=+supports-multiplex-workers
--modify_execution_info=AARGenerator=+supports-multiplex-workers
host_machine_resource_optimizations
execution
--persistent_multiplex_android_tools
-
啟用持續性和多重化的 Android 工具 (dexing、desugaring、資源處理)。
展開為:
--internal_persistent_multiplex_busybox_tools
--persistent_multiplex_android_resource_processor
--persistent_multiplex_android_dex_desugar
標記:host_machine_resource_optimizations
、execution
--[no]skip_incompatible_explicit_targets
預設值:「false」-
略過指令列中明確列出的不相容目標。根據預設,建立這類目標會導致錯誤,但啟用這個選項時,系統會略過這些目標,不發出通知。請參閱:https://bazel.build/extending/platforms#skipping-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 設定的值 (如果與 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_outputs
、loading_and_analysis
、loses_incremental_state
--android_crosstool_top=<a build target label>
預設值:「//external:android/crosstool」-
用於 Android 建構的 C++ 編譯器位置。
標記:affects_outputs
、changes_inputs
、loading_and_analysis
、loses_incremental_state
--android_grte_top=<a label>
預設值:請參閱說明-
Android 目標 grte_top。
標記:changes_inputs
、loading_and_analysis
、loses_incremental_state
--android_manifest_merger=<legacy, android or force_android>
預設值:「android」-
選取要用於 android_binary 規則的資訊清單合併工具。旗標,可協助從舊版合併工具轉換至 Android 資訊清單合併工具。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
--android_platforms=<a build target label>
預設值:""-
設定 android_binary 目標使用的平台。如果指定多個平台,則二進位檔會是笨重的 APK,其中含有每個指定目標平台的原生二進位檔。
標記:changes_inputs
、loading_and_analysis
、loses_incremental_state
--android_sdk=<a build target label>
預設:"@bazel_tools//tools/android:sdk"-
指定用於建構 Android 應用程式的 Android SDK/平台。
標記:changes_inputs
、loading_and_analysis
、loses_incremental_state
--apple_crosstool_top=<a build target label>
預設值:"@bazel_tools//tools/cpp:toolchain"-
在 Apple 和 Objc 規則及其依附元件中使用的 crosstool 套件標籤。
標記:loses_incremental_state
、changes_inputs
--cc_output_directory_tag=<a string>
預設值:""-
指定要加入設定目錄的後置字串。
標記:affects_outputs
--compiler=<a string>
預設:查看說明- 用於編譯目標的 C++ 編譯器。
標記:loading_and_analysis
、execution
--coverage_output_generator=<a build target label>
預設值:「@bazel_tools//tools/test:lcov_merger」-
用於後處理原始涵蓋率報表的二進位檔位置。這個檔案群組目前必須包含單一檔案 (二進位檔)。預設值為 '//tools/test:lcov_merger'。
標記:changes_inputs
、affects_outputs
、loading_and_analysis
--coverage_report_generator=<a build target label>
預設值:"@bazel_tools//tools/test:coverage_report_generator"-
用於產生涵蓋率報表的二進位檔位置。這個檔案群組目前必須包含單一檔案 (二進位檔)。預設值為 '//tools/test:coverage_report_generator'。
標記:changes_inputs
、affects_outputs
、loading_and_analysis
--coverage_support=<a build target label>
預設值:"@bazel_tools//tools/test:coverage_support"-
收集程式碼涵蓋率的每個測試動作中,所需的支援檔案位置。預設為 '//tools/test:coverage_support'。
標記:changes_inputs
、affects_outputs
、loading_and_analysis
--crosstool_top=<a build target label>
預設值:"@bazel_tools//tools/cpp:toolchain"-
用於編譯 C++ 程式碼的 crosstool 套件標籤。
標記:loading_and_analysis
、changes_inputs
、affects_outputs
--custom_malloc=<a build target label>
預設值:請參閱說明- 指定自訂 malloc 實作項目。這項設定會覆寫建構規則中的 Malloc 屬性。
標記:changes_inputs
、affects_outputs
--experimental_add_exec_constraints_to_targets=<a '<RegexFilter>=<label1>[,<label2>,...]' assignment>
累積多次使用-
以逗號分隔的規則運算式清單,每個運算式可選擇加上前置字元 - (負值運算式),並將 (=) 指派給以逗號分隔的限制值目標清單。如果目標沒有符合的排除運算式,且至少有一個正運算式的一個正向運算式便會執行工具鍊解析,就像將限制值宣告為執行限制條件一樣。範例://demo,-test=@platforms//cpus:x86_64 會將「x86_64」新增至 //demo 下的任何目標,但名稱含有「test」的目標除外。
標記:loading_and_analysis
--[no]experimental_include_xcode_execution_requirements
預設值:「false」-
如果已設定,請在每個 Xcode 動作中新增「requires-xcode:{version}」執行需求。如果 xcode 版本有連字號標籤,請一併新增「requires-xcode-label:{version_label}」執行要求。
標記:loses_incremental_state
、loading_and_analysis
、execution
--[no]experimental_prefer_mutual_xcode
預設值:「true」-
如果為 true,請使用在本機和遠端都可用的最新 Xcode。如果為 false,或沒有可用的共同版本,請使用透過 xcode-select 所選的本機 Xcode 版本。
標記:loses_incremental_state
--extra_execution_platforms=<comma-separated list of options>
預設值:""-
可做為執行平台來執行動作的平台。您可以使用精確目標或目標模式來指定平台。系統會先考慮這些平台,再考慮由 register_execution_platforms() 在 WORKSPACE 檔案中宣告的平台。這個選項只能設定一次;後續的例項會覆寫先前的標記設定。
標記:execution
--extra_toolchains=<comma-separated list of options>
累積多次使用-
工具鍊解析期間要考量的工具鍊規則。您可以使用確切目標或目標模式指定工具鍊。系統會先考慮這些工具鍊,再考慮 WORKSPACE 檔案中透過 register_toolchains() 宣告的工具鍊。
標記:affects_outputs
、changes_inputs
、loading_and_analysis
--grte_top=<a label>
預設值:請參閱說明-
已檢查的 libc 程式庫的標籤。預設值是由跨工具工具鍊選取,您幾乎不需要覆寫該值。
標記:action_command_lines
、affects_outputs
--host_compiler=<a string>
預設值:請參閱說明-
用於主機編譯作業的 C++ 編譯器。如果未設定 --host_crosstool_top,系統會忽略這個屬性。
標記:loading_and_analysis
、execution
--host_crosstool_top=<a build target label>
預設:查看說明-
根據預設,--crosstool_top 和 --compiler 選項也會用於執行設定。如果提供這個標記,Bazel 會為指定的 crosstool_top 使用預設的 libc 和編譯器。
標記:loading_and_analysis
、changes_inputs
、affects_outputs
--host_grte_top=<a label>
預設:查看說明-
如果指定此值,這項設定會覆寫執行設定的 libc 頂層目錄 (--grte_top)。
標記:action_command_lines
、affects_outputs
--host_platform=<a build target label>
預設值:"@bazel_tools//tools:host_platform"-
平台規則的標籤,用於說明主機系統。
標記:affects_outputs
、changes_inputs
、loading_and_analysis
--[no]incompatible_dont_enable_host_nonhost_crosstool_features
預設值:「true」-
如果設為 true,Bazel 就不會在 c++ 工具鍊中啟用「host」和「nonhost」功能 (詳情請參閱 https://github.com/bazelbuild/bazel/issues/7407)。
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_enable_android_toolchain_resolution
預設值:「true」-
使用工具鍊解析來選取 Android 規則 (Starlark 和原生) 的 Android SDK
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_enable_apple_toolchain_resolution
預設值:「false」-
使用工具鍊解析度選取 Apple SDK for apple 規則 (Starlark 和 native)
代碼:loading_and_analysis
、incompatible_change
--[no]incompatible_make_thinlto_command_lines_standalone
預設值:「true」-
如果設為 true,Bazel 就不會在 Lto 索引指令列中重複使用 C++ 連結動作指令列 (詳情請參閱 https://github.com/bazelbuild/bazel/issues/6791)。
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_remove_legacy_whole_archive
預設值:「true」-
如果為 true,Bazel 預設不會將程式庫依附元件連結為整個封存檔 (如需遷移操作說明,請參閱 https://github.com/bazelbuild/bazel/issues/7362)。
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_require_ctx_in_configure_features
預設值:「true」-
如果為 true,Bazel 在 cc_common.configure_features 中才會有「ctx」參數 (詳情請參閱 https://github.com/bazelbuild/bazel/issues/7793)。
標記:loading_and_analysis
、incompatible_change
-
如果工具鍊支援,請使用介面共用物件。所有 ELF 工具鍊目前都支援這項設定。
標記:loading_and_analysis
、affects_outputs
、affects_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_analysis
、affects_outputs
--platform_mappings=<a relative path>
預設值:""-
對應檔案的位置,可說明在未設定任何平台時要使用的平台,或在已存在平台時要設定的旗標。必須相對於主要工作區根目錄。預設值為「platform_mappings」(工作區根目錄下方的檔案)。
標記:affects_outputs
、changes_inputs
、loading_and_analysis
--platforms=<a build target label>
預設值:""-
平台規則的標籤,說明目前指令的目標平台。
標記:affects_outputs
、changes_inputs
、loading_and_analysis
--python2_path=<a string>
預設值:請參閱說明-
已淘汰,免人工管理。已由「--incompatible_use_python_toolchains」停用。
標記:no_op
、deprecated
--python3_path=<a string>
預設值:請參閱說明- 已淘汰,無操作。已由 `--incompatible_use_python_toolchains` 停用。
標記:no_op
、deprecated
--python_path=<a string>
預設值:請參閱說明-
在目標平台上執行 Python 目標時,系統會叫用 Python 解譯器的絕對路徑。已淘汰;由 --incompatible_use_python_toolchains 停用。
標記:loading_and_analysis
、affects_outputs
--python_top=<a build target label>
預設:查看說明-
py_runtime 的標籤,代表在目標平台上執行 Python 目標時所叫用的 Python 轉譯器。已淘汰;已由 --incompatible_use_python_toolchains 停用。
標記:loading_and_analysis
、affects_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 SDK 版本,用於建構 watchOS 應用程式。如未指定,系統會使用「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_config 規則的標籤,用於在建構設定中選取 Xcode 版本。
標記:loses_incremental_state
、loading_and_analysis
- 控制指令輸出的選項:
--[no]apple_generate_dsym
預設值:「false」-
是否產生偵錯符號 (.dSYM) 檔案。
標記:affects_outputs
、action_command_lines
--[no]build
預設值:「true」-
執行建構作業,這是一般行為。指定 --nobuild 會在執行建構動作之前停止建構作業,如果成功完成套件載入和分析階段,則傳回零;這個模式對於測試這些階段非常實用。
標記:execution
、affects_outputs
--[no]build_runfile_links
預設值:「true」-
如果為 true,系統會針對所有目標建構執行檔案符號連結樹系。如果為 false,則只有在本機動作、測試或執行指令要求時,才會寫入。
標記:affects_outputs
--[no]build_runfile_manifests
預設值:「true」-
如果為 true,則為所有目標寫入 runfiles 資訊清單。如果是 false,請省略。如果為 false,本機測試就會無法執行。
標記:affects_outputs
--[no]build_test_dwp
預設值:「false」-
如果啟用這項政策,當您以靜態方式建構 C++ 測試時,系統也會自動建構測試二進位檔的 .dwp 檔案。
標記:loading_and_analysis
、affects_outputs
--cc_proto_library_header_suffixes=<comma-separated set of options>
預設值:".pb.h"-
設定 cc_proto_library 建立的標頭檔案後置字串。
標記:affects_outputs
、loading_and_analysis
--cc_proto_library_source_suffixes=<comma-separated set of options>
預設值:「.pb.cc」-
設定 cc_proto_library 所建立來源檔案的後置字串。
標記:affects_outputs
、loading_and_analysis
--[no]experimental_proto_descriptor_sets_include_source_info
預設值:「false」-
針對 proto_library 中的其他 Java API 版本執行額外動作。
標記:affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_proto_extra_actions
預設值:「false」-
針對 proto_library 中的其他 Java API 版本執行額外動作。
標記:affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_save_feature_state
預設值:「false」-
將已啟用和要求的功能狀態儲存為編譯的輸出內容。
標記:affects_outputs
、experimental
--[no]experimental_use_validation_aspect
預設值:「false」-
是否要使用切面執行驗證動作 (用於測試的平行處理)。
標記:execution
、affects_outputs
--fission=<a set of compilation modes>
預設值:「no」-
指定哪些編譯模式會在 C++ 編譯和連結時使用分裂。可為 {'fastbuild', 'dbg', 'opt'} 或特殊值的任意組合,其中 'yes'可啟用所有模式,'no'可停用所有模式。
標記:loading_and_analysis
、action_command_lines
、affects_outputs
--[no]incompatible_always_include_files_in_data
預設值:「true」-
如果設為 true,原生規則會將資料依附元件的 <code>DefaultInfo.files</code> 新增至執行檔案,以符合 Starlark 規則的建議行為 (https://bazel.build/extending/rules#runfiles_features_to_avoid)。
標記:affects_outputs
、incompatible_change
--[no]legacy_external_runfiles
預設值:「true」-
如果為 true,除了 .runfiles/repo 之外,系統會為 .runfiles/wsname/external/repo 下的外部存放區建構執行檔案符號樹系。
標記:affects_outputs
--[no]objc_generate_linkmap
預設值:「false」-
指定是否要產生連結圖檔案。
標記:affects_outputs
--output_groups=<comma-separated list of options>
累積多次使用-
以半形逗號分隔的輸出群組名稱清單,每個名稱的前置字串可選為 + 或 -。前置 + 的群組會加入預設的輸出群組集,而前置 - 的群組會從預設集移除。如果至少有一個群組未加上前置字串,則會略過預設的輸出群組組合。例如,--output_groups=+foo,+bar 會建立預設集合、foo 和 bar 的聯集;--output_groups=foo,bar 會覆寫預設集合,只建構 foo 和 bar。
標記:execution
、affects_outputs
--[no]run_validations
預設值:「true」-
是否要在建構期間執行驗證動作。請參閱 https://bazel.build/extending/rules#validation_actions
標記:execution
、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>
累積多次使用-
指定可供含有目標設定的動作使用的一組環境變數。變數可以透過名稱指定,在這種情況下,系統會從叫用環境取得值;也可以透過名稱=值組合指定,在這種情況下,系統會設定不受叫用環境影響的值。這個選項可以重複使用;如果是針對同一個變數提供的選項,則以最新的選項為準;如果是針對不同變數提供的選項,則會累加。
標記:action_command_lines
--android_cpu=<a string>
預設:「armeabi-v7a」-
Android 目標 CPU。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
--[no]android_databinding_use_androidx
預設值:「true」-
產生與 AndroidX 相容的資料繫結檔案。僅供資料繫結 v2 使用。這個標記是無操作。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]android_databinding_use_v3_4_args
預設值:「true」-
使用 Android Databinding v2 和 3.4.0 引數。這個標記不會執行任何操作。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--android_dynamic_mode=<off, default or fully>
預設值:「off」-
決定在 cc_binary 未明確建立共用程式庫時,是否要動態連結 Android 規則的 C++ 依附元件。「預設」表示 Bazel 會選擇是否要動態連結。「fully」表示所有程式庫都會動態連結。「off」表示所有程式庫都會以靜態模式連結。
標記:affects_outputs
、loading_and_analysis
--android_manifest_merger_order=<alphabetical, alphabetical_by_configuration or dependency>
預設值:「alphabetical」-
設定傳遞至 Android 二進位檔資訊清單合併工具的資訊清單順序。ALPHABETICAL 表示資訊清單會依據相對於執行根目錄的路徑排序。ALPHABETICAL_BY_CONFIGURATION 表示資訊清單會根據輸出目錄中的設定目錄相關路徑排序。DEPENDENCY 表示資訊清單會依序排列,每個程式庫的資訊清單會排在其依附元件的資訊清單之前。
標記:action_command_lines
、execution
--[no]android_resource_shrinking
預設值:「false」-
為使用 ProGuard 的 android_binary APK 啟用資源縮減功能。
標記:affects_outputs
、loading_and_analysis
--aspects=<comma-separated list of options>
累積多次使用- 以逗號分隔的清單,列出要套用至頂層目標的面向。如果清單中的某個層面 (some_aspect) 透過 required_aspect_providers 指定必要的層面供應商,則系統會在清單中先前提到的每個層面 (如果廣告供應商符合某個層面的必要層面供應商) 之後執行某個層面。此外,some_aspect 會在所有由 requires 屬性指定的必要面向執行後執行。接著,some_aspect 就能存取這些面向提供者的值。<bzl-file-label>%<aspect_name>,例如「//tools:my_def.bzl%my_aspect」,其中「my_aspect」是檔案工具/my_def.bzl 中的頂層值
--[no]build_python_zip
預設值:「auto」-
建構 Python 可執行的 zip 檔案;在 Windows 上開啟,在其他平台上關閉
標記:affects_outputs
--catalyst_cpus=<comma-separated list of options>
累積多次使用-
以半形逗號分隔的清單,列出要為其建構 Apple Catalyst 二進位檔的架構。
標記:loses_incremental_state
、loading_and_analysis
--[no]collect_code_coverage
預設值:「false」-
如有指定,Bazel 會檢測程式碼 (盡可能使用離線檢測功能),並在測試期間收集涵蓋率資訊。只有符合 --instrumentation_filter 的目標才會受到影響。通常不應直接指定這個選項,而應改用「bazel coverage」指令。
標記:affects_outputs
--compilation_mode=<fastbuild, dbg or opt>
[-c
] 預設值:「Fastbuild」-
指定要建構二進位檔的模式。值:'fastbuild'、'dbg'、'opt'。
標記:affects_outputs
、action_command_lines
- 累積
--conlyopt=<a string>
次多次使用 -
編譯 C 來源檔案時,要傳遞至 gcc 的其他選項。
標記:action_command_lines
、affects_outputs
--copt=<a string>
累積多次使用-
傳遞至 gcc 的其他選項。
標記:action_command_lines
、affects_outputs
--cpu=<a string>
預設值:""-
目標 CPU。
標記:changes_inputs
、affects_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_lines
、affects_outputs
--define=<a 'name=value' assignment>
累積多次使用-
每個 --define 選項都會指定建構變數的指派作業。
標記:changes_inputs
、affects_outputs
--dynamic_mode=<off, default or fully>
預設值:"default"-
決定是否動態連結 C++ 二進位檔。「default」表示 Bazel 會選擇是否要動態連結。「fully」表示所有程式庫都會動態連結。「off」表示所有程式庫都會以靜態模式連結。
標記:loading_and_analysis
、affects_outputs
--[no]enable_fdo_profile_absolute_path
預設值:「true」-
如果設為此值,使用 fdo_absolute_profile_path 會引發錯誤。
標記:affects_outputs
--[no]enable_runfiles
預設值:「auto」-
啟用 runfiles 符號連結樹狀結構;預設情況下,Windows 和其他平台都會關閉。
標記:affects_outputs
--experimental_action_listener=<a build target label>
累積多次使用-
已淘汰,並改用切面。使用 action_listener 將 extra_action 附加至現有的建構動作。
標記:execution
、experimental
--[no]experimental_android_compress_java_resources
預設值:「false」-
壓縮 APK 中的 Java 資源
標記:affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_android_databinding_v2
預設值:「true」-
使用 Android Databinding v2。這個標記為免人工管理。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]experimental_android_resource_shrinking
預設值:「false」-
為使用 ProGuard 的 android_binary APK 啟用資源縮減功能。
標記:affects_outputs
、loading_and_analysis
--[no]experimental_android_rewrite_dexes_with_rex
預設值:「false」-
使用 rex 工具重寫 dex 檔案
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]experimental_collect_code_coverage_for_generated_files
預設值:「false」-
如有指定,Bazel 也會針對產生的檔案收集涵蓋率資訊。
標記:affects_outputs
--[no]experimental_convenience_symlinks
預設值:「正常」-
這個標記可控管便利快捷連結 (在建構後顯示於工作區中的快捷連結) 的管理方式。可能的值:normal (預設值):系統會根據建構決定建立或刪除每種便利的符號連結。clean:系統會無條件刪除所有符號連結。ignore:不會處理符號連結。log_only:產生記錄訊息,就像「正常」傳遞一樣,但實際上不會執行任何檔案系統作業 (適用於工具)。請注意,只有名稱是由 --symlink_prefix 目前值產生的符號連結會受到影響;如果前置字串變更,則任何現有的符號連結都不會受到影響。
標記:affects_outputs
--[no]experimental_convenience_symlinks_bep_event
預設值:「false」-
這個旗標會控管是否要將 build eventConvenienceSymlinksIdentified 發布至 BuildEventProtocol。如果值為 true,BuildEventProtocol 就會包含方便性符號連結已識別的項目,列出工作區中建立的所有方便性符號連結。如果為 false,BuildEventProtocol 中的 easySymlinksIdentified 項目將為空白。
標記: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 和 -fasynchronous-unwind-tables 進行編譯。
標記:action_command_lines
、affects_outputs
、experimental
--experimental_output_paths=<off, content or strip>
預設值:「停用」-
在輸出樹狀結構規則寫入輸出內容時,應使用哪個模型,特別適用於多平台 / 多設定版本。這項功能仍在實驗階段,詳情請參閱 https://github.com/bazelbuild/bazel/issues/6526。Starlark 動作可以選擇啟用路徑對應功能,方法是將「supports-path-mapping」鍵新增至「execution_requirements」字典。
標記:loses_incremental_state
、bazel_internal_configuration
、affects_outputs
、execution
--experimental_override_name_platform_in_output_dir=<a 'label=value' assignment>
累積多次使用-
每個項目都應採用 label=value 的格式,其中 label 是指平台,而 value 是輸出路徑中要使用的所需簡稱。僅在 --experimental_platform_in_output_dir 為 true 時使用。命名優先順序最高。
標記:affects_outputs
、experimental
--[no]experimental_platform_in_output_dir
預設值:「false」-
如果為 true,輸出目錄名稱會使用目標平台的短名稱,而非 CPU。具體的配置為實驗性質,可能會變更:首先,在極少數情況下,如果 --platforms 選項不含確切的一個值,系統會使用 platforms 選項的雜湊值。接著,如果目前平台的任何簡稱都已透過 --experimental_override_name_platform_in_output_dir 註冊,系統就會使用該簡稱。接著,如果已設定 --experimental_use_platforms_in_output_dir_legacy_heuristic,請使用目前平台標籤的短名稱。最後,平台選項的雜湊是在不得已的情況下使用。
標記:affects_outputs
、experimental
--[no]experimental_use_llvm_covmap
預設值:「false」-
如果指定此選項,在啟用 collect_code_coverage 時,Bazel 會產生 llvm-cov 涵蓋範圍對應資訊,而非 gcov。
標記:changes_inputs
、affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_use_platforms_in_output_dir_legacy_heuristic
預設值:「true」-
請僅在建議的遷移或測試策略中使用這個標記。請注意,經驗法則已知有缺陷,建議您遷移並只依賴 --experimental_override_name_platform_in_output_dir。
標記:affects_outputs
、experimental
--fat_apk_cpu=<comma-separated set of options>
預設:「armeabi-v7a」-
設定這個選項會啟用笨重的 APK,其中包含所有指定目標架構的原生二進位檔,例如 --fat_apk_cpu=x86,armeabi-v7a. 如果指定這個旗標,系統就會忽略 android_binary 規則的依附元件中的 --android_cpu。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
--[no]fat_apk_hwasan
預設值:「false」-
是否要建立 HWASAN 分割項目。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
--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_inputs
、affects_outputs
--[no]force_pic
預設值:「false」-
如果啟用,所有 C++ 編譯作業都會產生位置無關的程式碼 ("-fPIC"),連結會優先使用 PIC 預先建構的程式庫,而非非 PIC 程式庫,且連結會產生位置無關的可執行檔 ("-pie")。
標記:loading_and_analysis
、affects_outputs
- 累積
--host_action_env=<a 'name=value' assignment with an optional value part>
次多次使用 -
指定執行作業設定可用的環境變數組合。您可以使用名稱指定變數,在這種情況下,系統會從叫用環境取得值;也可以使用名稱=值組合,設定不受叫用環境影響的值。這個選項可多次使用;對於相同變數所提供的選項、最新的勝出結果,以及累積不同變數的選項。
標記:action_command_lines
--host_compilation_mode=<fastbuild, dbg or opt>
預設值:「opt」-
指定在建構期間使用的工具將以何種模式建構。值:'fastbuild'、'dbg'、'opt'。
標記:affects_outputs
、action_command_lines
--host_conlyopt=<a string>
累積多次使用-
在執行設定中編譯 C (但非 C++) 來源檔案時,要傳遞至 C 編譯器的其他選項。
標記:action_command_lines
、affects_outputs
--host_copt=<a string>
累積多次使用-
為執行設定中建構的工具,傳遞至 C 編譯器的其他選項。
標記:action_command_lines
、affects_outputs
--host_cpu=<a string>
預設值:""-
主機 CPU。
標記:changes_inputs
、affects_outputs
--host_cxxopt=<a string>
累積多次使用-
針對在執行設定中建構的工具,傳遞至 C++ 編譯器的其他選項。
標記:action_command_lines
、affects_outputs
--host_features=<a string>
累積多次使用-
對於在執行設定中建構的目標,系統會依預設啟用或停用指定功能。指定 -<feature> 會停用該功能。排除功能一律會覆寫正數。
標記:changes_inputs
、affects_outputs
--host_force_python=<PY2 or PY3>
預設值:請參閱說明-
覆寫 exec 設定的 Python 版本。可以是「PY2」或「PY3」。
標記:loading_and_analysis
、affects_outputs
--host_linkopt=<a string>
累積多次使用-
在執行設定中連結工具時,要傳遞至連結器的其他選項。
標記:action_command_lines
、affects_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@選項_1,選項_2,...,選項_n。其中 regex_filter 代表包含和排除的規則運算式模式清單 (另請參閱 --instrumentation_filter)。option_1 到 option_n 代表任意指令列選項。如果選項包含半形逗號,則必須在半形逗號前後加上反斜線。選項可以包含 @。只有第一個 @ 會用來分割字串。範例:--host_per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 會將 -O0 指令列選項新增至 //foo/ 中所有 cc 檔案 (除了 bar.cc) 的 gcc 指令列。
標記:action_command_lines
、affects_outputs
--host_swiftcopt=<a string>
累積多次使用-
傳遞給執行工具的 swiftc 的其他選項。
標記:action_command_lines
、affects_outputs
--[no]incompatible_auto_exec_groups
預設值:「false」-
啟用後,系統會為規則使用的每個工具鍊自動建立執行群組。為使這項規則運作,您需要在其動作中指定「toolchain」參數。如需更多資訊,請參閱 https://github.com/bazelbuild/bazel/issues/17134。
標記:affects_outputs
、incompatible_change
--[no]incompatible_merge_genfiles_directory
預設值:「true」-
如果設為 true,系統會將 genfiles 目錄折疊至 bin 目錄。
標記:affects_outputs
、incompatible_change
--[no]incompatible_use_host_features
預設值:「true」-
如果為 true,請只將 --features 用於目標設定,並將 --host_features 用於執行設定。
標記:changes_inputs
、affects_outputs
、incompatible_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_state
、loading_and_analysis
--[no]legacy_whole_archive
預設值:「true」-
已淘汰,已由 --incompatible_remove_legacy_whole_archive 取代 (詳情請參閱 https://github.com/bazelbuild/bazel/issues/7362)。開啟後,請針對 cc_binary 規則使用 --whole-archive,該規則的 linkopts 中必須設為 linkshared=True,並設為 linkstatic=True 或 '-static'。這項設定僅適用於回溯相容性。更好的做法是在需要時使用 alwayslink=1。
標記:action_command_lines
、affects_outputs
、deprecated
--linkopt=<a string>
累積多次使用-
連結時傳送至 gcc 的其他選項。
標記:action_command_lines
、affects_outputs
- 累積
--ltobackendopt=<a string>
次多次使用 -
傳遞至 LTO 後端步驟的其他選項 (位於 --features=thin_lto 下)。
標記:action_command_lines
、affects_outputs
- 累積
--ltoindexopt=<a string>
次多次使用 -
傳遞至 LTO 索引步驟的其他選項 (在 --features=thin_lto 下方)。
標記:action_command_lines
、affects_outputs
- 累積
--macos_cpus=<comma-separated list of options>
次多次使用 -
以逗號分隔的架構清單,用於建構 Apple macOS 二進位檔。
標記:loses_incremental_state
、loading_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」-
指出是否要在已連結的二進位檔上執行符號和無效程式碼清除作業。如果同時指定這個旗標和 --compilation_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 到 option_1 代表任意指令列選項。如果選項中包含半形逗號,就必須用反斜線加引號。選項可以包含 @。只有第一個 @ 會用來分割字串。範例:--per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 將 -O0 指令列選項新增至 //foo/ 中所有 cc 檔案的 gcc 指令列選項 ( bar.cc 除外)。
標記:action_command_lines
、affects_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@選項_1,選項_2,...,選項_n。其中 regex_filter 代表包含和排除規則運算式模式的清單。 options_1 到 option_n 代表任意指令列選項。如果選項包含半形逗號,則必須在半形逗號前後加上反斜線。選項可以包含 @。只有第一個 @ 會用來分割字串。範例:--per_file_ltobackendopt=//foo/.*\.o,-//foo/bar\.o@-O0 會將 -O0 指令列選項新增至 //foo/ 中所有 o 檔案 (除了 bar.o) 的 LTO 後端指令列。
標記:action_command_lines
、affects_outputs
--platform_suffix=<a string>
預設值:請參閱說明-
指定要新增至設定目錄的後置字串。
標記:loses_incremental_state
、affects_outputs
、loading_and_analysis
--propeller_optimize=<a build target label>
預設值:請參閱說明-
使用 Propeller 設定檔資訊來改善建構目標。Propeller 設定檔至少必須包含以下兩個檔案之一:cc 設定檔和 ld 設定檔。這個標記可接受建構標籤,但該標籤必須參照螺旋槳設定檔輸入檔案。舉例來說,定義標籤的 BUILD 檔案,在 a/b/BUILD:propeller_optimize( name = "propeller_profile", cc_profile = "propeller_cc_profile.txt", ld_profile = "propeller_ld_profile.txt",) 中,您可能必須在對應的套件中加入 exports_files 指示詞,才能讓 Bazel 看到這些檔案。這個選項必須以以下方式使用:--propeller_optimize=//a/b:propeller_profile
標記:action_command_lines
、affects_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
-
如果為 true,含有相同功能的原生程式庫會在不同目標之間共用
標記:loading_and_analysis
、affects_outputs
--[no]stamp
預設值:「false」-
在二進位檔上蓋上日期、使用者名稱、主機名稱、工作區資訊等資訊。
標記:affects_outputs
--strip=<always, sometimes or never>
預設值:「sometimes」-
用於指定是否要移除二進位檔和共用程式庫 (使用「-Wl,--strip-debug」)。預設值為「sometimes」表示如果 --compilation_mode=fastbuild,則會移除。
標記:affects_outputs
- 累積
--stripopt=<a string>
次多次使用 - 產生 '<name>.stripped' 二進位檔時,要傳遞至 strip 的其他選項。
標記:action_command_lines
、affects_outputs
--swiftcopt=<a string>
累積多次使用-
傳遞至 Swift 編譯的其他選項。
標記:action_command_lines
--symlink_prefix=<a string>
預設值:請參閱說明-
在建構後建立的任何便利符號連結前面的前置字串。如果省略此欄位,預設值為建構工具名稱,後面加上連字號。如果傳遞「/」,系統就不會建立符號連結,也不會發出警告。警告:'/' 的特殊功能即將淘汰,請改用 --experimental_convenience_symlinks=ignore。
標記:affects_outputs
--tvos_cpus=<comma-separated list of options>
累積多次使用-
以半形逗號分隔的架構清單,用於建構 Apple tvOS 二進位檔。
標記:loses_incremental_state
、loading_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_state
、loading_and_analysis
--watchos_cpus=<comma-separated list of options>
累積多次使用-
以半形逗號分隔的架構清單,用於建構 Apple watchOS 二進位檔。
標記:loses_incremental_state
、loading_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>
預設值:""-
宣告環境_group,用於自動將 cpu 值對應至 target_environment 值。
標記:changes_inputs
、loading_and_analysis
、experimental
--[no]check_licenses
預設值:「false」-
請確認依附套件強制執行的授權限制,不會與建構目標的發布模式衝突。根據預設,系統不會檢查授權。
標記:build_file_semantics
--[no]check_visibility
預設值:「true」-
如果停用,目標依附元件中的顯示錯誤會降級為警告。
標記:build_file_semantics
--[no]desugar_for_android
預設值:「true」-
是否要在進行 dex 前脫糖 Java 8 位元碼。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
--[no]desugar_java8_libs
預設值:「false」-
是否要在舊版裝置的應用程式中加入支援的 Java 8 程式庫。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]enforce_constraints
預設值:「true」-
檢查每個目標的相容環境,如果任何目標的依附元件不支援相同的環境,就會回報錯誤
標記:build_file_semantics
--[no]experimental_check_desugar_deps
預設值:「true」-
是否要在 Android 二進位檔層級再次檢查正確的脫糖程序。
標記:eagerness_to_exit
、loading_and_analysis
、experimental
--experimental_import_deps_checking=<off, warning or error>
預設值:「OFF」-
啟用後,系統會檢查 aar_import 的依附元件是否完整。這項強制執行措施可能會導致建構作業中斷,或只會產生警告。
標記:loading_and_analysis
--experimental_one_version_enforcement=<off, warning or error>
預設值:「OFF」-
啟用後,您可以強制規定 java_binary 規則在類別路徑中不得含有相同類別檔案的多個版本。這項強制執行措施可能會導致建構作業中斷,或只會產生警告。
標記:loading_and_analysis
--experimental_strict_java_deps=<off, warn, error, strict or default>
預設值:"default"-
如果為 true,系統會檢查 Java 目標是否明確將所有直接使用的目標宣告為依附元件。
標記:build_file_semantics
、eagerness_to_exit
--[no]incompatible_check_testonly_for_output_files
預設值:「false」-
如果啟用,請查詢產生規則的 testonly,檢查 testonly 是否為輸出檔案的必要條件目標。這項設定與可見度檢查相符。
標記:build_file_semantics
、incompatible_change
--[no]incompatible_check_visibility_for_toolchains
預設值:「false」-
如果已啟用,可視性檢查也會套用至工具鍊實作。
標記:build_file_semantics
、incompatible_change
--[no]incompatible_disable_native_android_rules
預設值:「false」-
啟用後,系統會停用直接使用原生 Android 規則。請使用 https://github.com/bazelbuild/rules_android 中的 Starlark Android 規則
標記:eagerness_to_exit
、incompatible_change
--[no]incompatible_disable_native_apple_binary_rule
預設值:「false」-
無操作。為回溯相容性而保留。
標記:eagerness_to_exit
、incompatible_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_analysis
、incompatible_change
--[no]incompatible_validate_top_level_header_inclusions
預設值:「true」-
如果為 True,Bazel 也會驗證頂層目錄標頭的納入項目 (詳情請參閱 https://github.com/bazelbuild/bazel/issues/10047)。
標記:loading_and_analysis
、incompatible_change
--[no]one_version_enforcement_on_java_tests
預設值:「true」-
啟用此選項後,如果 experimental_one_version_enforcement 設為非 NONE 值,系統就會在 java_test 目標上強制執行一個版本。您可以停用這個標記,以便提升增量測試效能,但可能會錯過某個版本的違規項目。
標記:loading_and_analysis
--python_native_rules_allowlist=<a build target label>
預設:查看說明-
在強制執行 --incompatible_python_disallow_native_rules 時,要使用的許可清單 (package_group 目標)。
標記:loading_and_analysis
--[no]strict_filesets
預設值:「false」-
如果啟用這個選項,系統會將跨越套件邊界的檔案集回報為錯誤。
標記:build_file_semantics
、eagerness_to_exit
--strict_proto_deps=<off, warn, error, strict or default>
預設值:「error」-
除非設為 OFF,否則會檢查 proto_library 目標是否明確將所有直接使用的目標宣告為依附元件。
標記:build_file_semantics
、eagerness_to_exit
、incompatible_change
--strict_public_imports=<off, warn, error, strict or default>
預設值:「off」-
除非設為 OFF,否則會檢查 proto_library 目標是否明確宣告在「import public」中使用的所有目標為匯出目標。
標記:build_file_semantics
、eagerness_to_exit
、incompatible_change
--[no]strict_system_includes
預設值:「false」-
如果設為 true,則系統會透過系統包含路徑 (-isystem) 找到的標頭也必須宣告。
標記:loading_and_analysis
、eagerness_to_exit
- 累積
--target_environment=<a build target label>
次多次使用 -
宣告此版本的目標環境。必須是「環境」規則的標籤參照。如果指定了這個環境,則所有頂層目標都必須與這個環境相容。
標記:changes_inputs
- 影響建構簽署輸出內容的選項:
--apk_signing_method=<v1, v2, v1_v2 or v4>
預設值:「v1_v2」-
用於簽署 APK 的實作項目
標記:action_command_lines
、affects_outputs
、loading_and_analysis
--[no]device_debug_entitlements
預設值:「true」-
如果已設定,且編譯模式不是「opt」,則 objc 應用程式會在簽署時加入偵錯授權。
標記:changes_inputs
--ios_signing_cert_name=<a string>
預設:查看說明-
用於 iOS 簽署的憑證名稱。如果未設定,系統會改用佈建設定檔。根據 codesign 的 man 頁面 (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_analysis
、incompatible_change
--[no]incompatible_disallow_legacy_py_provider
預設值:「true」-
免人工管理,我們很快就會移除。
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_disallow_sdk_frameworks_attributes
預設值:「false」-
如果設為 true,就禁止在 objc_library 和 objc_import 中使用 sdk_frameworks 和 weak_sdk_frameworks 屬性。
標記:build_file_semantics
、incompatible_change
--[no]incompatible_enforce_config_setting_visibility
預設值:「true」-
如果設為 true,系統就會強制執行 config_setting 曝光度限制。如果值為 False,每個目標都能看到每個 config_setting。請參閱 https://github.com/bazelbuild/bazel/issues/12932。
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_objc_alwayslink_by_default
預設值:「false」-
如為 true,請將 objc_library 和 objc_import 中的一律連結屬性預設值設為 true。
標記:build_file_semantics
、incompatible_change
--[no]incompatible_python_disallow_native_rules
預設值:「false」-
如果為 true,使用內建 py_* 規則時會發生錯誤,而應使用規則_python 規則。詳情請參閱 https://github.com/bazelbuild/bazel/issues/17773 瞭解遷移操作說明。
標記:loading_and_analysis
、incompatible_change
- 管理測試環境或測試執行器行為的選項:
--[no]allow_analysis_failures
預設值:「false」-
如果設為 true,規則目標的分析失敗會導致目標傳播包含錯誤說明的 AnalysisFailureInfo 例項,而不會導致建構失敗。
標記:loading_and_analysis
、experimental
--analysis_testing_deps_limit=<an integer>
預設:「2000」-
透過規則屬性和 for_analysis_testing 設定轉換,設定遞移依附元件的數量上限。若超出這項限制,就會導致規則錯誤。
標記:loading_and_analysis
--[no]break_build_on_parallel_dex2oat_failure
預設值:「false」-
如果 Truex2oat 動作失敗,建構作業就會導致建構作業中斷,而不是在測試執行階段執行 dex2oat。
標記:loading_and_analysis
、experimental
--[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,並可選擇加上 [-|*]<浮點> (例如 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_analysis
、host_machine_resource_optimizations
、experimental
--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」,則系統只會對一般測試進行一次測試,以及針對規則明確標示為不穩定的測試 (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 底下的測試除外) 重複執行三次,以便排除問題。這個選項可以多次傳遞。系統會優先採用最近傳遞且相符的引數。如果沒有任何相符項目,行為就會如上述的「預設」一樣。
標記: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。其中 runs_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_filter_library_jar_with_program_jar
預設值:「false」-
篩選 ProGuard ProgramJar,移除 LibraryJar 中也存在的任何類別。
標記:action_command_lines
--[no]experimental_inmemory_dotd_files
預設值:「true」-
啟用後,C++ .d 檔案會直接從遠端建構節點在記憶體中傳遞,而不是寫入磁碟。
標記:loading_and_analysis
、execution
、affects_outputs
、experimental
--[no]experimental_inmemory_jdeps_files
預設值:「true」-
如果啟用此選項,系統會直接從遠端建構節點,透過記憶體傳遞從 Java 編譯產生的依附元件檔案 (.jdeps),而不會寫入磁碟。
標記:loading_and_analysis
、execution
、affects_outputs
、experimental
--[no]experimental_objc_include_scanning
預設值:「false」-
是否要針對目標 C/C++ 執行「包含掃描」。
標記:loading_and_analysis
、execution
、changes_inputs
--[no]experimental_retain_test_configuration_across_testonly
預設值:「false」-
啟用後,--trim_test_configuration 不會針對標示為 testonly=1 的規則裁剪測試設定。這項功能旨在減少非測試規則依賴 cc_test 規則時的動作衝突問題。如果 --trim_test_configuration 為 false,就不會產生任何影響。
標記:loading_and_analysis
、loses_incremental_state
--[no]experimental_starlark_cc_import
預設值:「false」-
如果啟用,即可使用 Starlark 版本的 cc_import。
標記:loading_and_analysis
、experimental
--[no]experimental_unsupported_and_brittle_include_scanning
預設值:「false」-
是否要透過剖析輸入檔案中的 #include 行,將輸入範圍縮小至 C/C++ 編譯。這麼做可減少編譯輸入樹狀結構大小,進而提升效能和成效增幅。不過,由於包含掃描器未完全實作 C 預處理器語意,因此也可能會導致建構作業中斷。具體來說,它無法瞭解動態 #include 指示,並會忽略預處理器條件邏輯。您必須自行承擔使用風險。我們會關閉與這個標記相關的所有已提交問題。
標記:loading_and_analysis
、execution
、changes_inputs
--[no]incremental_dexing
預設值:「true」-
大部分的工作都是分別針對各個 Jar 檔案進行 DEX 處理。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
--local_cpu_resources=<an integer, or "HOST_CPUS", optionally followed by [-|*]<float>.>
預設值:「HOST_CPUS」-
明確設定 Bazel 可用於在本機執行建構動作的本機 CPU 核心總數。會接收整數或「HOST_CPUS」,後面可選擇接上 [-|*]<浮點數> (例如 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%。
標記: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,並可選擇接續 [-|*]<浮點值> (例如 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_inputs
、loading_and_analysis
--[no]process_headers_in_dependencies
預設值:「false」-
建立目標 //a:a 時,所有 //a:a 取決於目標的作業標頭 (如果工具鍊已啟用標頭處理)。
標記:execution
--[no]trim_test_configuration
預設值:「true」-
啟用後,系統會清除版本頂層以下的測試相關選項。這個標記啟用後,系統無法將測試建構為非測試規則的依附元件,但變更測試相關選項時,系統也不會重新分析非測試規則。
標記:loading_and_analysis
、loses_incremental_state
- 影響記錄詳細程度、格式或記錄位置的選項:
--[no]experimental_bep_target_summary
預設值:「false」- 是否要發布 TargetSummary 事件。
--[no]experimental_build_event_expand_filesets
預設值:「false」-
如果為 true,則在呈現輸出檔案時,會在 BEP 中展開 Fileset。
標記:affects_outputs
--[no]experimental_build_event_fully_resolve_fileset_symlinks
預設值:「false」-
如果設為 true,在呈現輸出檔案時,BEP 會完全解析相對檔案集符號連結。需要使用 --experimental_build_event_expand_filesets。
標記:affects_outputs
--experimental_build_event_upload_max_retries=<an integer>
預設:「4」-
Bazel 重試上傳建構事件的次數上限。
標記:bazel_internal_configuration
--experimental_build_event_upload_retry_minimum_delay=<An immutable length of time.>
預設值:「1 秒」-
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
--[no]experimental_stream_log_file_uploads
預設值:「false」-
串流記錄檔會直接上傳至遠端儲存空間,不必將檔案寫入磁碟。
標記:affects_outputs
--explain=<a path>
預設:查看說明-
會讓建構系統說明建構作業的每個執行步驟。說明會寫入指定的記錄檔案。
標記:affects_outputs
--[no]legacy_important_outputs
預設值:「true」-
使用這個選項可在 TargetComplete 事件中抑制產生舊版 important_outputs 欄位。重要_輸出內容是 Bazel 與 ResultStore 整合時所需的欄位。
標記: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_runner
、terminal_output
、execution
--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」-
顯示建構結果。針對每個目標,指出是否已更新,如果是,則列出已建構的輸出檔案。這些輸出的檔案是方便的字串,可複製並貼到 Shell 中執行。這個選項需要整數引數,也就是目標的閾值數量,超過這個數量就不會列印結果資訊。因此 0 會導致系統隱抑訊息,而 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」-
指定所需的輸出模式。有效值包括「summary」(僅輸出測試狀態摘要)、「errors」(同時列印失敗測試的測試記錄)、「all」(列印所有測試的記錄) 和「streamed」(即時輸出所有測試的記錄)。請注意,這會強制在本機執行測試,且不論 --test_strategy 值為何,都會一次執行一項測試。
標記:test_runner
、terminal_output
、execution
--test_summary=<short, terse, detailed, none or testcase>
預設值:「short」-
指定所需的測試摘要格式。有效值是「短」,可顯示所執行測試的失敗資訊;「詳細」表示只會列印失敗測試的資訊;「詳細」可顯示失敗測試案例的詳細資訊;「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」是 --aspects 清單中某個面向的參數,或清單中某個面向所需的參數。這個選項可以多次使用。不過,您無法為同一個參數指派多個值。
標記: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_outputs
、incompatible_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_outputs
、incompatible_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_analysis
、affects_outputs
、incompatible_change
--[no]incompatible_use_python_toolchains
預設值:「true」-
如果設為 true,可執行的原生 Python 規則會使用 Python 工具鍊指定的 Python 執行階段,而非由 --python_top 等舊版標記提供的執行階段。
標記:loading_and_analysis
、incompatible_change
--python_version=<PY2 or PY3>
預設值:請參閱說明-
Python 主要版本模式,可選為 `PY2` 或 `PY3`。請注意,這會由 `py_binary` 和 `py_test` 目標覆寫 (即使未明確指定版本),因此通常沒有提供這個旗標的必要。
標記:loading_and_analysis
、affects_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,當快取錯誤 (包括快取淘汰) 導致建構失敗時,Bazel 會使用新的結束代碼 39 而非 34。
標記:incompatible_change
- 其他選項,未歸類於其他類別:
--[no]allow_analysis_cache_discard
預設值:「true」-
如果因建構系統變更而捨棄分析快取,將此選項設為 false 會導致 Bazel 退出,而非繼續建構。如果同時設定了「discard_analysis_cache」,這個選項並不會生效。
標記:eagerness_to_exit
--[no]build_manual_tests
預設值:「false」- 強制建構標記為「手動」的測試目標。系統會排除「手動」測試。這個選項會強制建構 (但不會執行)。
--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) 測試先前失敗。如果設為「yes」,Bazel 會快取所有測試結果,除了標示為外部的測試以外。如果設為「no」,Bazel 就不會快取任何測試結果。
--[no]compile_one_dependency
預設值:「false」- 編譯引數檔案的單一依附元件。這對於在 IDE 中檢查來源檔案的語法很有用,例如重新建構依附來源檔案的單一目標,以便在編輯/建構/測試週期中盡早偵測錯誤。這個引數會影響所有非標記引數的解讀方式,並將其視為來源檔案名稱,而非建構目標。針對每個來源檔案名稱,系統都會建構依附於該檔案的任意目標。
--deleted_packages=<comma-separated list of package names>
累積多次使用- 逗號分隔的套件名稱清單,建構系統視為不存在的套件,即使這些套件出現在套件路徑中也一樣。如要刪除現有套件「x」的子套件「x/y」,請使用這個選項。例如,在用戶端中刪除 x/y/BUILD 後,如果仍有其他 package_path 項目提供 '//x:y/z' 標籤,建構系統可能會抱怨。指定 --deleted_packages x/y 即可避免這個問題。
--[no]discard_analysis_cache
預設值:「false」- 分析階段完成後,立即捨棄分析快取。可減少約 10% 的記憶體用量,但會使後續的漸進式建構作業速度變慢。
--execution_log_binary_file=<a path>
預設值:請參閱說明- 根據 src/main/protobuf/spawn.proto 所述,將執行產生的結果記錄為以長度分隔的 SpawnExec 原型。建議使用 --execution_log_compact_file,因為產生的檔案大小和產生成本都會大幅降低。相關標記:--execution_log_compact_file (精簡格式;互斥)、--execution_log_json_file (文字 JSON 格式;互斥)、--execution_log_sort (是否要排序執行記錄)、--subcommands (用於在終端機輸出內容中顯示子指令)。
--execution_log_compact_file=<a path>
預設值:請參閱說明- 根據 src/main/protobuf/spawn.proto,將執行產生的結果記錄為以長度分隔的 ExecLogEntry 原型。整個檔案都會經過 zstd 壓縮。相關旗標:--execution_log_binary_file (二進位 protobuf 格式;互斥)、--execution_log_json_file (文字 JSON 格式;可互斥)、--sub 指令 (用於在終端機輸出中顯示子指令)。
--execution_log_json_file=<a path>
預設:查看說明- 根據 src/main/protobuf/spawn.proto 的規定,將執行的產生事件記錄到這個檔案中,做為 SpawnExec 原型結構的以換行符號分隔的 JSON 表示法。建議使用 --execution_log_compact_file,這個檔案的製作規模也十分小且成本較低。相關標記:--execution_log_compact_file (精簡格式;互斥)、--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_outputs
、loading_and_analysis
--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_outputs
、loading_and_analysis
--[no]experimental_generate_llvm_lcov
預設值:「false」-
如果設為 True,Clang 的涵蓋率將產生 LCOV 報告。
標記:affects_outputs
、loading_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 的 deps 取得。目前僅適用於 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,Bazel 會在測試執行器未指出其支援透過輕觸 TEST_SHARD_STATUS_FILE 路徑上的檔案的方式來進行資料分割測試時。如為 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_analysis
、incompatible_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>
預設值:請參閱說明- 指定用於在不分割的情況下執行解析的二進位檔。
--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_outputs
、loading_and_analysis
--proto_toolchain_for_cc=<a build target label>
預設:"@bazel_tools//tools/proto:cc_toolchain"-
proto_lang_toolchain() 的標籤,說明如何編譯 C++ 原型檔
標記:affects_outputs
、loading_and_analysis
--proto_toolchain_for_j2objc=<a build target label>
預設值:"@bazel_tools//tools/j2objc:j2objc_proto_toolchain"-
proto_lang_toolchain() 的標籤,說明如何編譯 j2objc 原型檔
標籤:affects_outputs
、loading_and_analysis
--proto_toolchain_for_java=<a build target label>
預設值:"@bazel_tools//tools/proto:java_toolchain"-
proto_lang_toolchain() 的標籤,說明如何編譯 Java 原型檔
標記:affects_outputs
、loading_and_analysis
--proto_toolchain_for_javalite=<a build target label>
預設值:"@bazel_tools//tools/proto:javalite_toolchain"-
proto_lang_toolchain() 的標籤,說明如何編譯 JavaLite 原型檔
標記:affects_outputs
、loading_and_analysis
--protocopt=<a string>
累積多次使用-
傳遞至 protobuf 編譯器的其他選項。
標記:affects_outputs
--[no]runs_per_test_detects_flakes
預設值:「false」- 如果為 true,則任何具有至少一個成功執行/嘗試,以及至少一個失敗執行/嘗試的區塊,都會獲得 FLAKY 狀態。
--shell_executable=<a path>
預設值:請參閱說明-
Shell 可執行檔的絕對路徑,供 Bazel 使用。如未設定,但 Bazel 會在第一個 Bazel 叫用 (該啟動 Bazel 伺服器) 上設定 BAZEL_SH 環境變數。如果未設定這兩者,Bazel 會根據執行的作業系統使用硬式編碼的預設路徑 (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 檔案。這會加快增量編譯作業,但錯誤訊息可能會有所不同。
Canonicalize-flags 選項
繼承 build 的所有選項。
- 會顯示在指令之前且由用戶端剖析的選項:
--distdir=<a path>
累積多次使用-
在存取網路下載封存前,可先搜尋其他位置來搜尋封存內容。
標記:bazel_internal_configuration
--[no]experimental_repository_cache_hardlinks
預設值:「false」-
如果已設定,則在快取命中時,存放區快取會強制連結檔案,而非複製。這麼做是為了節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer>
預設值:「0」-
重試下載錯誤的次數上限。如果設為 0,則會停用重試。
標記:experimental
--experimental_scale_timeouts=<a double>
預設值:「1.0」-
以這個係數縮放 Starlark 存放區規則中的所有逾時時間。如此一來,外部存放區就能在速度比規則作者預期慢的電腦上運作,而不需要變更原始碼
標記:bazel_internal_configuration
、experimental
--[no]incompatible_disable_native_repo_rules
預設值:「false」-
如果設為 false,則可在 WORKSPACE 中使用原生存放區規則;否則,必須改用 Starlark 存放區規則。原生存放區規則包括 local_repository、new_local_repository、local_config_platform、android_sdk_repository 和 android_ndk_repository。
標記: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」-
高於 (0-100) 的持久空間佔用空間百分比 (0-100)。GcThrashingDetector 會根據本身的上限 (--gc_thrashing_limits) 將記憶體壓力事件納入考量。如果設為 100,系統就會停用 GcThrashingDetector。
標記:host_machine_resource_optimizations
- 控制指令輸出內容的選項:
--[no]canonicalize_policy
預設值:「false」-
展開及篩選後,輸出標準政策。為保持輸出內容簡潔,如果將這個選項設為 true,系統就不會顯示標準化指令引數。請注意,--for_command 指定的指令會影響篩除的政策,如果未指定任何指令,預設指令為「build」。
標記:affects_outputs
、terminal_output
--[no]experimental_include_default_values
預設值:「false」-
是否將 Starlark 選項設為預設值,並納入輸出內容。
標記:affects_outputs
、terminal_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_analysis
、incompatible_change
--[no]incompatible_enforce_config_setting_visibility
預設值:「true」-
如果為 true,系統會強制執行 config_setting 瀏覽權限限制。如果為 false,則每個目標都能看到每個 config_setting。請參閱 https://github.com/bazelbuild/bazel/issues/12932。
標記:loading_and_analysis
、incompatible_change
- 與 Bzlmod 輸出和語意相關的選項:
- 累積
--allow_yanked_versions=<a string>
次多次使用 -
以 <module1>@<version1>,<module2>@<version2>` 的格式指定模組版本,系統會在解析的依附元件圖表中允許該模組版本,即使這些版本在其來源的登錄檔中宣告為客層版本 (如果不是來自 NonRegistryOverride)。否則,將導致解析失敗。您也可以使用 `BZLMOD_ALLOW_YANKED_VERSIONS` 環境變數,定義允許的撤銷版本。您可以使用「all」關鍵字停用這項檢查 (不建議)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off>
預設值:「error」-
檢查 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`。請注意,如果不是根模組,系統一律會忽略 MODULE.bazel 中的這些開發依附元件,無論此旗標的值為何。
標記:loading_and_analysis
--lockfile_mode=<off, update, refresh or error>
預設值:「更新」-
指定如何使用鎖定檔案,以及是否要使用鎖定檔案。有效值包括 `update` (使用鎖定檔案,並在有變更時更新)、`refresh` (不時從遠端登錄重新整理可變更資訊 (已撤銷的版本和先前遺漏的模組))、`error` (使用鎖定檔案,但如果檔案未更新就會擲回錯誤) 或 `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 是正整數。如果在 <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 耗損的實際時間影響,前提是 GC 耗損 (i) 是由此暫時狀態的記憶體用量所造成,且 (ii) 比在必要時重建狀態的成本還要高。
標記:host_machine_resource_optimizations
- 影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock>
預設值:請參閱說明- 記錄指令期間的 Java Flight Recorder 設定檔。必須將支援的其中一個剖析事件類型 (CPU、牆、配置或鎖定) 指定為引數。設定檔會寫入輸出基礎目錄下以事件類型命名的檔案。這個標記的語法和語意日後可能會變更,以支援其他設定檔類型或輸出格式,請自行承擔使用風險。
--[no]experimental_record_metrics_for_all_mnemonics
預設值:「false」- 根據預設,動作類型數量上限為 20 個,且只會納入執行動作次數最多的 20 個助憶法。設定這個選項會為所有助憶法寫入統計資料。
- 選項可指定或變更一般輸入內容,以便將 Bazel 指令設為不屬於其他類別:
--experimental_resolved_file_instead_of_workspace=<a string>
預設值:""-
如果非空白,則讀取指定的已解析檔案,而非 WORKSPACE 檔案
標記:changes_inputs
--for_command=<a string>
預設值:「build」-
應將選項標準化的指令。
標記:affects_outputs
、terminal_output
--invocation_policy=<a string>
預設值:「」-
將叫用政策套用至要正規化的選項。
標記:affects_outputs
、terminal_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」,系統就不會使用 worker 執行緒,且 repo 擷取作業會在重新啟動時執行。否則,請使用虛擬背景工作執行緒。
- 其他 (不含其他類別):
--deleted_packages=<comma-separated list of package names>
累積多次使用- 逗號分隔的套件名稱清單,建構系統視為不存在的套件,即使這些套件出現在套件路徑中也一樣。刪除現有套件「x」的子套件「x/y」時,請使用這個選項。舉例來說,在刪除用戶端中的 x/y/BUILD 後,如果建構系統遇到標籤「//x:y/z」,但該標籤仍由另一個 package_path 項目提供,系統可能會發出錯誤訊息。指定 --delete_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
--[no]experimental_repository_cache_hardlinks
預設值:「false」-
如果已設定,存放區快取會在快取命中時建立檔案的硬連結,而不是複製檔案。這麼做是為了節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer>
預設值:「0」-
重試下載錯誤的次數上限。如果設為 0,則會停用重試。
標記:experimental
--experimental_scale_timeouts=<a double>
預設值:「1.0」-
根據此係數調整 Starlark 存放區規則中的所有逾時值。如此一來,外部存放區就能在速度比規則作者預期慢的電腦上運作,而不需要變更原始碼
標記:bazel_internal_configuration
、experimental
--[no]incompatible_disable_native_repo_rules
預設值:「false」-
如果為 false,則可在 WORKSPACE 中使用原生存放區規則;否則,必須改用 Starlark 存放區規則。原生存放區規則包括 local_repository、new_local_repository、local_config_platform、android_sdk_repository 和 android_ndk_repository。
標記: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」-
高於 (0-100) 的持久空間佔用空間百分比 (0-100)。GcThrashingDetector 會根據本身的上限 (--gc_thrashing_limits) 將記憶體壓力事件納入考量。如果設為 100,則會停用 GcThrashingDetector。
標記:host_machine_resource_optimizations
- 控制指令輸出內容的選項:
--[no]async
預設值:「false」-
如為 true,則輸出清理作業為非同步性質。這個指令執行完成後,即使刪除作業仍可能繼續在背景執行,仍會在同一個用戶端中執行新的指令。
標記:host_machine_resource_optimizations
--[no]expunge
預設值:「false」-
如果為 true,Cleaning 會移除這個 bazel 執行個體的完整工作樹狀結構,包括 bazel 建立的所有暫存和建構輸出檔案,並在執行中的 bazel 伺服器停止執行。
標記:host_machine_resource_optimizations
--expunge_async
-
如果指定此選項,clean 會非同步移除這個 bazel 例項的整個工作樹狀結構 (包括所有由 bazel 建立的暫存檔和建構輸出檔案),並且在執行時停止 bazel 伺服器。這個指令執行完成後,即使刪除作業仍可能繼續在背景執行,仍會在同一個用戶端中執行新的指令。
延伸至:
--expunge
--async
標記:host_machine_resource_optimizations
- 與 Bzlmod 輸出和語意相關的選項:
- 累積
--allow_yanked_versions=<a string>
次多次使用 -
以 <module1>@<version1>,<module2>@<version2>` 的格式指定模組版本,系統會在解析的依附元件圖表中允許該模組版本,即使這些版本在其來源的登錄檔中宣告為客層版本 (如果不是來自 NonRegistryOverride)。否則,將導致解析失敗。您也可以使用 `BZLMOD_ALLOW_YANKED_VERSIONS` 環境變數,定義允許的撤銷版本。您可以使用「all」關鍵字停用這項檢查 (不建議)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off>
預設值:「error」-
檢查 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`。請注意,如果 MODULE.bazel 不是根模組,無論此標記的值為何,系統一律會忽略這些開發依附元件。
標記:loading_and_analysis
--lockfile_mode=<off, update, refresh or error>
預設值:「update」-
指定是否要使用鎖定檔案,以及使用方式。有效值為「update」,使用 Lockfile,並在發生變更時更新檔案,「refresh」會不時重新整理遠端註冊資料庫的可變動資訊 (yanked 版本和先前缺少的模組)、「error」使用鎖定檔案,但如果不是最新版本,則會擲回錯誤;如果皆不讀取或寫入鎖定檔案,則會擲回錯誤。
標記:loading_and_analysis
--override_module=<an equals-separated mapping of module name to 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 是正整數。如果在 <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,實際上沒有上限。零表示完整 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,實際上沒有上限。若為零,表示次要 GC 事件永遠不會觸發釋放作業。如果達到上限,當發生次要 GC 事件且超過保留堆積百分比門檻時,SkyFrame 狀態不會再遭到捨棄。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer>
預設:「85」-
標記用於 Bazel 內部 Skyframe 引擎的進階設定。如果 Bazel 偵測到保留堆積使用率至少達到此門檻,就會捨棄不必要的暫時性 Skyframe 狀態。調整這個值,或許能減輕 GC 耗損的實際時間影響,前提是 GC 耗損 (i) 是由此暫時狀態的記憶體用量所造成,且 (ii) 比在必要時重建狀態的成本還要高。
標記:host_machine_resource_optimizations
- 影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock>
預設:查看說明- 記錄指令期間的 Java Flight Recorder 設定檔。必須提供一個支援的剖析事件類型 (cpu、wall、alloc 或 lock) 做為引數。系統會將設定檔寫入輸出基礎目錄下以事件類型命名的檔案。這個旗標的語法和語意可能會在日後變更,以支援其他設定檔類型或輸出格式;請自行承擔使用風險。
--[no]experimental_record_metrics_for_all_mnemonics
預設值:「false」- 根據預設,動作類型數量上限為 20 個,且只會納入執行動作數量最多的 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」,系統就不會使用 worker 執行緒,且 repo 擷取作業會在重新啟動時執行。否則,請使用虛擬工作者執行緒。
- 其他選項,未歸類於其他類別:
- 累積
--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
--[no]experimental_repository_cache_hardlinks
預設值:「false」-
如果已設定,存放區快取會在快取命中時建立檔案的硬連結,而不是複製檔案。這麼做是為了節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer>
預設值:「0」-
重試下載錯誤的次數上限。如果設為 0,則會停用重試。
標記:experimental
--experimental_scale_timeouts=<a double>
預設值:「1.0」-
根據此係數調整 Starlark 存放區規則中的所有逾時值。如此一來,外部存放區就能在速度比規則作者預期慢的電腦上運作,而不需要變更原始碼
標記:bazel_internal_configuration
、experimental
--[no]incompatible_disable_native_repo_rules
預設值:「false」-
如果設為 false,則可在 WORKSPACE 中使用原生存放區規則;否則,必須改用 Starlark 存放區規則。原生存放區規則包括 local_repository、new_local_repository、local_config_platform、android_sdk_repository 和 android_ndk_repository。
標記:bazel_internal_configuration
--repository_cache=<a path>
預設:查看說明-
指定在擷取外部存放區時取得的已下載值的快取位置。引數要求停用快取的空字串,否則會使用預設的「<output_user_root>/cache/repos/v1」
標記:bazel_internal_configuration
--[no]repository_disable_download
預設值:「false」-
如果設為 true,則在擷取存放區時,系統不會允許使用 ctx.download{,_and_extract} 下載。請注意,網路存取權不會完全停用;ctx.execute 仍可執行會存取網際網路的任意執行檔。
代碼:bazel_internal_configuration
- 控制建構執行作業的選項:
--gc_thrashing_threshold=<an integer in 0-100 range>
預設值:「100」-
佔用已登記空間的百分比 (0-100),超過此值後,GcThrashingDetector 會根據限制 (--gc_thrashing_limits) 判斷記憶體壓力事件。如果設為 100,系統就會停用 GcThrashingDetector。
標記:host_machine_resource_optimizations
- Bzlmod 輸出和語意相關選項:
- 累積
--allow_yanked_versions=<a string>
次多次使用 -
以 `<module1>@<version1>,<module2>@<version2>` 的格式指定模組版本,即使這些版本在原始來源的登錄資料庫中已宣告為已撤銷 (如果這些版本不是來自 NonRegistryOverride),也能在解析的依附元件圖表中使用。否則,撤銷版本會導致解析失敗。您也可以使用 `BZLMOD_ALLOW_YANKED_VERSIONS` 環境變數,定義允許的撤銷版本。您可以使用關鍵字「all」(不建議) 停用這項檢查。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off>
預設值:「error」-
檢查 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」。請注意,如果 MODULE.bazel 不是根模組,無論此標記的值為何,系統一律會忽略這些開發依附元件。
標記:loading_and_analysis
--lockfile_mode=<off, update, refresh or error>
預設值:「update」-
指定是否使用 Lockfile 以及是否要使用。有效值為「update」,使用 Lockfile,並在發生變更時更新檔案,「refresh」會不時重新整理遠端註冊資料庫的可變動資訊 (yanked 版本和先前缺少的模組)、「error」使用鎖定檔案,但如果不是最新版本,則會擲回錯誤;如果皆不讀取或寫入鎖定檔案,則會擲回錯誤。
標記:loading_and_analysis
--override_module=<an equals-separated mapping of module name to 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 輾轉造成的實際時間影響,在以下情形發生時,GC 輾轉現象:(i) 由此暫時狀態的記憶體用量造成,以及 (ii) 成本會高於在需要時重組狀態。
標記:host_machine_resource_optimizations
- 影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock>
預設值:請參閱說明- 會在指令執行期間記錄 Java Flight Recorder 設定檔。必須提供一個支援的剖析事件類型 (cpu、wall、alloc 或 lock) 做為引數。系統會將設定檔寫入在輸出基本目錄底下,以事件類型命名的檔案。這個標記的語法和語意日後可能會變更,以支援其他設定檔類型或輸出格式,請自行承擔使用風險。
--[no]experimental_record_metrics_for_all_mnemonics
預設值:「false」- 根據預設,動作類型數量上限為 20 個,且只會納入執行動作數量最多的 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」,系統就不會使用 worker 執行緒,且 repo 擷取作業會在重新啟動時執行。否則,請使用虛擬工作者執行緒。
- 其他選項,未歸類於其他類別:
- 累積
--override_repository=<an equals-separated mapping of repository name to path>
次多次使用 - 使用本機路徑覆寫存放區,格式為 <存放區名稱>=<路徑>。如果指定的路徑為絕對路徑,系統會直接使用該路徑。如果指定的路徑為相對路徑,則會以目前的作業目錄為基準。如果指定的路徑以「%workspace%」開頭,則會相對於工作區根目錄,也就是 `bazel info workspace` 的輸出內容。如果指定的路徑為空白,請移除先前的覆寫值。
Cquery 選項
繼承 test 的所有選項。
- 顯示在指令前方且由用戶端剖析的選項:
- 累積
--distdir=<a path>
次多次使用 -
在存取網路下載檔案之前,可搜尋檔案的其他位置。
標記:bazel_internal_configuration
--[no]experimental_repository_cache_hardlinks
預設值:「false」-
如果已設定,則在快取命中時,存放區快取會強制連結檔案,而非複製。這麼做是為了節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer>
預設值:「0」-
重試下載錯誤的次數上限。如果設為 0,則會停用重試。
標記:experimental
--experimental_scale_timeouts=<a double>
預設值:「1.0」-
根據此係數調整 Starlark 存放區規則中的所有逾時值。如此一來,外部存放區就能在速度比規則作者預期慢的電腦上運作,而不需要變更原始碼
標記:bazel_internal_configuration
、experimental
--[no]incompatible_disable_native_repo_rules
預設值:「false」-
如果為 false,可以在 WORKSPACE 中使用原生存放區規則,否則必須改用 Starlark 存放區規則。原生存放區規則包括 local_repository、new_local_repository、local_config_platform、android_sdk_repository 和 android_ndk_repository。
標記:bazel_internal_configuration
--repository_cache=<a path>
預設值:請參閱說明-
指定在擷取外部存放區時取得的下載值的快取位置。引數要求停用快取的空字串,否則會使用預設的「<output_user_root>/cache/repos/v1」
標記:bazel_internal_configuration
--[no]repository_disable_download
預設值:「false」-
如果設為 true,則在擷取存放區時,系統不會允許使用 ctx.download{,_and_extract} 下載。請注意,網路存取權不會完全停用;ctx.execute 仍可執行會存取網際網路的任意執行檔。
代碼:bazel_internal_configuration
- 控制建構執行作業的選項:
--gc_thrashing_threshold=<an integer in 0-100 range>
預設:「100」-
佔用已登記空間的百分比 (0-100),超過此值後,GcThrashingDetector 會根據限制 (--gc_thrashing_limits) 判斷記憶體壓力事件。如果設為 100,系統就會停用 GcThrashingDetector。
標記:host_machine_resource_optimizations
- 查詢輸出內容和語意相關的選項:
--aspect_deps=<off, conservative or precise>
預設值:「conservative」-
如何在輸出格式為 {xml,proto,record} 的情況下解析面向依附元件。「off」表示不會解析任何面向依賴項、「conservative」(預設值) 表示會新增所有已宣告的面向依賴項,無論其是否已指定直接依賴項的規則類別;「precise」表示只會新增那些在直接依賴項的規則類別中可能處於作用中的面向。請注意,精確模式需要載入其他套件才能評估單一目標,因此速度會比其他模式慢。另請注意,即使是精確模式也不完全精確:決定是否要計算某個面向的決定是在分析階段做出,而這並不會在「bazel 查詢」期間執行。
標記:build_file_semantics
--[no]consistent_labels
預設值:「false」-
如果啟用,每個查詢指令都會像是透過 Starlark <code>str</code> 函式套用至 <code>Label</code> 例項的情況一樣,發出標籤。這項功能對於需要比對不同查詢指令和/或規則產生標籤的工具來說非常實用。如果未啟用,輸出格式化器可以自由發出明顯的存放區名稱 (相對於主要存放區),以便讓輸出內容更易讀。
標記:terminal_output
--[no]experimental_explicit_aspects
預設值:「false」-
aquery、cquery:是否要在輸出內容中加入由子集產生的動作。query:無操作 (一律會遵循子集)。
標記: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」- 查詢、cquery:是否要在輸出中納入切面產生的動作。查詢:免人工管理 (一律遵循切面)。
標記:terminal_output
--[no]incompatible_package_group_includes_double_slash
預設值:「true」-
如果啟用此選項,在輸出 package_group 的 `packages` 屬性時,系統就不會省略開頭的 `//`。
標記:terminal_output
、incompatible_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」。執行並剖析 `info build-language` 的輸出內容,瞭解建構語言中的所有「nodep」屬性。
標記:build_file_semantics
--output=<a string>
預設值:"label"-
cquery 結果的輸出格式。cquery 的允許值為:label、label_kind、textproto、transitions、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 原型欄位 (如果沒有,則為空字串)。
標記: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>
預設值:「all」-
以半形逗號分隔的屬性清單,用於納入輸出內容。預設為所有屬性。設為空白字串,不輸出任何屬性。這個選項適用於 --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>
預設值:「off」-
顯示規則所需的設定片段及其遞移依附元件。這項功能可用於評估可裁減的已設定目標圖表數量。
標記:affects_outputs
--starlark:expr=<a string>
預設值:""-
Starlark 運算式,用於在 cquery 的 --output=starlark 模式中格式化每個已設定的目標。已設定的目標會繫結至「target」。如果未指定 --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」-
查詢:如果停用,系統就不會在查詢運作的依附元件圖中納入「執行設定」的依附元件。「執行設定」的依附元件邊緣,例如從任何「proto_library」規則到通訊協定編譯器的邊緣,通常指向在建構期間執行的工具,而不是同一個「目標」程式的一部分。Cquery:如果停用這項設定,系統會篩除所有已設定的目標,且這些目標會跨越頂層目標,從偵測到這個設定的目標開始轉移。也就是說,如果頂層目標位於目標設定中,則系統只會傳回目標設定中已設定的目標。如果頂層目標位於執行設定中,系統只會傳回執行設定的目標。這個選項不會排除已解析的工具鍊。
標記:build_file_semantics
--transitions=<full, lite or none>
預設值:「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` 環境變數,定義允許的撤銷版本。您可以使用「all」關鍵字停用這項檢查 (不建議)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off>
預設值:「error」-
檢查 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」。請注意,如果不是根模組,系統一律會忽略 MODULE.bazel 中的這些開發依附元件,無論此旗標的值為何。
標記:loading_and_analysis
--lockfile_mode=<off, update, refresh or error>
預設值:「update」-
指定是否要使用鎖定檔案,以及使用方式。有效值包括 `update` (使用鎖定檔案,並在有變更時更新)、`refresh` (不時從遠端登錄重新整理可變更資訊 (已撤銷的版本和先前遺漏的模組))、`error` (使用鎖定檔案,但如果檔案未更新就會擲回錯誤) 或 `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_thrashing_threshold 的持久空間 (舊代堆積) 停留在 <period> 內連續 <count> 個完整 GC 後,就會觸發 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,實際上沒有上限。零表示完整 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,實際上沒有上限。若為零,表示次要 GC 事件永遠不會觸發釋放作業。如果達到限制,當次要 GC 事件發生且保留堆積百分比超出閾值時,Skyframe 狀態就不會再捨棄。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer>
預設值:「85」-
標記用於 Bazel 內部 Skyframe 引擎的進階設定。如果 Bazel 偵測到保留的堆積百分比用量至少達到這個門檻,就會捨棄不必要的暫時性 SkyFrame 狀態。調整此方法可減少 GC 輾轉造成的實際時間影響,在以下情形發生時,GC 輾轉現象:(i) 由此暫時狀態的記憶體用量造成,以及 (ii) 成本會高於在需要時重組狀態。
標記:host_machine_resource_optimizations
- 影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock>
預設值:請參閱說明- 會在指令執行期間記錄 Java Flight Recorder 設定檔。必須將支援的其中一個剖析事件類型 (CPU、牆、配置或鎖定) 指定為引數。系統會將設定檔寫入在輸出基本目錄底下,以事件類型命名的檔案。這個旗標的語法和語意可能會在日後變更,以支援其他設定檔類型或輸出格式;請自行承擔使用風險。
--[no]experimental_record_metrics_for_all_mnemonics
預設值:「false」- 根據預設,動作類型數量上限為 20 個,且只會納入執行動作數量最多的 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」,系統就不會使用 worker 執行緒,且 repo 擷取作業會在重新啟動時執行。否則,請使用虛擬工作者執行緒。
- 其他選項,未歸類於其他類別:
--override_repository=<an equals-separated mapping of repository name to path>
累積多次使用- 使用本機路徑覆寫存放區,格式為 <repository name>=<path>。如果指定的路徑是絕對路徑,系統會直接使用該路徑。如果指定的路徑是相對路徑,則會以目前的作業目錄為基準。如果指定的路徑以「%workspace%」開頭,則會相對於工作區根目錄,也就是 `bazel info workspace` 的輸出內容。如果指定的路徑為空白,請移除先前的覆寫值。
- 控制建構執行作業的選項:
--[no]experimental_inprocess_symlink_creation
預設值:「false」-
是否要發出直接檔案系統呼叫來建立符號連結樹狀結構
標記:loading_and_analysis
、execution
、experimental
--[no]experimental_persistent_aar_extractor
預設值:「false」-
使用工作站啟用永久 AAR 擷取器。
標記:execution
--[no]experimental_remotable_source_manifests
預設值:「false」-
是否要讓來源資訊清單動作可遠端執行
標記:loading_and_analysis
、execution
、experimental
--[no]experimental_split_coverage_postprocessing
預設值:「false」-
如果為 true,Bazel 就會在新的產生事件中執行測試的涵蓋率後置處理程序。
標記:execution
--[no]experimental_strict_fileset_output
預設值:「false」-
如果啟用這個選項,檔案集會將所有輸出構件視為一般檔案。不會遍歷目錄,也不會對符號連結敏感。
標記:execution
--[no]incompatible_disallow_unsound_directory_outputs
預設值:「true」-
如果設為此值,動作將無法將輸出檔案實體化為目錄。不會影響來源目錄。請參閱 https://github.com/bazelbuild/bazel/issues/18646。
標記:bazel_internal_configuration
、incompatible_change
--[no]incompatible_modify_execution_info_additive
預設值:「false」-
啟用後,傳遞多個 --modify_execution_info 標記會相加。停用時,系統只會考量最後一個標記。
標記:execution
、affects_outputs
、loading_and_analysis
、incompatible_change
--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' 會將 'requires-x' 新增至所有 Genrule 動作的執行資訊。針對所有非 Genrule 操作,「(?!Genrule).*=-requires-x'」會從執行資訊中移除「requires-x」。
標記:execution
、affects_outputs
、loading_and_analysis
--persistent_android_dex_desugar
-
使用工作者啟用持續性的 Android dex 和 desugar 動作。
展開為:
--internal_persistent_android_dex_desugar
--strategy=Desugar=worker
--strategy=DexBuilder=worker
標記:host_machine_resource_optimizations
、execution
--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=Aapt2Optimize=worker
--strategy=AARGenerator=worker
--strategy=ProcessDatabinding=worker
--strategy=GenerateDataBindingBaseClasses=worker
標記:host_machine_resource_optimizations
、execution
--persistent_multiplex_android_dex_desugar
-
使用工作站啟用永久的多重 Android DEX 和脫糖動作。
展開為:
--persistent_android_dex_desugar
--internal_persistent_multiplex_android_dex_desugar
標記:host_machine_resource_optimizations
、execution
--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
{14/7}
{14/5}
{14/5}
{14/5}
--modify_execution_info=AaptPackage=+supports-multiplex-workers
--modify_execution_info=AndroidResourceParser=+supports-multiplex-workers
--modify_execution_info=AndroidResourceValidator=+supports-multiplex-workers
--modify_execution_info=Aapt2Optimize=+supports-multiplex-workers
--modify_execution_info=AARGenerator=+supports-multiplex-workers
host_machine_resource_optimizations
execution
--persistent_multiplex_android_tools
-
啟用持續性和多重化的 Android 工具 (dexing、desugaring、資源處理)。
展開為:
--internal_persistent_multiplex_busybox_tools
--persistent_multiplex_android_resource_processor
--persistent_multiplex_android_dex_desugar
標記:host_machine_resource_optimizations
、execution
--[no]use_target_platform_for_tests
預設值:「false」-
如果為 true,Bazel 會使用目標平台執行測試,而不是測試執行群組。
代碼:execution
- 設定用於執行動作的工具鍊的選項:
--android_compiler=<a string>
預設值:請參閱說明-
Android 目標編譯器。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
--android_crosstool_top=<a build target label>
預設值:「//external:android/crosstool」-
用於 Android 建構的 C++ 編譯器位置。
標記:affects_outputs
、changes_inputs
、loading_and_analysis
、loses_incremental_state
--android_grte_top=<a label>
預設值:請參閱說明-
Android 目標 grte_top。
標記:changes_inputs
、loading_and_analysis
、loses_incremental_state
--android_manifest_merger=<legacy, android or force_android>
預設值:「android」-
選取要用於 android_binary 規則的資訊清單合併工具。旗標,可協助從舊版合併工具轉換至 Android 資訊清單合併工具。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
--android_platforms=<a build target label>
預設值:""-
設定 android_binary 目標使用的平台。如果指定多個平台,則二進位檔會是笨重的 APK,其中包含每個指定目標平台的原生二進位檔。
標記:changes_inputs
、loading_and_analysis
、loses_incremental_state
--android_sdk=<a build target label>
預設值:"@bazel_tools//tools/android:sdk"-
指定用於建構 Android 應用程式的 Android SDK/平台。
標記:changes_inputs
、loading_and_analysis
、loses_incremental_state
--apple_crosstool_top=<a build target label>
預設值:"@bazel_tools//tools/cpp:toolchain"-
在 Apple 和 Objc 規則及其依附元件中使用的 crosstool 套件標籤。
標記:loses_incremental_state
、changes_inputs
--cc_output_directory_tag=<a string>
預設值:""-
指定要加入設定目錄的後置字串。
標記:affects_outputs
--compiler=<a string>
預設值:請參閱說明-
用於編譯目標的 C++ 編譯器。
標記:loading_and_analysis
、execution
--coverage_output_generator=<a build target label>
預設值:"@bazel_tools//tools/test:lcov_merger"-
用於後處理原始涵蓋率報表的二進位檔位置。這個檔案群組目前必須包含單一檔案 (二進位檔)。預設值為 '//tools/test:lcov_merger'。
標記:changes_inputs
、affects_outputs
、loading_and_analysis
--coverage_report_generator=<a build target label>
預設:"@bazel_tools//tools/test:coverage_report_generator"-
用於產生涵蓋率報表的二進位位置。這個檔案群組目前必須包含單一檔案 (二進位檔)。預設值為 '//tools/test:coverage_report_generator'。
標記:changes_inputs
、affects_outputs
、loading_and_analysis
--coverage_support=<a build target label>
預設值:"@bazel_tools//tools/test:coverage_support"-
收集程式碼涵蓋率的每個測試動作中,所需的支援檔案位置。預設值為 '//tools/test:coverage_support'。
標記:changes_inputs
、affects_outputs
、loading_and_analysis
--crosstool_top=<a build target label>
預設值:"@bazel_tools//tools/cpp:toolchain"-
用於編譯 C++ 程式碼的 crosstool 套件標籤。
標記:loading_and_analysis
、changes_inputs
、affects_outputs
--custom_malloc=<a build target label>
預設值:請參閱說明-
指定自訂 Malloc 實作。這項設定會覆寫建構規則中的 malloc 屬性。
標記:changes_inputs
、affects_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_state
、loading_and_analysis
、execution
--[no]experimental_prefer_mutual_xcode
預設值:「true」-
如果為 true,請使用在本機和遠端都可用的最新 Xcode。如為 false,或是沒有可變動的版本,請使用 xcode-select 選取的本機 Xcode 版本。
標記:loses_incremental_state
--extra_execution_platforms=<comma-separated list of options>
預設值:「」-
可用於執行動作的執行平台。您可以使用精確目標或目標模式來指定平台。系統會先考量這些平台,再透過 register_execution_platforms() 宣告到 WORKSPACE 檔案中顯示的平台。這個選項只能設定一次;之後的執行個體將覆寫先前的標記設定。
標記:execution
--extra_toolchains=<comma-separated list of options>
累積多次使用-
工具鍊解析期間要考量的工具鍊規則。您可以使用確切目標或目標模式指定工具鍊。系統會先考慮這些工具鍊,再考慮 WORKSPACE 檔案中透過 register_toolchains() 宣告的工具鍊。
標記:affects_outputs
、changes_inputs
、loading_and_analysis
--grte_top=<a label>
預設值:請參閱說明-
已檢查的 libc 程式庫的標籤。預設值是由跨工具工具鍊選取,您幾乎不需要覆寫該值。
標記:action_command_lines
、affects_outputs
--host_compiler=<a string>
預設值:請參閱說明-
用於主機編譯作業的 C++ 編譯器。如果未設定 --host_crosstool_top,系統會忽略這個屬性。
標記:loading_and_analysis
、execution
--host_crosstool_top=<a build target label>
預設:查看說明-
根據預設,--crosstool_top 和 --compiler 選項也會用於執行設定。如果提供這個標記,Bazel 會為指定的 crosstool_top 使用預設的 libc 和編譯器。
標記:loading_and_analysis
、changes_inputs
、affects_outputs
--host_grte_top=<a label>
預設:查看說明-
如果指定,這項設定會覆寫 exec 設定的 libc 頂層目錄 (--grte_top)。
標記:action_command_lines
、affects_outputs
--host_platform=<a build target label>
預設值:"@bazel_tools//tools:host_platform"-
說明主機系統的平台規則標籤。
標記:affects_outputs
、changes_inputs
、loading_and_analysis
--[no]incompatible_dont_enable_host_nonhost_crosstool_features
預設值:「true」-
如果為 true,Bazel 就不會在 c++ 工具鍊中啟用「主機」和「非主機」功能 (詳情請參閱 https://github.com/bazelbuild/bazel/issues/7407)。
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_enable_android_toolchain_resolution
預設值:「true」-
使用工具鍊解析來選取 Android 規則的 Android SDK (Starlark 和原生)
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_enable_apple_toolchain_resolution
預設值:「false」-
使用工具鍊解析度選取 Apple SDK for apple 規則 (Starlark 和 native)
代碼:loading_and_analysis
、incompatible_change
--[no]incompatible_make_thinlto_command_lines_standalone
預設值:「true」-
如果設為 true,Bazel 就不會在 Lto 索引指令列中重複使用 C++ 連結動作指令列 (詳情請參閱 https://github.com/bazelbuild/bazel/issues/6791)。
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_remove_legacy_whole_archive
預設值:「true」-
如果為 true,Bazel 預設不會將程式庫依附元件連結為整個封存檔 (如需遷移操作說明,請參閱 https://github.com/bazelbuild/bazel/issues/7362)。
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_require_ctx_in_configure_features
預設值:「true」-
如果設為 true,Bazel 就會要求 cc_common.configure_features 中的 'ctx' 參數 (詳情請見 https://github.com/bazelbuild/bazel/issues/7793)。
標記:loading_and_analysis
、incompatible_change
-
如果工具鍊支援,請使用介面共用物件。目前所有 ELF 工具鍊都支援這項設定。
標記:loading_and_analysis
、affects_outputs
、affects_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>
預設值:請參閱說明-
編譯目標的最低 OS 版本。
標記:loading_and_analysis
、affects_outputs
--platform_mappings=<a relative path>
預設值:""-
對應檔案的位置,可用於說明在未設定任何平台時要使用的平台,或在已存在平台時要設定的旗標。必須相對於主要工作區根目錄。預設值為「platform_mappings」(工作區根目錄下方的檔案)。
標記:affects_outputs
、changes_inputs
、loading_and_analysis
--platforms=<a build target label>
預設值:""-
平台規則的標籤,說明目前指令的目標平台。
標記:affects_outputs
、changes_inputs
、loading_and_analysis
--python2_path=<a string>
預設:查看說明-
已淘汰,免人工管理。已由「--incompatible_use_python_toolchains」停用。
標記:no_op
、deprecated
--python3_path=<a string>
預設值:請參閱說明- 已淘汰,無操作。已由 `--incompatible_use_python_toolchains` 停用。
標記:no_op
、deprecated
--python_path=<a string>
預設值:請參閱說明-
叫用 Python 解譯器的絕對路徑,以便在目標平台上執行 Python 目標。已淘汰;由 --incompatible_use_python_toolchains 停用。
標記:loading_and_analysis
、affects_outputs
--python_top=<a build target label>
預設值:請參閱說明-
這個 py_runtime 標籤,代表為了在目標平台上執行 Python 目標而叫用的 Python 解譯器。已淘汰;已由 --incompatible_use_python_toolchains 停用。
標記:loading_and_analysis
、affects_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 SDK 版本,用於建構 watchOS 應用程式。如未指定,則會使用「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_config 規則的標籤,用於在建構設定中選取 Xcode 版本。
標記:loses_incremental_state
、loading_and_analysis
- 控制指令輸出內容的選項:
--[no]apple_generate_dsym
預設值:「false」-
是否產生偵錯符號 (.dSYM) 檔案。
標記:affects_outputs
、action_command_lines
--[no]build_runfile_links
預設值:「true」-
如果為 true,則為所有目標建構 runfiles 符號連結森林。如果為 false,則只有在本機動作、測試或執行指令要求時,才會寫入。
標記:affects_outputs
--[no]build_runfile_manifests
預設值:「true」-
如果為 true,系統會為所有目標寫入執行檔案資訊清單。如果是 false,請省略。如果為 false,本機測試就會無法執行。
標記:affects_outputs
--[no]build_test_dwp
預設值:「false」-
如果啟用此選項,在使用 Fission 靜態建構 C++ 測試時,系統也會自動建構測試二進位檔的 .dwp 檔案。
標記:loading_and_analysis
、affects_outputs
--cc_proto_library_header_suffixes=<comma-separated set of options>
預設值:".pb.h"-
設定 cc_proto_library 建立的標頭檔案後置字串。
標記:affects_outputs
、loading_and_analysis
--cc_proto_library_source_suffixes=<comma-separated set of options>
預設值:「.pb.cc」-
設定 cc_proto_library 建立的來源檔案後置字串。
標記:affects_outputs
、loading_and_analysis
--[no]experimental_proto_descriptor_sets_include_source_info
預設值:「false」-
針對 proto_library 中的其他 Java API 版本執行額外動作。
標記:affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_proto_extra_actions
預設值:「false」-
針對 proto_library 中的其他 Java API 版本執行額外動作。
標記:affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_save_feature_state
預設值:「false」-
將已啟用和要求的功能狀態儲存為編譯的輸出內容。
標記:affects_outputs
、experimental
--fission=<a set of compilation modes>
預設值:「no」-
指定哪些編譯模式會在 C++ 編譯和連結時使用分裂。可以是 {'fastbuild'、'dbg'、'opt'} 的任意組合,或是特殊值「yes」來啟用所有模式,「no」則可停用所有模式。
標記:loading_and_analysis
、action_command_lines
、affects_outputs
--[no]incompatible_always_include_files_in_data
預設值:「true」-
如果為 true,原生規則會將資料依附元件的 <code>DefaultInfo.files</code> 新增至其執行檔,這與 Starlark 規則的建議行為相符 (https://bazel.build/extending/rules#runfiles_features_to_avoid)。
標記:affects_outputs
、incompatible_change
--[no]legacy_external_runfiles
預設值:「true」-
如果為 true,除了 .runfiles/repo 之外,系統會為 .runfiles/wsname/external/repo 下的外部存放區建構執行檔案符號樹系。
標記: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>
次多次使用 -
指定可供含有目標設定的動作使用的一組環境變數。變數可以透過名稱指定,在這種情況下,系統會從叫用環境取得值;也可以透過名稱=值組合指定,在這種情況下,系統會設定不受叫用環境影響的值。這個選項可以重複使用;如果是針對同一個變數提供的選項,則以最新的選項為準;如果是針對不同變數提供的選項,則會累加。
標記:action_command_lines
--android_cpu=<a string>
預設值:「armeabi-v7a」-
Android 目標 CPU。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
--[no]android_databinding_use_androidx
預設值:「true」-
產生與 AndroidX 相容的資料繫結檔案。這個屬性僅適用於資料繫結 v2。這個標記為免人工管理。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]android_databinding_use_v3_4_args
預設值:「true」-
使用 Android Databinding v2 和 3.4.0 引數。這個標記為免人工管理。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--android_dynamic_mode=<off, default or fully>
預設值:「off」-
決定在 cc_binary 未明確建立共用程式庫時,是否要動態連結 Android 規則的 C++ 依附元件。「default」表示 bazel 會選擇是否要動態連結。「fully」表示所有程式庫都會動態連結。「off」表示所有程式庫都會以靜態模式連結。
標記:affects_outputs
、loading_and_analysis
--android_manifest_merger_order=<alphabetical, alphabetical_by_configuration or dependency>
預設值:「alphabetical」-
設定傳遞至 Android 二進位檔資訊清單合併工具的資訊清單順序。ALPHABETICAL 表示資訊清單會依據相對於執行根目錄的路徑排序。ALPHABETICAL_BY_CONFIGURATION 表示資訊清單會依據輸出目錄中相對於設定目錄的路徑排序。DEPENDENCY 表示資訊清單的順序,會依照每個程式庫的資訊清單,依序出現在其依附元件的資訊清單之前。
標記:action_command_lines
、execution
--[no]android_resource_shrinking
預設值:「false」-
為使用 ProGuard 的 android_binary APK 啟用資源縮減功能。
標記:affects_outputs
、loading_and_analysis
--[no]build_python_zip
預設值:「auto」-
建構 Python 可執行的 zip 檔案;在 Windows 上開啟,在其他平台上關閉
標記:affects_outputs
--catalyst_cpus=<comma-separated list of options>
累積多次使用-
用於建構 Apple Catalyst 二進位檔的架構清單 (以半形逗號分隔)。
標記:loses_incremental_state
、loading_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_outputs
、action_command_lines
--conlyopt=<a string>
累積多次使用-
編譯 C 來源檔案時,要傳遞至 gcc 的其他選項。
標記:action_command_lines
、affects_outputs
--copt=<a string>
累積多次使用-
傳遞至 gcc 的其他選項。
標記:action_command_lines
、affects_outputs
--cpu=<a string>
預設值:""-
目標 CPU。
標記:changes_inputs
、affects_outputs
--cs_fdo_absolute_path=<a string>
預設值:請參閱說明-
使用 CSFDO 設定檔資訊來最佳化編譯作業。指定內含設定檔檔案的 ZIP 檔案的絕對路徑名稱,也就是原始或索引 LLVM 設定檔檔案。
標記: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_lines
、affects_outputs
--define=<a 'name=value' assignment>
累積多次使用-
每個 --define 選項都會指定建構變數的值。
標記:changes_inputs
、affects_outputs
--dynamic_mode=<off, default or fully>
預設值:"default"-
決定是否要動態連結 C++ 二進位檔。「預設」表示 Bazel 會選擇是否要動態連結。「fully」表示所有程式庫都會動態連結。「off」表示所有程式庫都會以靜態模式連結。
標記:loading_and_analysis
、affects_outputs
--[no]enable_fdo_profile_absolute_path
預設值:「true」-
如果設為此值,使用 fdo_absolute_profile_path 會引發錯誤。
標記:affects_outputs
--[no]enable_runfiles
預設值:「auto」-
啟用執行檔案符號連結樹狀結構;在 Windows 的其他平台上,這項功能預設為關閉。
標記:affects_outputs
--experimental_action_listener=<a build target label>
累積多次使用-
已淘汰,並改用切面。使用 action_listener 將 extra_action 附加至現有的建構動作。
標記:execution
、experimental
--[no]experimental_android_compress_java_resources
預設值:「false」-
壓縮 APK 中的 Java 資源
標記:affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_android_databinding_v2
預設值:「true」-
使用 Android Databinding v2。這個標記不會執行任何操作。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]experimental_android_resource_shrinking
預設值:「false」-
針對使用 ProGuard 的 android_binary APK 啟用資源縮減功能。
標記:affects_outputs
、loading_and_analysis
--[no]experimental_android_rewrite_dexes_with_rex
預設值:「false」-
使用 rex 工具重寫 dex 檔案
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[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 和 -fasynchronous-unwind-tables 進行編譯。
標記:action_command_lines
、affects_outputs
、experimental
--experimental_output_paths=<off, content or strip>
預設值:「off」-
要在輸出樹狀結構規則的何處寫入輸出內容 (尤其是多平台 / 多設定版本) 時,要使用哪個模型。這項功能仍在實驗階段,詳情請參閱 https://github.com/bazelbuild/bazel/issues/6526。Starlark 動作可以選擇啟用路徑對應功能,方法是將「supports-path-mapping」鍵新增至「execution_requirements」字典。
標記:loses_incremental_state
、bazel_internal_configuration
、affects_outputs
、execution
--experimental_override_name_platform_in_output_dir=<a 'label=value' assignment>
累積多次使用-
每個項目都應採用 label=value 的格式,其中 label 是指平台,而 value 是輸出路徑中要使用的所需簡稱。僅在 --experimental_platform_in_output_dir 為 true 時使用。具有最高的命名優先順序。
標記:affects_outputs
、experimental
--[no]experimental_platform_in_output_dir
預設值:「false」-
如為 true,則輸出目錄名稱會使用目標平台的簡稱,而非 CPU。具體的配置為實驗性質,可能會變更:首先,在極少數情況下,如果 --platforms 選項不含確切的一個值,系統會使用 platforms 選項的雜湊值。接著,如果目前平台的任何簡稱都已透過 --experimental_override_name_platform_in_output_dir 註冊,系統就會使用該簡稱。接著,如果已設定 --experimental_use_platforms_in_output_dir_legacy_heuristic,請使用目前平台標籤的短名稱。最後,平台選項的雜湊是在不得已的情況下使用。
標記:affects_outputs
、experimental
--[no]experimental_use_llvm_covmap
預設值:「false」-
如有指定,Bazel 會在啟用 collection_code_coverage 的情況下,產生 llvm-cov 涵蓋範圍地圖資訊,而非 gcov。
標記:changes_inputs
、affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_use_platforms_in_output_dir_legacy_heuristic
預設值:「true」-
請僅在建議的遷移或測試策略中使用這個標記。請注意,啟發式搜尋有已知的缺陷,建議您改為只使用 --experimental_override_name_platform_in_output_dir。
標記:affects_outputs
、experimental
--fat_apk_cpu=<comma-separated set of options>
預設值:「armeabi-v7a」-
這項設定會啟用笨重的 APK,其中包含所有指定目標架構的原生二進位檔,例如--fat_apk_cpu=x86,armeabi-v7a. 如果指定這個旗標,系統就會忽略 android_binary 規則的依附元件中的 --android_cpu。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
--[no]fat_apk_hwasan
預設值:「false」-
是否要建立 HWASAN 分割項目。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
--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_inputs
、affects_outputs
--[no]force_pic
預設值:「false」-
如果啟用此選項,所有 C++ 編譯作業都會產生位置無關的程式碼 ("-fPIC"),連結會優先使用 PIC 預先建構的程式庫,而非非 PIC 程式庫,且連結會產生位置無關的可執行檔 ("-pie")。
標記:loading_and_analysis
、affects_outputs
- 累積
--host_action_env=<a 'name=value' assignment with an optional value part>
次多次使用 -
指定執行作業設定可用的環境變數組合。變數可以透過名稱指定,在這種情況下,系統會從叫用環境取得值;也可以透過名稱=值組合指定,在這種情況下,系統會設定不受叫用環境影響的值。這個選項可以重複使用;如果是針對同一個變數提供的選項,則以最新的選項為準;如果是針對不同變數提供的選項,則會累加。
標記:action_command_lines
--host_compilation_mode=<fastbuild, dbg or opt>
預設值:「opt」-
指定在建構期間使用的工具將以何種模式建構。值:'fastbuild'、'dbg'、'opt'。
標記:affects_outputs
、action_command_lines
--host_conlyopt=<a string>
累積多次使用-
在執行設定中編譯 C (但非 C++) 來源檔案時,要傳遞至 C 編譯器的其他選項。
標記:action_command_lines
、affects_outputs
- 累積
--host_copt=<a string>
次多次使用 -
為執行設定中建構的工具,傳遞至 C 編譯器的其他選項。
標記:action_command_lines
、affects_outputs
--host_cpu=<a string>
預設值:「」-
主機 CPU。
標記:changes_inputs
、affects_outputs
--host_cxxopt=<a string>
累積多次使用-
針對在執行設定中建構的工具,傳遞至 C++ 編譯器的其他選項。
標記:action_command_lines
、affects_outputs
- 累積
--host_features=<a string>
次多次使用 -
對於在執行設定中建構的目標,系統會依預設啟用或停用指定功能。指定 -<feature> 會停用該功能。負面特徵一律會覆寫正面特徵。
標記:changes_inputs
、affects_outputs
--host_force_python=<PY2 or PY3>
預設值:請參閱說明-
覆寫執行設定的 Python 版本。可以是「PY2」或「PY3」。
標記:loading_and_analysis
、affects_outputs
--host_linkopt=<a string>
累積多次使用-
在執行設定中連結工具時,要傳遞至連結器的其他選項。
標記:action_command_lines
、affects_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 到 option_n 代表任意指令列選項。如果選項包含半形逗號,則必須在半形逗號前後加上反斜線。選項可以包含 @。只有第一個 @ 會用來分割字串。範例:--host_per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 會將 -O0 指令列選項新增至 //foo/ 中所有 cc 檔案 (除了 bar.cc) 的 gcc 指令列。
標記:action_command_lines
、affects_outputs
--host_swiftcopt=<a string>
累積多次使用-
傳遞給執行工具的 swiftc 的其他選項。
標記:action_command_lines
、affects_outputs
--[no]incompatible_auto_exec_groups
預設值:「false」-
啟用後,系統會為規則使用的每個工具鍊自動建立執行群組。如要執行這項動作,必須在其動作中指定「toolchain」參數。如需更多資訊,請參閱 https://github.com/bazelbuild/bazel/issues/17134。
標記:affects_outputs
、incompatible_change
--[no]incompatible_merge_genfiles_directory
預設值:「true」-
如果為 true,genfiles 目錄會摺疊至 bin 目錄。
標記:affects_outputs
、incompatible_change
--[no]incompatible_use_host_features
預設值:「true」-
如為 true,請僅針對目標設定使用 --features,用於執行設定時則使用 --host_features。
標記:changes_inputs
、affects_outputs
、incompatible_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_state
、loading_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_lines
、affects_outputs
、deprecated
- 累積
--linkopt=<a string>
次多次使用 -
連結時傳遞至 gcc 的其他選項。
標記:action_command_lines
、affects_outputs
--ltobackendopt=<a string>
累積多次使用-
傳遞至 LTO 後端步驟的其他選項 (位於 --features=thin_lto 下)。
標記:action_command_lines
、affects_outputs
- 累積
--ltoindexopt=<a string>
次多次使用 -
傳遞至 LTO 索引步驟的其他選項 (位於 --features=thin_lto 下方)。
標記:action_command_lines
、affects_outputs
--macos_cpus=<comma-separated list of options>
累積多次使用-
以逗號分隔的架構清單,用於建構 Apple macOS 二進位檔。
標記:loses_incremental_state
、loading_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」-
是否要在已連結的二進位檔上執行符號和無效程式碼去除作業。如果同時指定這個旗標和 --compilation_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@選項_1,選項_2,...,選項_n。其中 regex_filter 代表包含和排除規則運算式模式的清單 (另請參閱 --instrumentation_filter)。 option_1 到 option_1 代表任意指令列選項。如果選項包含半形逗號,則必須在半形逗號前後加上反斜線。選項可以包含 @。只有第一個 @ 會用來分割字串。範例:--per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 會將 -O0 指令列選項新增至 //foo/ 中所有 cc 檔案 (除了 bar.cc) 的 gcc 指令列。
標記:action_command_lines
、affects_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@選項_1,選項_2,...,選項_n。其中 regex_filter 代表包含和排除規則運算式的清單。option_1 到 option_n 代表任意指令列選項。如果選項包含半形逗號,則必須在半形逗號前後加上反斜線。選項可以包含 @,系統只會使用第一個 @ 來分割字串。範例:--per_file_ltobackendopt=//foo/.*\.o,-//foo/bar\.o@-O0 將 -O0 指令列選項新增至 //foo/ ( bar.o 除外) 中所有檔案的 LTO 後端指令列。
標記:action_command_lines
、affects_outputs
--platform_suffix=<a string>
預設值:請參閱說明-
指定要新增至設定目錄的後置字串。
標記:loses_incremental_state
、affects_outputs
、loading_and_analysis
--propeller_optimize=<a build target label>
預設值:請參閱說明-
使用 Propeller 設定檔資訊來改善建構目標。Propeller 設定檔至少必須包含以下兩個檔案之一:cc 設定檔和 ld 設定檔。這個標記可接受建構標籤,但該標籤必須參照螺旋槳設定檔輸入檔案。舉例來說,定義標籤的 BUILD 檔案,在 a/b/BUILD:propeller_optimize( name = "propeller_profile", cc_profile = "propeller_cc_profile.txt", ld_profile = "propeller_ld_profile.txt",)An exports_files directive may have to be added to the corresponding package to make these files visible to Bazel. 這個選項必須使用以下形式:--propeller_optimize=//a/b:propeller_profile
標記:action_command_lines
、affects_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
-
如果為 true,含有相同功能的原生程式庫會在不同目標之間共用
標記:loading_and_analysis
、affects_outputs
--[no]stamp
預設值:「false」-
含有日期、使用者名稱、主機名稱、工作區資訊等項目的戳記二進位檔。
標記:affects_outputs
--strip=<always, sometimes or never>
預設值:「sometimes」-
用於指定是否要移除二進位檔和共用程式庫 (使用「-Wl,--strip-debug」)。預設值為「sometimes」表示如果 --compilation_mode=fastbuild,則會移除。
標記:affects_outputs
- 累積
--stripopt=<a string>
次多次使用 -
產生「<name>.stripped」二進位檔時要傳遞的其他選項。
標記:action_command_lines
、affects_outputs
--swiftcopt=<a string>
累積多次使用-
傳遞至 Swift 編譯的其他選項。
標記:action_command_lines
- 累積
--tvos_cpus=<comma-separated list of options>
次多次使用 -
用於建構 Apple tvOS 二進位檔的架構清單 (以半形逗號分隔)。
標記:loses_incremental_state
、loading_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_state
、loading_and_analysis
--watchos_cpus=<comma-separated list of options>
累積多次使用-
以半形逗號分隔的架構清單,用於建構 Apple watchOS 二進位檔。
標記:loses_incremental_state
、loading_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 值的 environment_group。
標記:changes_inputs
、loading_and_analysis
、experimental
--[no]check_licenses
預設值:「false」-
請確認依附套件施加的授權限制,不會與建構目標的發布模式衝突。根據預設,系統不會檢查授權。
標記:build_file_semantics
--[no]check_visibility
預設值:「true」-
如果停用,目標依附元件中的顯示錯誤會降級為警告。
標記:build_file_semantics
--[no]desugar_for_android
預設值:「true」-
是否要在解碼前脫糖 Java 8 位元組程式碼。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
--[no]desugar_java8_libs
預設值:「false」-
是否要在舊版裝置的應用程式中加入支援的 Java 8 程式庫。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]enforce_constraints
預設值:「true」-
檢查各目標的相容環境,並在任何目標的依附元件不支援相同環境時回報錯誤
標記:build_file_semantics
--[no]experimental_check_desugar_deps
預設值:「true」-
是否要再次檢查 Android 二進位檔層級的正確去糖化。
標記:eagerness_to_exit
、loading_and_analysis
、experimental
--experimental_import_deps_checking=<off, warning or error>
預設值:「關閉」-
啟用後,請檢查 aar_import 的依附元件是否已完成。這項強制執行可能會破壞建構作業,或只會導致警告。
標記:loading_and_analysis
--experimental_one_version_enforcement=<off, warning or error>
預設值:「OFF」-
啟用後,系統會強制規定 java_binary 規則在 classpath 中不得包含同一個類別檔案的多個版本。這項強制執行可能會破壞建構作業,或只會導致警告。
標記:loading_and_analysis
--experimental_strict_java_deps=<off, warn, error, strict or default>
預設值:「預設」-
如果為 true,則會檢查 Java 目標是否明確將所有直接使用的目標宣告為依附元件。
標記:build_file_semantics
、eagerness_to_exit
--[no]incompatible_check_testonly_for_output_files
預設值:「false」-
如果啟用,請查詢產生規則的 testonly,檢查 testonly 是否為輸出檔案的必要條件目標。這與檢查瀏覽權限相符。
標記:build_file_semantics
、incompatible_change
--[no]incompatible_check_visibility_for_toolchains
預設值:「false」-
如果已啟用,可視性檢查也會套用至工具鍊實作。
標記:build_file_semantics
、incompatible_change
--[no]incompatible_disable_native_android_rules
預設值:「false」-
如果啟用,系統就會停用原生 Android 規則的直接用法。請使用 https://github.com/bazelbuild/rules_android 中的 Starlark Android 規則
標記:eagerness_to_exit
、incompatible_change
--[no]incompatible_disable_native_apple_binary_rule
預設值:「false」-
無操作。為回溯相容性而保留。
標記:eagerness_to_exit
、incompatible_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_analysis
、incompatible_change
--[no]incompatible_validate_top_level_header_inclusions
預設值:「true」-
如果為 True,Bazel 也會驗證頂層目錄標頭的納入項目 (詳情請參閱 https://github.com/bazelbuild/bazel/issues/10047)。
標記:loading_and_analysis
、incompatible_change
--[no]one_version_enforcement_on_java_tests
預設值:「true」-
啟用此選項後,如果 experimental_one_version_enforcement 設為非 NONE 值,系統就會在 java_test 目標上強制執行一個版本。您可以停用這個標記,以便提升增量測試效能,但可能會錯過某個版本的違規項目。
標記:loading_and_analysis
--python_native_rules_allowlist=<a build target label>
預設:查看說明-
在強制執行 --incompatible_python_disallow_native_rules 時,要使用的許可清單 (package_group 目標)。
標記:loading_and_analysis
--[no]strict_filesets
預設值:「false」-
如果啟用這個選項,系統會將跨越套件邊界的檔案集回報為錯誤。
標記:build_file_semantics
、eagerness_to_exit
--strict_proto_deps=<off, warn, error, strict or default>
預設值:「error」-
除非為「關閉」,否則檢查 proto_library 目標是否明確宣告所有直接使用的目標為依附元件。
標記:build_file_semantics
、eagerness_to_exit
、incompatible_change
--strict_public_imports=<off, warn, error, strict or default>
預設值:「off」-
除非設為 OFF,否則會檢查 proto_library 目標是否明確宣告在「import public」中使用的所有目標為匯出目標。
標記:build_file_semantics
、eagerness_to_exit
、incompatible_change
--[no]strict_system_includes
預設值:「false」-
如果設為 true,則系統會透過系統包含路徑 (-isystem) 找到的標頭,也必須宣告。
標記:loading_and_analysis
、eagerness_to_exit
- 累積
--target_environment=<a build target label>
次多次使用 -
宣告此版本的目標環境。必須是「環境」規則的標籤參照。如果指定了這個環境,則所有頂層目標都必須與這個環境相容。
標記:changes_inputs
- 影響建構簽署輸出內容的選項:
--apk_signing_method=<v1, v2, v1_v2 or v4>
預設:「v1_v2」-
用於簽署 APK 的實作方式
標記:action_command_lines
、affects_outputs
、loading_and_analysis
--[no]device_debug_entitlements
預設值:「true」-
如果已設定,且編譯模式不是「opt」,則 objc 應用程式會在簽署時加入偵錯授權。
標記:changes_inputs
--ios_signing_cert_name=<a string>
預設值:請參閱說明-
用於 iOS 簽署的憑證名稱。如果未設定,系統會改用佈建設定檔。根據 codesign 的 man 頁面 (SIGNING IDENTITIES),可能為憑證的鑰匙圈身分偏好設定或憑證的常用名稱 (子字串)。
標記:action_command_lines
- 這個選項會影響 Starlark 語言的語意,或 BUILD 檔案、.bzl 檔案或 WORKSPACE 檔案可存取的建構 API:
--[no]incompatible_disallow_legacy_py_provider
預設值:「true」-
無操作,即將移除。
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_disallow_sdk_frameworks_attributes
預設值:「false」-
如果設為 true,就禁止在 objc_library 和 objc_import 中使用 sdk_frameworks 和 weak_sdk_frameworks 屬性。
標記:build_file_semantics
、incompatible_change
--[no]incompatible_objc_alwayslink_by_default
預設值:「false」-
如果為 true,請將 objc_library 和 objc_import 中的 alwayslink 屬性預設值設為 true。
標記:build_file_semantics
、incompatible_change
--[no]incompatible_python_disallow_native_rules
預設值:「false」-
如果為 True,使用內建的 py_* 規則時會發生錯誤;應改用 rule_python 規則。詳情請參閱 https://github.com/bazelbuild/bazel/issues/17773 瞭解遷移操作說明。
標記:loading_and_analysis
、incompatible_change
- 用於控管測試環境或測試執行工具行為的選項:
--[no]allow_analysis_failures
預設值:「false」-
如果設為 true,規則目標的分析失敗會導致目標傳播包含錯誤說明的 AnalysisFailureInfo 例項,而不會導致建構失敗。
標記:loading_and_analysis
、experimental
--analysis_testing_deps_limit=<an integer>
預設值:「2000」-
透過 for_analysis_testing 設定轉換的規則屬性,設定遞移依附元件的數量上限。若超出這項限制,就會導致規則錯誤。
標記:loading_and_analysis
--[no]break_build_on_parallel_dex2oat_failure
預設值:「false」-
如果 Truex2oat 動作失敗,建構作業就會導致建構作業中斷,而不是在測試執行階段執行 dex2oat。
標記:loading_and_analysis
、experimental
--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,並可選擇加上 [-|*]<浮點> (例如 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_analysis
、host_machine_resource_optimizations
、experimental
--[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。其中 runs_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」表示不會解析任何面向依賴項、「conservative」(預設值) 表示會新增所有已宣告的面向依賴項,無論其是否已指定直接依賴項的規則類別;「precise」表示只會新增那些在直接依賴項的規則類別中可能處於作用中的面向。請注意,精確模式需要載入其他套件才能評估單一目標,因此速度會比其他模式慢。另外也請注意,即使是精確模式,也無法完全精確:決定是否要在分析階段決定計算切面,而這在「bazel 查詢」期間不會執行。
標記:build_file_semantics
--[no]consistent_labels
預設值:「false」-
如果啟用此選項,每個查詢指令都會發出標籤,就像由 Starlark <code>str</code> 函式套用到 <code>Label</code> 執行個體一樣。這項功能對於需要比對不同查詢指令和/或規則產生標籤的工具來說非常實用。如未啟用,輸出格式設定器可自由發出明顯的存放區名稱 (相對於主要存放區),讓輸出內容更易讀。
標記:terminal_output
--[no]experimental_explicit_aspects
預設值:「false」-
aquery、cquery:是否要在輸出內容中加入由子集產生的動作。query:無操作 (一律會遵循子集)。
標記: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」-
aquery、cquery:是否要在輸出內容中加入由子集產生的動作。query:無操作 (一律會遵循子集)。
標記:terminal_output
--[no]incompatible_package_group_includes_double_slash
預設值:「true」-
如果啟用此選項,在輸出 package_group 的 `packages` 屬性時,系統就不會省略開頭的 `//`。
標記:terminal_output
、incompatible_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」。執行並剖析 `info build-language` 的輸出內容,瞭解建構語言中的所有「nodep」屬性。
標記:build_file_semantics
--output=<a string>
預設值:"label"-
cquery 結果的輸出格式。cquery 的允許值為:label、label_kind、textproto、transitions、proto、streamed_proto、jsonproto。如果選取「transitions」,您也必須指定 --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 前置字段 (如果沒有,則為空字串)。
標記: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 模式中格式化每個已設定的目標。設定的目標會繫結至「target」。如果未指定 --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 設定」的依附元件。「執行設定」依附元件邊緣 (例如從任何「proto_library」規則到 Protocol Compiler 的邊緣),通常會指向建構期間執行的工具,而非同一個「target」程式的一部分。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_analysis
、execution
、affects_outputs
、experimental
--[no]experimental_inmemory_jdeps_files
預設值:「true」-
啟用後,Java 編譯產生的依附元件 (.jdeps) 檔案會直接從遠端建構節點在記憶體中傳遞,而不是寫入磁碟。
標記:loading_and_analysis
、execution
、affects_outputs
、experimental
--[no]experimental_objc_include_scanning
預設值:「false」-
是否要針對目標 C/C++ 執行「包含掃描」。
標記:loading_and_analysis
、execution
、changes_inputs
--[no]experimental_retain_test_configuration_across_testonly
預設值:「false」-
啟用後,--trim_test_configuration 就不會為標示為 testonly=1 的規則裁減測試設定。這項功能旨在減少非測試規則依賴 cc_test 規則時的動作衝突問題。如果 --trim_test_configuration 為 false,就不會產生任何影響。
標記:loading_and_analysis
、loses_incremental_state
--[no]experimental_starlark_cc_import
預設值:「false」-
如果啟用,即可使用 Starlark 版本的 cc_import。
標記:loading_and_analysis
、experimental
--[no]experimental_unsupported_and_brittle_include_scanning
預設值:「false」-
是否要透過剖析輸入檔案中的 #include 行,將輸入內容縮減為 C/C++ 編譯。這可縮減編譯輸入樹狀結構的大小,進而提升效能和增量。但也可能破壞建構作業,因為 include 掃描器未完整實作 C 預先處理器語意。具體來說,它無法瞭解動態 #include 指示,並會忽略預處理器條件邏輯。您必須自行承擔使用風險。與此標記相關的任何問題都會結案。
標記:loading_and_analysis
、execution
、changes_inputs
--[no]incremental_dexing
預設值:「true」-
針對每個 Jar 檔案分別執行大部分的解析工作。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
--[no]objc_use_dotd_pruning
預設值:「true」-
如果設定,系統會使用 Clang 產生的 .d 檔案,來修剪傳遞至 objc 編譯作業的輸入集合。
標記:changes_inputs
、loading_and_analysis
--[no]process_headers_in_dependencies
預設值:「false」-
建構目標 //a:a 時,請處理 //a:a 依附的所有目標中的標頭 (如果工具鍊啟用了標頭處理功能)。
標記:execution
--[no]trim_test_configuration
預設值:「true」-
啟用後,系統會清除版本頂層以下的測試相關選項。啟用此標記後,測試就無法建構為非測試規則的依附元件,但變更測試相關選項不會導致非測試規則重新分析。
標記:loading_and_analysis
、loses_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 標記的簡寫名稱。它會將單一鍵/值組合 (格式為「<鍵>=<值>」) 做為引數。
標記: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_outputs
、incompatible_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_outputs
、incompatible_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_analysis
、affects_outputs
、incompatible_change
--[no]incompatible_use_python_toolchains
預設值:「true」-
如果設為 true,可執行的原生 Python 規則將使用 Python 工具鍊指定的 Python 執行階段,而非舊版旗標 (例如 --python_top) 指定的執行階段。
標記:loading_and_analysis
、incompatible_change
--python_version=<PY2 or PY3>
預設:查看說明-
Python 主要版本模式,可選為 `PY2` 或 `PY3`。請注意,這會由 `py_binary` 和 `py_test` 目標覆寫 (即使未明確指定版本),因此通常沒有提供這個旗標的必要。
標記:loading_and_analysis
、affects_outputs
- 其他選項 (不屬於其他類別):
--[no]cache_test_results
[-t
] 預設值:「auto」- 如果設為「auto」,Bazel 只會在以下情況重新執行測試:(1) Bazel 偵測到測試或其依附元件的變更,(2) 測試標示為外部,(3) 使用 --runs_per_test 要求執行多個測試,或(4) 測試先前失敗。如果設為「yes」,Bazel 會快取所有測試結果,但標示為外部的測試除外。如果設為「no」,Bazel 就不會快取任何測試結果。
--[no]experimental_cancel_concurrent_tests
預設值:「false」-
如果為 true,Blaze 會在第一次成功執行時取消並行執行測試。只有在搭配 --runs_per_test_Detects_flakes 時才能使用。
標記:affects_outputs
、loading_and_analysis
--[no]experimental_fetch_all_coverage_outputs
預設值:「false」-
如果為 true,Bazel 就會在執行涵蓋率時,為每項測試擷取整個涵蓋率資料目錄。
標記:affects_outputs
、loading_and_analysis
--[no]experimental_generate_llvm_lcov
預設值:「false」-
如果設為 True,clang 的涵蓋率就會產生 LCOV 報表。
標記:affects_outputs
、loading_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 的 deps 取得。目前僅適用於 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,Bazel 會在測試執行器未指出其支援透過輕觸 TEST_SHARD_STATUS_FILE 路徑上的檔案的方式來進行資料分割測試時。如果為 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_analysis
、incompatible_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>
預設值:請參閱說明- 指定用於在不分割的情況下執行解析的二進位檔。
--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_outputs
、loading_and_analysis
--proto_toolchain_for_cc=<a build target label>
預設:"@bazel_tools//tools/proto:cc_toolchain"-
proto_lang_toolchain() 的標籤,說明如何編譯 C++ 原型檔
標記:affects_outputs
、loading_and_analysis
--proto_toolchain_for_j2objc=<a build target label>
預設值:"@bazel_tools//tools/j2objc:j2objc_proto_toolchain"-
proto_lang_toolchain() 標籤,用於說明如何編譯 j2objc proto
標記:affects_outputs
、loading_and_analysis
--proto_toolchain_for_java=<a build target label>
預設值:"@bazel_tools//tools/proto:java_toolchain"-
proto_lang_toolchain() 的標籤,說明如何編譯 Java 原型檔
標記:affects_outputs
、loading_and_analysis
--proto_toolchain_for_javalite=<a build target label>
預設值:"@bazel_tools//tools/proto:javalite_toolchain"-
proto_lang_toolchain() 標籤,用於說明如何編譯 JavaLite protos
標記:affects_outputs
、loading_and_analysis
--protocopt=<a string>
累積多次使用-
傳遞至 protobuf 編譯器的其他選項。
標記:affects_outputs
--[no]runs_per_test_detects_flakes
預設值:「false」- 如果為 true,則任何具有至少一個成功執行/嘗試,以及至少一個失敗執行/嘗試的區塊,都會獲得「不穩定」狀態。
--shell_executable=<a path>
預設值:請參閱說明-
Shell 可執行檔的絕對路徑,供 Bazel 使用。如果未設定此值,但在第一次呼叫 Bazel (啟動 Bazel 伺服器) 時已設定 BAZEL_SH 環境變數,Bazel 就會使用該值。如果未設定這兩者,Bazel 會根據執行的作業系統使用硬式編碼的預設路徑 (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
--[no]experimental_repository_cache_hardlinks
預設值:「false」-
如果已設定,存放區快取會在快取命中時建立檔案的硬連結,而不是複製檔案。這麼做是為了節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer>
預設值:「0」-
重試下載錯誤的次數上限。如果設為 0,則系統會停用重試功能。
標記:experimental
--experimental_scale_timeouts=<a double>
預設值:「1.0」-
以這個係數縮放 Starlark 存放區規則中的所有逾時時間。如此一來,外部存放區就能在速度比規則作者預期慢的電腦上運作,而不需要變更原始碼
標記:bazel_internal_configuration
、experimental
--[no]incompatible_disable_native_repo_rules
預設值:「false」-
如果設為 false,則可在 WORKSPACE 中使用原生存放區規則;否則,必須改用 Starlark 存放區規則。原生存放區規則包括 local_repository、new_local_repository、local_config_platform、android_sdk_repository 和 android_ndk_repository。
標記: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」-
佔用已登記空間的百分比 (0-100),超過此值後,GcThrashingDetector 會根據限制 (--gc_thrashing_limits) 判斷記憶體壓力事件。如果設為 100,系統就會停用 GcThrashingDetector。
標記:host_machine_resource_optimizations
- 控制指令輸出的選項:
--[no]action_cache
預設值:「false」-
傾印動作快取內容。
標記:bazel_monitoring
--[no]packages
預設值:「false」-
傾印封裝內容快取內容。
標記:bazel_monitoring
--[no]rule_classes
預設值:「false」-
傾印規則類別。
標記:bazel_monitoring
--[no]rules
預設值:「false」-
傾印規則,包括計數和記憶體用量 (如果追蹤記憶體)。
標記:bazel_monitoring
--skyframe=<off, summary, count, deps or rdeps>
預設值:「off」-
Dump SkyFrame 圖表:「off」、「summary」、「count」、「deps」或「rdeps」。
標記:bazel_monitoring
--skykey_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths>
預設值:「.*」-
SkyKey 名稱的規則運算式篩選器,用於輸出內容。僅用於 --skyframe=deps、rdeps。
標記:bazel_monitoring
--skylark_memory=<a string>
預設:查看說明-
將與 Pprof 相容的記憶體設定檔虛擬化至指定路徑。詳情請參閱 https://github.com/google/pprof。
標記:bazel_monitoring
- 與 Bzlmod 輸出和語意相關的選項:
- 累積
--allow_yanked_versions=<a string>
次多次使用 -
以 `<module1>@<version1>,<module2>@<version2>` 的格式指定模組版本,即使這些版本在原始來源的登錄資料庫中已宣告為已撤銷 (如果這些版本不是來自 NonRegistryOverride),也能在解析的依附元件圖表中使用。否則,撤銷版本會導致解析失敗。您也可以使用 `BZLMOD_ALLOW_YANKED_VERSIONS` 環境變數,定義允許的撤銷版本。您可以使用「all」關鍵字停用這項檢查 (不建議)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off>
預設值:「error」-
檢查 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`。請注意,如果 MODULE.bazel 不是根模組,無論此標記的值為何,系統一律會忽略這些開發依附元件。
標記:loading_and_analysis
--lockfile_mode=<off, update, refresh or error>
預設值:「update」-
指定如何使用鎖定檔案,以及是否要使用鎖定檔案。有效值為「update」,使用 Lockfile,並在發生變更時更新檔案,「refresh」會不時重新整理遠端註冊資料庫的可變動資訊 (yanked 版本和先前缺少的模組)、「error」使用鎖定檔案,但如果不是最新版本,則會擲回錯誤;如果皆不讀取或寫入鎖定檔案,則會擲回錯誤。
標記: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,實際上沒有上限。零表示完整 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,實際上沒有上限。若為零,表示次要 GC 事件永遠不會觸發釋放作業。如果達到限制,當次要 GC 事件發生且保留堆積百分比超出閾值時,Skyframe 狀態就不會再捨棄。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer>
預設:「85」-
標記用於 Bazel 內部 Skyframe 引擎的進階設定。如果 Bazel 偵測到保留堆積使用率至少達到此門檻,就會捨棄不必要的暫時性 Skyframe 狀態。調整這個值,或許能減輕 GC 耗損的實際時間影響,前提是 GC 耗損 (i) 是由此暫時狀態的記憶體用量所造成,且 (ii) 比在必要時重建狀態的成本還要高。
標記:host_machine_resource_optimizations
- 影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock>
預設值:請參閱說明- 在指令執行期間記錄 Java Flight Recorder 設定檔。必須提供一個支援的剖析事件類型 (cpu、wall、alloc 或 lock) 做為引數。系統會將設定檔寫入輸出基礎目錄下以事件類型命名的檔案。這個標記的語法和語意日後可能會變更,以支援其他設定檔類型或輸出格式,請自行承擔使用風險。
--[no]experimental_record_metrics_for_all_mnemonics
預設值:「false」- 根據預設,動作類型數量上限為 20 個,且只會納入執行動作次數最多的 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」,系統就不會使用 worker 執行緒,且 repo 擷取作業會在重新啟動時執行。否則,請使用虛擬工作者執行緒。
- 其他選項,未歸類於其他類別:
- 累積
--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
--[no]experimental_repository_cache_hardlinks
預設值:「false」-
如果已設定,存放區快取會在快取命中時建立檔案的硬連結,而不是複製檔案。這麼做是為了節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer>
預設值:「0」-
重試下載錯誤的次數上限。如果設為 0,則系統會停用重試功能。
標記:experimental
--experimental_scale_timeouts=<a double>
預設值:「1.0」-
以這個係數縮放 Starlark 存放區規則中的所有逾時時間。如此一來,外部存放區就能在速度比規則作者預期慢的電腦上運作,而不需要變更原始碼
標記:bazel_internal_configuration
、experimental
--[no]incompatible_disable_native_repo_rules
預設值:「false」-
如果為 false,則可在 WORKSPACE 中使用原生存放區規則;否則,必須改用 Starlark 存放區規則。原生存放區規則包括 local_repository、new_local_repository、local_config_platform、android_sdk_repository 和 android_ndk_repository。
標記: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」-
佔用已登記空間的百分比 (0-100),超過此值後,GcThrashingDetector 會根據限制 (--gc_thrashing_limits) 判斷記憶體壓力事件。如果設為 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_analysis
、incompatible_change
--[no]incompatible_enforce_config_setting_visibility
預設值:「true」-
如果設為 true,系統就會強制執行 config_setting 曝光度限制。如果為 false,則每個目標都能看到每個 config_setting。請參閱 https://github.com/bazelbuild/bazel/issues/12932。
代碼:loading_and_analysis
、incompatible_change
- 與 Bzlmod 輸出和語意相關的選項:
--allow_yanked_versions=<a string>
累積多次使用-
以 `<module1>@<version1>,<module2>@<version2>` 的格式指定模組版本,即使這些版本在原始來源的登錄資料庫中已宣告為已撤銷 (如果這些版本不是來自 NonRegistryOverride),仍可在解析的依附元件圖表中使用。否則,將導致解析失敗。您也可以使用 `BZLMOD_ALLOW_YANKED_VERSIONS` 環境變數,定義允許的撤銷版本。您可以使用關鍵字「all」(不建議) 停用這項檢查。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off>
預設值:「error」-
檢查 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, refresh or error>
預設值:「update」-
指定是否使用 Lockfile 以及是否要使用。有效值包括 `update` (使用鎖定檔案,並在有變更時更新)、`refresh` (不時從遠端登錄重新整理可變更資訊 (已撤銷的版本和先前遺漏的模組))、`error` (使用鎖定檔案,但如果檔案未更新就會擲回錯誤) 或 `off` (既不讀取也不寫入鎖定檔案)。
標記:loading_and_analysis
--override_module=<an equals-separated mapping of module name to 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 是正整數。如果在 <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,實際上沒有上限。零表示完整 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,實際上沒有上限。若為零,表示次要 GC 事件永遠不會觸發釋放作業。如果達到限制,當次要 GC 事件發生且保留堆積百分比超出閾值時,Skyframe 狀態就不會再捨棄。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer>
預設值:「85」-
Bazel 內部 SkyFrame 引擎進階設定的標記。如果 Bazel 偵測到保留堆積使用率至少達到這個門檻,就會捨棄不必要的暫時性 Skyframe 狀態。調整這個值,或許能減輕 GC 耗損的實際時間影響,前提是 GC 耗損 (i) 是由此暫時狀態的記憶體用量所造成,且 (ii) 比在需要時重建狀態的成本更高。
標記:host_machine_resource_optimizations
- 影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock>
預設值:請參閱說明- 記錄指令期間的 Java Flight Recorder 設定檔。必須將支援的其中一個剖析事件類型 (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」開始傳回多個「重寫」指令。同個網址可能會傳回多個「重寫」指令,在這種情況下就會傳回多個「重寫」指令。
--experimental_worker_for_repo_fetching=<off, platform, virtual or auto>
預設值:「auto」- 用於擷取存放區的執行緒模式。如果設為「off」,系統就不會使用背景工作執行緒,而且存放區擷取作業將重新啟動。否則,請使用虛擬工作者執行緒。
- 其他選項,未歸類於其他類別:
--deleted_packages=<comma-separated list of package names>
累積多次使用- 以半形逗號分隔的套件名稱清單,即使這些套件名稱在套件路徑的某處可見,建構系統仍會視為不存在。刪除現有套件「x」的子套件「x/y」時,請使用這個選項。例如,在用戶端中刪除 x/y/BUILD 後,如果仍有其他 package_path 項目提供 '//x:y/z' 標籤,建構系統可能會抱怨。指定 --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
--[no]experimental_inprocess_symlink_creation
預設值:「false」-
是否要發出直接檔案系統呼叫來建立符號連結樹狀結構
標記:loading_and_analysis
、execution
、experimental
--[no]experimental_persistent_aar_extractor
預設值:「false」-
使用 worker 啟用持續性 AAR Extractor。
標記:execution
--[no]experimental_remotable_source_manifests
預設值:「false」-
是否要讓來源資訊清單動作可遠端執行
標記:loading_and_analysis
、execution
、experimental
--[no]experimental_split_coverage_postprocessing
預設值:「false」-
如果設為 true,Bazel 就會在新舊版本中執行涵蓋率後置測試。
標記:execution
--[no]experimental_strict_fileset_output
預設值:「false」-
如果啟用這個選項,檔案集會將所有輸出構件視為一般檔案。不會遍歷目錄,也不會對符號連結敏感。
標記:execution
--[no]incompatible_disallow_unsound_directory_outputs
預設值:「true」-
如果設為此值,動作將無法將輸出檔案實體化為目錄。不會影響來源目錄。請參閱 https://github.com/bazelbuild/bazel/issues/18646。
標記:bazel_internal_configuration
、incompatible_change
--[no]incompatible_modify_execution_info_additive
預設值:「false」-
啟用後,傳遞多個 --modify_execution_info 標記會相加。如果停用這項設定,系統只會將最後一個標記納入考量。
標記:execution
、affects_outputs
、loading_and_analysis
、incompatible_change
--[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' 會將 'requires-x' 新增至所有 Genrule 動作的執行資訊。針對所有非 Genrule 操作,「(?!Genrule).*=-requires-x'」會從執行資訊中移除「requires-x」。
標記:execution
、affects_outputs
、loading_and_analysis
--persistent_android_dex_desugar
-
使用工作者啟用持續性的 Android dex 和 desugar 動作。
會展開至:
--internal_persistent_android_dex_desugar
--strategy=Desugar=worker
--strategy=DexBuilder=worker
標記:host_machine_resource_optimizations
、execution
--persistent_android_resource_processor
-
使用 worker 啟用 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=Aapt2Optimize=worker
--strategy=AARGenerator=worker
--strategy=ProcessDatabinding=worker
--strategy=GenerateDataBindingBaseClasses=worker
host_machine_resource_optimizations
execution
--persistent_multiplex_android_dex_desugar
-
使用 worker 啟用持續性的多重 Android dex 和 desugar 動作。
會展開至:
--persistent_android_dex_desugar
--internal_persistent_multiplex_android_dex_desugar
代碼:host_machine_resource_optimizations
、execution
--persistent_multiplex_android_resource_processor
-
使用 worker 啟用持續性的多重 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
{14/7}
{14/5}
{14/5}
{14/5}
--modify_execution_info=AaptPackage=+supports-multiplex-workers
--modify_execution_info=AndroidResourceParser=+supports-multiplex-workers
--modify_execution_info=AndroidResourceValidator=+supports-multiplex-workers
--modify_execution_info=Aapt2Optimize=+supports-multiplex-workers
--modify_execution_info=AARGenerator=+supports-multiplex-workers
host_machine_resource_optimizations
execution
--persistent_multiplex_android_tools
-
啟用持續性和多重化的 Android 工具 (dexing、desugaring、資源處理)。
展開為:
--internal_persistent_multiplex_busybox_tools
--persistent_multiplex_android_resource_processor
--persistent_multiplex_android_dex_desugar
標記:host_machine_resource_optimizations
、execution
--[no]use_target_platform_for_tests
預設值:「false」-
如果為 true,Bazel 會使用目標平台執行測試,而不是使用測試執行群組。
代碼:execution
- 設定用於執行動作的工具鍊的選項:
--android_compiler=<a string>
預設值:請參閱說明-
Android 目標編譯器。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
--android_crosstool_top=<a build target label>
預設值:「//external:android/crosstool」-
用於 Android 建構的 C++ 編譯器位置。
標記:affects_outputs
、changes_inputs
、loading_and_analysis
、loses_incremental_state
--android_grte_top=<a label>
預設:查看說明-
Android 目標 grte_top。
標記:changes_inputs
、loading_and_analysis
、loses_incremental_state
--android_manifest_merger=<legacy, android or force_android>
預設值:「android」-
選取要用於 android_binary 規則的資訊清單合併工具。旗標,可協助從舊版合併工具轉換至 Android 資訊清單合併工具。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
--android_platforms=<a build target label>
預設值:""-
設定 android_binary 目標使用的平台。如果指定多個平台,則二進位檔會是笨重的 APK,其中包含每個指定目標平台的原生二進位檔。
標記:changes_inputs
、loading_and_analysis
、loses_incremental_state
--android_sdk=<a build target label>
預設:"@bazel_tools//tools/android:sdk"-
指定用於建構 Android 應用程式的 Android SDK/平台。
標記:changes_inputs
、loading_and_analysis
、loses_incremental_state
--apple_crosstool_top=<a build target label>
預設值:"@bazel_tools//tools/cpp:toolchain"-
要用於 Apple 和 Objc 規則及其依附元件的 Crosstool 套件標籤。
標記:loses_incremental_state
、changes_inputs
--cc_output_directory_tag=<a string>
預設值:「」-
指定要新增至設定目錄的後置字串。
標記:affects_outputs
--compiler=<a string>
預設值:請參閱說明-
用於編譯目標的 C++ 編譯器。
標記:loading_and_analysis
、execution
--coverage_output_generator=<a build target label>
預設值:「@bazel_tools//tools/test:lcov_merger」-
用於後處理原始涵蓋率報表的二進位檔位置。這個檔案群組目前必須包含單一檔案 (二進位檔)。預設值為「//tools/test:lcov_merger」。
標記:changes_inputs
、affects_outputs
、loading_and_analysis
--coverage_report_generator=<a build target label>
預設值:"@bazel_tools//tools/test:coverage_report_generator"-
用於產生涵蓋率報表的二進位檔位置。目前這必須是內含單一檔案 (二進位檔) 的檔案群組。預設值為 '//tools/test:coverage_report_generator'。
標記:changes_inputs
、affects_outputs
、loading_and_analysis
--coverage_support=<a build target label>
預設值:「@bazel_tools//tools/test:coverage_support」-
收集程式碼涵蓋率的每個測試動作輸入項目所需的支援檔案位置。預設值為 '//tools/test:coverage_support'。
標記:changes_inputs
、affects_outputs
、loading_and_analysis
--crosstool_top=<a build target label>
預設:"@bazel_tools//tools/cpp:toolchain"-
用於編譯 C++ 程式碼的 crosstool 套件標籤。
標記:loading_and_analysis
、changes_inputs
、affects_outputs
--custom_malloc=<a build target label>
預設:查看說明-
指定自訂 Malloc 實作。這項設定會覆寫建構規則中的 malloc 屬性。
標記:changes_inputs
、affects_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_state
、loading_and_analysis
、execution
--[no]experimental_prefer_mutual_xcode
預設值:「true」-
如果為 true,請使用在本機和遠端都可用的最新 Xcode。如果為 false,或沒有可用的共同版本,請使用透過 xcode-select 所選的本機 Xcode 版本。
標記:loses_incremental_state
--extra_execution_platforms=<comma-separated list of options>
預設值:""-
可用於執行動作的執行平台。您可以使用完全比對目標或目標模式指定平台。系統會先考量這些平台,再透過 register_execution_platforms() 宣告到 WORKSPACE 檔案中顯示的平台。這個選項只能設定一次;之後的執行個體將覆寫先前的標記設定。
標記:execution
--extra_toolchains=<comma-separated list of options>
累積多次使用-
在工具鍊解析期間要考量的工具鍊規則。工具鍊可以由精確目標或目標模式指定。系統會先考慮這些工具鍊,再考慮 WORKSPACE 檔案中透過 register_toolchains() 宣告的工具鍊。
標記:affects_outputs
、changes_inputs
、loading_and_analysis
--grte_top=<a label>
預設值:請參閱說明-
已簽到 libc 程式庫的標籤。預設值是由 crosstool 工具鍊選取,您幾乎不需要覆寫。
標記:action_command_lines
、affects_outputs
--host_compiler=<a string>
預設值:請參閱說明-
用於主機編譯作業的 C++ 編譯器。如果未設定 --host_crosstool_top,系統會忽略這個屬性。
標記:loading_and_analysis
、execution
--host_crosstool_top=<a build target label>
預設值:請參閱說明-
根據預設,--crosstool_top 和 --compiler 選項也會用於執行設定。如果您提供這個標記,Bazel 會為指定的 Crosstool_top 使用預設的 libc 和編譯器。
標記:loading_and_analysis
、changes_inputs
、affects_outputs
--host_grte_top=<a label>
預設值:請參閱說明-
如果指定,這項設定會覆寫 exec 設定的 libc 頂層目錄 (--grte_top)。
標記:action_command_lines
、affects_outputs
--host_platform=<a build target label>
預設值:"@bazel_tools//tools:host_platform"-
平台規則的標籤,用於說明主機系統。
標記:affects_outputs
、changes_inputs
、loading_and_analysis
--[no]incompatible_dont_enable_host_nonhost_crosstool_features
預設值:「true」-
如果設為 true,Bazel 就不會在 c++ 工具鍊中啟用「host」和「nonhost」功能 (詳情請參閱 https://github.com/bazelbuild/bazel/issues/7407)。
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_enable_android_toolchain_resolution
預設值:「true」-
使用工具鍊解析來選取 Android 規則的 Android SDK (Starlark 和原生)
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_enable_apple_toolchain_resolution
預設值:「false」-
使用工具鍊解析度選取 Apple SDK for apple 規則 (Starlark 和 native)
代碼:loading_and_analysis
、incompatible_change
--[no]incompatible_make_thinlto_command_lines_standalone
預設值:「true」-
如果為 true,Bazel 就不會重複使用 C++ 連結動作指令列來執行 lto 索引指令列 (詳情請參閱 https://github.com/bazelbuild/bazel/issues/6791)。
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_remove_legacy_whole_archive
預設值:「true」-
如果設為 true,Bazel 預設不會連結程式庫依附元件完整的封存檔 (如需遷移操作說明,請參閱 https://github.com/bazelbuild/bazel/issues/7362)。
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_require_ctx_in_configure_features
預設值:「true」-
如果設為 true,Bazel 就會要求 cc_common.configure_features 中的 'ctx' 參數 (詳情請見 https://github.com/bazelbuild/bazel/issues/7793)。
標記:loading_and_analysis
、incompatible_change
-
如果工具鍊支援介面共用物件,請使用介面共用物件。目前所有 ELF 工具鍊都支援這項設定。
標記:loading_and_analysis
、affects_outputs
、affects_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>
預設:查看說明-
編譯目標的最低 OS 版本。
標記:loading_and_analysis
、affects_outputs
--platform_mappings=<a relative path>
預設值:""-
對應檔案的位置,可說明在未設定任何平台時要使用的平台,或在已存在平台時要設定的旗標。必須相對於主要工作區根目錄。預設值為「platform_mappings」(工作區根目錄下方的檔案)。
標記:affects_outputs
、changes_inputs
、loading_and_analysis
--platforms=<a build target label>
預設值:""-
平台規則的標籤,說明目前指令的目標平台。
標記:affects_outputs
、changes_inputs
、loading_and_analysis
--python2_path=<a string>
預設值:請參閱說明- 已淘汰,無操作。已由 `--incompatible_use_python_toolchains` 停用。
標記:no_op
、deprecated
--python3_path=<a string>
預設值:請參閱說明-
已淘汰,免人工管理。已由「--incompatible_use_python_toolchains」停用。
標記:no_op
、deprecated
--python_path=<a string>
預設值:請參閱說明-
在目標平台上執行 Python 目標時,系統會叫用 Python 解譯器的絕對路徑。已淘汰;已由 --incompatible_use_python_toolchains 停用。
標記:loading_and_analysis
、affects_outputs
--python_top=<a build target label>
預設值:請參閱說明-
這個 py_runtime 標籤,代表為了在目標平台上執行 Python 目標而叫用的 Python 解譯器。已淘汰;由 --incompatible_use_python_toolchains 停用。
標記:loading_and_analysis
、affects_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_config 規則的標籤,用於在建構設定中選取 Xcode 版本。
標記:loses_incremental_state
、loading_and_analysis
- 控制指令輸出的選項:
--[no]apple_generate_dsym
預設值:「false」-
是否產生偵錯符號 (.dSYM) 檔案。
標記:affects_outputs
、action_command_lines
--[no]build_runfile_links
預設值:「true」-
如果為 true,則為所有目標建構 runfiles 符號連結森林。如果是 false,請只在需要本機動作、測試或執行指令時寫入這些變數。
標記:affects_outputs
--[no]build_runfile_manifests
預設值:「true」-
如果為 true,則為所有目標寫入 runfiles 資訊清單。如果是 false,請省略。如果為 false,本機測試就會無法執行。
標記:affects_outputs
--[no]build_test_dwp
預設值:「false」-
如果啟用此選項,在使用 Fission 靜態建構 C++ 測試時,系統也會自動建構測試二進位檔的 .dwp 檔案。
標記:loading_and_analysis
、affects_outputs
--cc_proto_library_header_suffixes=<comma-separated set of options>
預設值:".pb.h"-
設定 cc_proto_library 建立的標頭檔案後置字串。
標記:affects_outputs
、loading_and_analysis
--cc_proto_library_source_suffixes=<comma-separated set of options>
預設值:「.pb.cc」-
設定 cc_proto_library 建立的來源檔案後置字串。
標記:affects_outputs
、loading_and_analysis
--[no]experimental_proto_descriptor_sets_include_source_info
預設值:「false」-
在 proto_library 中針對替代 Java API 版本執行額外動作。
標記:affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_proto_extra_actions
預設值:「false」-
針對 proto_library 中的其他 Java API 版本執行額外動作。
標記:affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_save_feature_state
預設值:「false」-
將已啟用和要求的功能的狀態儲存為編譯的輸出內容。
標記:affects_outputs
、experimental
--fission=<a set of compilation modes>
預設值:「no」-
指定哪些編譯模式適用於 C++ 編譯和連結。可為 {'fastbuild', 'dbg', 'opt'} 或特殊值的任意組合,其中 'yes'可啟用所有模式,'no'可停用所有模式。
標記:loading_and_analysis
、action_command_lines
、affects_outputs
--[no]incompatible_always_include_files_in_data
預設值:「true」-
如果為 true,原生規則會將資料依附元件的 <code>DefaultInfo.files</code> 新增至其執行檔,這與 Starlark 規則的建議行為相符 (https://bazel.build/extending/rules#runfiles_features_to_avoid)。
標記:affects_outputs
、incompatible_change
--[no]legacy_external_runfiles
預設值:「true」-
如果為 true,則會為 .runfiles/wsname/external/repo 下的外部存放區 (除了 .runfiles/repo) 建構執行檔案符號連結森林。
標記: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_outputs
、loading_and_analysis
、loses_incremental_state
--[no]android_databinding_use_androidx
預設值:「true」-
產生與 AndroidX 相容的資料繫結檔案。僅供資料繫結 v2 使用。這個標記為免人工管理。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]android_databinding_use_v3_4_args
預設值:「true」-
使用 Android Databinding v2 和 3.4.0 引數。這個標記不會執行任何操作。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--android_dynamic_mode=<off, default or fully>
預設值:「停用」-
決定在 cc_binary 未明確建立共用程式庫時,是否要動態連結 Android 規則的 C++ 依附元件。「預設」表示 Bazel 會選擇是否要動態連結。「fully」表示所有程式庫都會動態連結。「off」表示所有程式庫都會以靜態模式連結。
標記:affects_outputs
、loading_and_analysis
--android_manifest_merger_order=<alphabetical, alphabetical_by_configuration or dependency>
預設值:「alphabetical」-
設定傳遞至 Android 二進位檔資訊清單合併工具的資訊清單順序。ALPHABETICAL 表示資訊清單是根據執行程式的相對路徑排序。ALPHABETICAL_BY_CONFIGURATION 表示資訊清單會依據輸出目錄中相對於設定目錄的路徑排序。DEPENDENCY 表示資訊清單會依序排列,每個程式庫的資訊清單會排在其依附元件的資訊清單之前。
標記:action_command_lines
、execution
--[no]android_resource_shrinking
預設值:「false」-
針對使用 ProGuard 的 android_binary APK 啟用資源縮減功能。
標記:affects_outputs
、loading_and_analysis
--[no]build_python_zip
預設值:「auto」-
建構 Python 可執行的 zip 檔案;在 Windows 上開啟,在其他平台上關閉
標記:affects_outputs
--catalyst_cpus=<comma-separated list of options>
累積多次使用-
以半形逗號分隔的清單,列出要用來建構 Apple Catalyst 二進位檔的架構。
標記:loses_incremental_state
、loading_and_analysis
--[no]collect_code_coverage
預設值:「false」-
如有指定,Bazel 會檢測程式碼 (盡可能使用離線檢測功能),並在測試期間收集涵蓋率資訊。只有符合 --instrumentation_filter 的目標才會受到影響。通常不應直接指定這個選項,而應改用「bazel coverage」指令。
標記:affects_outputs
--compilation_mode=<fastbuild, dbg or opt>
[-c
] 預設值:「fastbuild」-
指定二進位檔的建構模式。值:'fastbuild'、'dbg'、'opt'。
標記:affects_outputs
、action_command_lines
- 累積
--conlyopt=<a string>
次多次使用 -
編譯 C 來源檔案時,要傳遞至 gcc 的其他選項。
標記:action_command_lines
、affects_outputs
--copt=<a string>
累積多次使用-
傳遞至 gcc 的其他選項。
標記:action_command_lines
、affects_outputs
--cpu=<a string>
預設值:""-
目標 CPU。
標記:changes_inputs
、affects_outputs
--cs_fdo_absolute_path=<a string>
預設:查看說明-
使用 CSFDO 設定檔資訊來最佳化編譯作業。指定內含設定檔檔案的 ZIP 檔案的絕對路徑名稱,也就是原始或索引 LLVM 設定檔檔案。
標記: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_lines
、affects_outputs
--define=<a 'name=value' assignment>
累積多次使用-
每個 --define 選項都會指定建構變數的值。
標記:changes_inputs
、affects_outputs
--dynamic_mode=<off, default or fully>
預設值:"default"-
決定是否要動態連結 C++ 二進位檔。「預設」表示 Bazel 會選擇是否要動態連結。「fully」表示所有程式庫都會動態連結。「關閉」表示所有程式庫都會以靜態模式建立連結。
標記:loading_and_analysis
、affects_outputs
--[no]enable_fdo_profile_absolute_path
預設值:「true」-
如果設為此值,使用 fdo_absolute_profile_path 會引發錯誤。
標記:affects_outputs
--[no]enable_runfiles
預設值:「auto」-
啟用執行檔案符號連結樹狀結構;在 Windows 的其他平台上,這項功能預設為關閉。
標記:affects_outputs
--experimental_action_listener=<a build target label>
累積多次使用- 已淘汰,改用切面。使用 action_listener 將 extra_action 附加至現有的建構動作。
標記:execution
、experimental
--[no]experimental_android_compress_java_resources
預設值:「false」-
壓縮 APK 中的 Java 資源
標記:affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_android_databinding_v2
預設值:「true」-
使用 Android Databinding v2。這個標記不會執行任何操作。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]experimental_android_resource_shrinking
預設值:「false」-
為使用 ProGuard 的 android_binary APK 啟用資源縮減功能。
標記:affects_outputs
、loading_and_analysis
--[no]experimental_android_rewrite_dexes_with_rex
預設值:「false」-
使用 rex 工具重寫 dex 檔案
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[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 和 -fasynchronous-unwind-tables 進行編譯。
標記:action_command_lines
、affects_outputs
、experimental
--experimental_output_paths=<off, content or strip>
預設值:「off」-
在輸出樹狀結構規則寫入輸出內容時,應使用哪個模型,特別適用於多平台 / 多設定版本。這項實驗功能相當實驗性詳情請參閱 https://github.com/bazelbuild/bazel/issues/6526。Starlark 動作可以選擇啟用路徑對應功能,方法是將「supports-path-mapping」鍵新增至「execution_requirements」字典。
標記:loses_incremental_state
、bazel_internal_configuration
、affects_outputs
、execution
--experimental_override_name_platform_in_output_dir=<a 'label=value' assignment>
累積多次使用-
每個項目都應採用 label=value 的格式,其中 label 是指平台,而 value 是輸出路徑中要使用的所需簡稱。僅在 --experimental_platform_in_output_dir 為 true 時使用。具有最高的命名優先順序。
標記:affects_outputs
、experimental
--[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_outputs
、experimental
--[no]experimental_use_llvm_covmap
預設值:「false」-
如果指定此選項,在啟用 collect_code_coverage 時,Bazel 會產生 llvm-cov 涵蓋範圍對應資訊,而非 gcov。
標記:changes_inputs
、affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_use_platforms_in_output_dir_legacy_heuristic
預設值:「true」-
請僅在建議的遷移或測試策略中使用這個標記。請注意,啟發式搜尋有已知的缺陷,建議您改為只使用 --experimental_override_name_platform_in_output_dir。
標記:affects_outputs
、experimental
--fat_apk_cpu=<comma-separated set of options>
預設:「armeabi-v7a」-
設定這個選項會啟用笨重的 APK,其中包含所有指定目標架構的原生二進位檔,例如 --fat_apk_cpu=x86,armeabi-v7a. 如果指定這個旗標,系統就會忽略 android_binary 規則的依附元件中的 --android_cpu。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
--[no]fat_apk_hwasan
預設值:「false」-
是否要建立 HWASAN 分割項目。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
--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_inputs
、affects_outputs
--[no]force_pic
預設值:「false」-
如果啟用這項政策,所有 C++ 編譯都會產生與位置無關的程式碼 (「-fPIC」),連結偏好 PIC 預先建構的程式庫,而非非 PIC 程式庫,而連結則會產生位置獨立的執行檔 (「-pie」)。
標記:loading_and_analysis
、affects_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_outputs
、action_command_lines
- 累積
--host_conlyopt=<a string>
次多次使用 -
在 exec 設定中編譯 C (而非 C++) 來源檔案時,傳遞至 C 編譯器的其他選項。
標記:action_command_lines
、affects_outputs
--host_copt=<a string>
累積多次使用-
傳遞至 C 編譯器的其他選項,適用於 exec 設定中建立的工具。
標記:action_command_lines
、affects_outputs
--host_cpu=<a string>
預設值:「」- 主機 CPU。
標記:changes_inputs
、affects_outputs
--host_cxxopt=<a string>
累積多次使用-
針對在執行設定中建構的工具,傳遞至 C++ 編譯器的其他選項。
標記:action_command_lines
、affects_outputs
--host_features=<a string>
累積多次使用-
對於在執行設定中建構的目標,系統會依預設啟用或停用指定功能。指定 -<feature> 會停用該功能。負面特徵一律會覆寫正面特徵。
標記:changes_inputs
、affects_outputs
--host_force_python=<PY2 or PY3>
預設值:請參閱說明-
覆寫 exec 設定的 Python 版本。可以是「PY2」或「PY3」。
標記:loading_and_analysis
、affects_outputs
--host_linkopt=<a string>
累積多次使用-
在執行設定中連結工具時,要傳遞至連結器的其他選項。
標記:action_command_lines
、affects_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@選項_1,選項_2,...,選項_n。其中 regex_filter 代表包含和排除規則運算式模式的清單 (另請參閱 --instrumentation_filter)。 option_1 到 option_1 代表任意指令列選項。如果選項中包含半形逗號,就必須用反斜線加引號。選項可以包含 @。只有第一個 @ 會用來分割字串。範例:--host_per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 會將 -O0 指令列選項新增至 //foo/ 中所有 cc 檔案 (除了 bar.cc) 的 gcc 指令列。
標記:action_command_lines
、affects_outputs
--host_swiftcopt=<a string>
累積多次使用-
傳遞至 swiftc 的 exec 工具其他選項。
標記:action_command_lines
、affects_outputs
--[no]incompatible_auto_exec_groups
預設值:「false」-
啟用後,系統會為規則使用的每個工具鍊自動建立執行群組。為使這項規則運作,您需要在其動作中指定「toolchain」參數。如需更多資訊,請參閱 https://github.com/bazelbuild/bazel/issues/17134。
標記:affects_outputs
、incompatible_change
--[no]incompatible_merge_genfiles_directory
預設值:「true」-
如果為 true,genfiles 目錄會摺疊至 bin 目錄。
標記:affects_outputs
、incompatible_change
--[no]incompatible_use_host_features
預設值:「true」-
如為 true,請僅針對目標設定使用 --features,用於執行設定時則使用 --host_features。
標記:changes_inputs
、affects_outputs
、incompatible_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_state
、loading_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_lines
、affects_outputs
、deprecated
--linkopt=<a string>
累積多次使用-
連結時傳遞至 gcc 的其他選項。
標記:action_command_lines
、affects_outputs
--ltobackendopt=<a string>
累積多次使用-
傳遞至 LTO 後端步驟的其他選項 (在 --features=thin_lto 下方)。
標記:action_command_lines
、affects_outputs
--ltoindexopt=<a string>
累積多次使用-
傳遞至 LTO 索引步驟的其他選項 (在 --features=thin_lto 下方)。
標記:action_command_lines
、affects_outputs
--macos_cpus=<comma-separated list of options>
累積多次使用-
以半形逗號分隔的架構清單,用於建構 Apple macOS 二進位檔。
標記:loses_incremental_state
、loading_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 到 option_n 代表任意指令列選項。如果選項包含半形逗號,則必須在半形逗號前後加上反斜線。選項可以包含 @,系統只會使用第一個 @ 來分割字串。範例:--per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 會將 -O0 指令列選項新增至 //foo/ 中所有 cc 檔案 (除了 bar.cc) 的 gcc 指令列。
標記:action_command_lines
、affects_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@選項_1,選項_2,...,選項_n。其中 regex_filter 代表包含和排除規則運算式的清單。option_1 到 option_n 代表任意指令列選項。如果選項包含半形逗號,則必須在半形逗號前後加上反斜線。選項可以包含 @,系統只會使用第一個 @ 來分割字串。範例:--per_file_ltobackendopt=//foo/.*\.o,-//foo/bar\.o@-O0 將 -O0 指令列選項新增至 //foo/ ( bar.o 除外) 中所有檔案的 LTO 後端指令列。
標記:action_command_lines
、affects_outputs
--platform_suffix=<a string>
預設值:請參閱說明-
指定要新增至設定目錄的後置字串。
標記:loses_incremental_state
、affects_outputs
、loading_and_analysis
--propeller_optimize=<a build target label>
預設:查看說明-
使用 Propeller 設定檔資訊來改善建構目標。Propeller 設定檔至少必須包含以下兩個檔案之一:cc 設定檔和 ld 設定檔。此旗標接受建構標籤,該標籤必須參照依附元件設定檔輸入檔案。舉例來說,定義標籤的 BUILD 檔案,在 a/b/BUILD:propeller_optimize( name = "propeller_profile", cc_profile = "propeller_cc_profile.txt", ld_profile = "propeller_ld_profile.txt",) 中,您可能必須在對應的套件中加入 exports_files 指示詞,才能讓 Bazel 看到這些檔案。這個選項必須以以下方式使用:--propeller_optimize=//a/b:propeller_profile
標記:action_command_lines
、affects_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
-
如果為 true,含有相同功能的原生程式庫會在不同目標之間共用
標記:loading_and_analysis
、affects_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' 二進位檔時,要傳遞至 strip 的其他選項。
標記:action_command_lines
、affects_outputs
- 累積
--swiftcopt=<a string>
次多次使用 -
傳遞至 Swift 編譯的其他選項。
標記:action_command_lines
--tvos_cpus=<comma-separated list of options>
累積多次使用-
以半形逗號分隔的架構清單,用於建構 Apple tvOS 二進位檔。
標記:loses_incremental_state
、loading_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_state
、loading_and_analysis
--watchos_cpus=<comma-separated list of options>
累積多次使用-
以半形逗號分隔的架構清單,用於建構 Apple watchOS 二進位檔。
標記:loses_incremental_state
、loading_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 值的 environment_group。
標記:changes_inputs
、loading_and_analysis
、experimental
--[no]check_licenses
預設值:「false」-
請確認依附套件施加的授權限制,不會與建構目標的發布模式衝突。根據預設,系統不會檢查授權。
標記:build_file_semantics
--[no]check_visibility
預設值:「true」-
如果停用,目標依附元件中的顯示錯誤會降級為警告。
標記:build_file_semantics
--[no]desugar_for_android
預設值:「true」-
是否要在解碼前脫糖 Java 8 位元組碼。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
--[no]desugar_java8_libs
預設值:「false」-
是否要在舊版裝置的應用程式中加入支援的 Java 8 程式庫。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]enforce_constraints
預設值:「true」-
檢查每個目標的相容環境,如果任何目標的依附元件不支援相同的環境,就會回報錯誤
標記:build_file_semantics
--[no]experimental_check_desugar_deps
預設值:「true」-
是否要再次檢查 Android 二進位檔層級的正確去糖化。
標記:eagerness_to_exit
、loading_and_analysis
、experimental
--experimental_import_deps_checking=<off, warning or error>
預設值:「關閉」-
啟用後,請檢查 aar_import 的依附元件是否已完成。這項強制執行措施可能會導致建構作業中斷,或只會產生警告。
標記:loading_and_analysis
--experimental_one_version_enforcement=<off, warning or error>
預設值:「OFF」-
啟用後,系統會強制規定 java_binary 規則在 classpath 中不得包含同一個類別檔案的多個版本。這項強制執行措施可能會導致建構作業中斷,或只會產生警告。
標記:loading_and_analysis
--experimental_strict_java_deps=<off, warn, error, strict or default>
預設值:"default"-
如果為 true,請檢查 Java 目標是否明確宣告所有直接使用的目標做為依附元件。
標記:build_file_semantics
、eagerness_to_exit
--[no]incompatible_check_testonly_for_output_files
預設值:「false」-
如果啟用,請查詢產生規則的 testonly,檢查 testonly 是否為輸出檔案的必要條件目標。這與檢查瀏覽權限相符。
標記:build_file_semantics
、incompatible_change
--[no]incompatible_check_visibility_for_toolchains
預設值:「false」-
如果啟用,瀏覽權限檢查功能也會套用至工具鍊實作。
標記:build_file_semantics
、incompatible_change
--[no]incompatible_disable_native_android_rules
預設值:「false」-
如果啟用,系統就會停用原生 Android 規則的直接用法。請使用 https://github.com/bazelbuild/rules_android 中的 Starlark Android 規則
標記:eagerness_to_exit
、incompatible_change
--[no]incompatible_disable_native_apple_binary_rule
預設值:「false」-
無操作。為回溯相容性而保留。
標記:eagerness_to_exit
、incompatible_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_analysis
、incompatible_change
--[no]incompatible_validate_top_level_header_inclusions
預設值:「true」-
如果為 true,Bazel 也會驗證頂層目錄標頭納入項目 (詳情請參閱 https://github.com/bazelbuild/bazel/issues/10047)。
標記:loading_and_analysis
、incompatible_change
--[no]one_version_enforcement_on_java_tests
預設值:「true」-
啟用此選項後,如果 experimental_one_version_enforcement 設為非 NONE 值,系統就會在 java_test 目標上強制執行一個版本。您可以停用這個標記,以便提升增量測試效能,但可能會錯過某個版本的違規項目。
標記:loading_and_analysis
--python_native_rules_allowlist=<a build target label>
預設值:請參閱說明-
在強制執行 --incompatible_python_disallow_native_rules 時,要使用的許可清單 (package_group 目標)。
標記:loading_and_analysis
--[no]strict_filesets
預設值:「false」-
如果啟用這個選項,系統會將跨越套件邊界的檔案集回報為錯誤。
標記:build_file_semantics
、eagerness_to_exit
--strict_proto_deps=<off, warn, error, strict or default>
預設值:「error」-
除非設為 OFF,否則會檢查 proto_library 目標是否明確將所有直接使用的目標宣告為依附元件。
標記:build_file_semantics
、eagerness_to_exit
、incompatible_change
--strict_public_imports=<off, warn, error, strict or default>
預設值:「off」-
除非設為 OFF,否則會檢查 proto_library 目標是否明確宣告在「import public」中使用的所有目標為匯出目標。
標記:build_file_semantics
、eagerness_to_exit
、incompatible_change
--[no]strict_system_includes
預設值:「false」-
如果設為 true,則系統會透過系統包含路徑 (-isystem) 找到的標頭,也必須宣告。
標記:loading_and_analysis
、eagerness_to_exit
--target_environment=<a build target label>
累積多次使用-
宣告此建構作業的目標環境。必須是「環境」規則的標籤參照。如果指定了這個環境,則所有頂層目標都必須與這個環境相容。
標記:changes_inputs
- 影響建構簽署輸出內容的選項:
--apk_signing_method=<v1, v2, v1_v2 or v4>
預設值:「v1_v2」-
用於簽署 APK 的實作項目
標記:action_command_lines
、affects_outputs
、loading_and_analysis
--[no]device_debug_entitlements
預設值:「true」-
如果已設定,且編譯模式不是「opt」,則 objc 應用程式會在簽署時加入偵錯授權。
標記:changes_inputs
--ios_signing_cert_name=<a string>
預設值:請參閱說明-
用於 iOS 簽署的憑證名稱。如未設定,系統會改回佈建設定檔。根據 codesign 的 man 頁面 (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_analysis
、incompatible_change
--[no]incompatible_disallow_legacy_py_provider
預設值:「true」-
無操作,即將移除。
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_disallow_sdk_frameworks_attributes
預設值:「false」-
如果設為 true,就禁止在 objc_library 和 objc_import 中使用 sdk_frameworks 和 weak_sdk_frameworks 屬性。
標記:build_file_semantics
、incompatible_change
--[no]incompatible_enforce_config_setting_visibility
預設值:「true」-
如果為 true,系統會強制執行 config_setting 曝光度限制。如果為 false,則每個目標都能看到每個 config_setting。詳情請參閱 https://github.com/bazelbuild/bazel/issues/12932。
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_objc_alwayslink_by_default
預設值:「false」-
如果為 true,請將 objc_library 和 objc_import 中的 alwayslink 屬性預設值設為 true。
標記:build_file_semantics
、incompatible_change
--[no]incompatible_python_disallow_native_rules
預設值:「false」-
如果為 true,使用內建 py_* 規則時會發生錯誤,而應使用規則_python 規則。如需詳細資訊和遷移操作說明,請前往 https://github.com/bazelbuild/bazel/issues/17773。
標記:loading_and_analysis
、incompatible_change
- 用於控管測試環境或測試執行工具行為的選項:
--[no]allow_analysis_failures
預設值:「false」-
如果設為 true,規則目標的分析失敗會導致目標傳播包含錯誤說明的 AnalysisFailureInfo 例項,而不會導致建構失敗。
標記:loading_and_analysis
、experimental
--analysis_testing_deps_limit=<an integer>
預設:「2000」-
透過 for_analysis_testing 設定轉換的規則屬性,設定遞移依附元件的數量上限。若超出這項限制,就會導致規則錯誤。
標記:loading_and_analysis
--[no]break_build_on_parallel_dex2oat_failure
預設值:「false」-
如果 Truex2oat 動作失敗,建構作業就會導致建構作業中斷,而不是在測試執行階段執行 dex2oat。
標記:loading_and_analysis
、experimental
--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,並可選擇加上 [-|*]<浮點> (例如 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_analysis
、host_machine_resource_optimizations
、experimental
--[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。其中 runs_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
- Bzlmod 輸出和語意相關選項:
--[no]configure
預設值:「false」-
系統只會擷取標示為「configure」的存放區,用於系統設定。只有在 --enable_bzlmod 開啟時才有效。
標記:changes_inputs
--[no]force
預設值:「false」-
忽略現有的存放區 (如有),並強制重新擷取存放區。只有在 --enable_bzlmod 開啟時才有效。
標記:changes_inputs
--repo=<a string>
累積多次使用-
只會擷取指定的存放區,可以是 {@apparent_repo_name} 或 {@@規範_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_analysis
、execution
、affects_outputs
、experimental
--[no]experimental_inmemory_jdeps_files
預設值:「true」-
如果啟用此選項,系統會直接從遠端建構節點,透過記憶體傳遞從 Java 編譯產生的依附元件檔案 (.jdeps),而不會寫入磁碟。
標記:loading_and_analysis
、execution
、affects_outputs
、experimental
--[no]experimental_objc_include_scanning
預設值:「false」-
是否要為 Objective-C/C++ 執行包含掃描。
標記:loading_and_analysis
、execution
、changes_inputs
--[no]experimental_retain_test_configuration_across_testonly
預設值:「false」-
啟用後,--trim_test_configuration 不會針對標示為 testonly=1 的規則裁剪測試設定。這項功能旨在減少非測試規則依賴 cc_test 規則時的動作衝突問題。如果 --trim_test_configuration 為 false,就不會產生任何影響。
標記:loading_and_analysis
、loses_incremental_state
--[no]experimental_starlark_cc_import
預設值:「false」-
如果啟用,即可使用 Starlark 版本的 cc_import。
標記:loading_and_analysis
、experimental
--[no]experimental_unsupported_and_brittle_include_scanning
預設值:「false」-
是否要透過剖析輸入檔案中的 #include 行,將輸入內容縮減為 C/C++ 編譯。這麼做可減少編譯輸入樹狀結構大小,進而提升效能和成效增幅。不過,由於包含掃描器未完全實作 C 預處理器語意,因此也可能會導致建構作業中斷。具體來說,它無法瞭解動態 #include 指示,並會忽略預處理器條件邏輯。您必須自行承擔使用風險。與此標記相關的任何問題都會結案。
標記:loading_and_analysis
、execution
、changes_inputs
--[no]incremental_dexing
預設值:「true」-
針對每個 Jar 檔案分別執行大部分的解析工作。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
--[no]objc_use_dotd_pruning
預設值:「true」-
如果設定,系統會使用 Clang 產生的 .d 檔案,來修剪傳遞至 objc 編譯作業的輸入集合。
標記:changes_inputs
、loading_and_analysis
--[no]process_headers_in_dependencies
預設值:「false」-
建立目標 //a:a 時,所有 //a:a 取決於目標的作業標頭 (如果工具鍊已啟用標頭處理)。
標記:execution
--[no]trim_test_configuration
預設值:「true」-
啟用後,系統會清除版本頂層以下的測試相關選項。啟用此標記後,測試就無法建構為非測試規則的依附元件,但變更測試相關選項不會導致非測試規則重新分析。
標記:loading_and_analysis
、loses_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_outputs
、incompatible_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_outputs
、incompatible_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_analysis
、affects_outputs
、incompatible_change
--[no]incompatible_use_python_toolchains
預設值:「true」-
如果設為 true,可執行的原生 Python 規則將使用 Python 工具鍊指定的 Python 執行階段,而非舊版旗標 (例如 --python_top) 指定的執行階段。
標記:loading_and_analysis
、incompatible_change
--python_version=<PY2 or PY3>
預設值:請參閱說明-
Python 主要版本模式,可為 `PY2` 或 `PY3`。請注意,這會由 `py_binary` 和 `py_test` 目標覆寫 (即使未明確指定版本),因此通常沒有提供這個旗標的必要。
標記:loading_and_analysis
、affects_outputs
- 其他選項,無法透過其他方式分類:
--[no]cache_test_results
[-t
] 預設值:「auto」- 如果設為「auto」,Bazel 只會在下列情況下重新執行測試:(1) Bazel 偵測到測試或其依附元件的變更、(2) 測試標示為外部、(3) 使用 --runs_per_test 要求執行多個測試,或(4) 測試先前失敗。如果設為「yes」,Bazel 會快取所有測試結果,除了標示為外部的測試以外。如果設為「no」,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_outputs
、loading_and_analysis
--[no]experimental_fetch_all_coverage_outputs
預設值:「false」-
如果為 true,Bazel 就會在執行涵蓋率時,為每項測試擷取整個涵蓋率資料目錄。
標記:affects_outputs
、loading_and_analysis
--[no]experimental_generate_llvm_lcov
預設值:「false」-
如果設為 True,Clang 的涵蓋率將產生 LCOV 報告。
標記:affects_outputs
、loading_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 的 deps 取得。目前僅適用於 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_analysis
、incompatible_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_outputs
、loading_and_analysis
--proto_toolchain_for_cc=<a build target label>
預設值:"@bazel_tools//tools/proto:cc_toolchain"-
proto_lang_toolchain() 的標籤,說明如何編譯 C++ 原型檔
標記:affects_outputs
、loading_and_analysis
--proto_toolchain_for_j2objc=<a build target label>
預設值:"@bazel_tools//tools/j2objc:j2objc_proto_toolchain"-
proto_lang_toolchain() 的標籤,說明如何編譯 j2objc 原型檔
標籤:affects_outputs
、loading_and_analysis
--proto_toolchain_for_java=<a build target label>
預設值:"@bazel_tools//tools/proto:java_toolchain"-
proto_lang_toolchain() 的標籤,說明如何編譯 Java 原型檔
標記:affects_outputs
、loading_and_analysis
--proto_toolchain_for_javalite=<a build target label>
預設值:"@bazel_tools//tools/proto:javalite_toolchain"-
proto_lang_toolchain() 的標籤,說明如何編譯 JavaLite 原型檔
標記:affects_outputs
、loading_and_analysis
--protocopt=<a string>
累積多次使用-
傳遞至 protobuf 編譯器的其他選項。
標記:affects_outputs
--[no]runs_per_test_detects_flakes
預設值:「false」- 如果為 true,則任何具有至少一個成功執行/嘗試,以及至少一個失敗執行/嘗試的區塊,都會取得 FLAKY 狀態。
--shell_executable=<a path>
預設值:請參閱說明-
Shell 可執行檔的絕對路徑,供 Bazel 使用。如未設定,但 Bazel 會在第一個 Bazel 叫用 (啟動 Bazel 伺服器) 上設定 BAZEL_SH 環境變數。如果兩者皆未設定,Bazel 將根據執行時所在的作業系統,使用硬式編碼的預設路徑 (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>
預設值:「煽情露骨內容」- 指定測試區塊劃分策略:如果有 '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
--[no]experimental_repository_cache_hardlinks
預設值:「false」-
如果已設定,存放區快取會在快取命中時建立檔案的硬連結,而不是複製檔案。這麼做是為了節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer>
預設值:「0」-
重試下載錯誤的次數上限。如果設為 0,則系統會停用重試功能。
標記:experimental
--experimental_scale_timeouts=<a double>
預設:「1.0」-
以這個係數縮放 Starlark 存放區規則中的所有逾時時間。這樣一來,就能在不變更原始碼的情況下,在比規則編寫速度更慢的機器上運作外部存放區
標記:bazel_internal_configuration
、experimental
--[no]incompatible_disable_native_repo_rules
預設值:「false」-
如果為 false,可以在 WORKSPACE 中使用原生存放區規則,否則必須改用 Starlark 存放區規則。原生存放區規則包括 local_repository、new_local_repository、local_config_platform、android_sdk_repository 和 android_ndk_repository。
標記: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」-
佔用已登記空間的百分比 (0-100),超過此值後,GcThrashingDetector 會根據限制 (--gc_thrashing_limits) 判斷記憶體壓力事件。如果設為 100,系統就會停用 GcThrashingDetector。
標記:host_machine_resource_optimizations
- Bzlmod 輸出和語意相關選項:
--allow_yanked_versions=<a string>
累積多次使用-
以 `<module1>@<version1>,<module2>@<version2>` 的格式指定模組版本,即使這些版本在原始來源的登錄資料庫中已宣告為已撤銷 (如果這些版本不是來自 NonRegistryOverride),也能在解析的依附元件圖表中使用。否則,撤銷版本會導致解析失敗。您也可以使用 `BZLMOD_ALLOW_YANKED_VERSIONS` 環境變數,定義允許的撤銷版本。您可以使用「all」關鍵字停用這項檢查 (不建議)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off>
預設值:「error」-
檢查 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`。請注意,如果 MODULE.bazel 不是根模組,無論此標記的值為何,系統一律會忽略這些開發依附元件。
標記:loading_and_analysis
--lockfile_mode=<off, update, refresh or error>
預設值:「update」-
指定如何使用鎖定檔案,以及是否要使用鎖定檔案。有效值包括 `update` (使用鎖定檔案,並在有變更時更新)、`refresh` (不時從遠端登錄重新整理可變更資訊 (已撤銷的版本和先前遺漏的模組))、`error` (使用鎖定檔案,但如果檔案未更新就會擲回錯誤) 或 `off` (既不讀取也不寫入鎖定檔案)。
標記:loading_and_analysis
- 累積
--override_module=<an equals-separated mapping of module name to 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 是正整數。如果在 <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,實際上沒有上限。零表示完整 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;有效無限。若為零,表示次要 GC 事件永遠不會觸發釋放作業。如果達到限制,當次要 GC 事件發生且保留堆積百分比超出閾值時,Skyframe 狀態就不會再捨棄。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer>
預設值:「85」-
標記用於 Bazel 內部 Skyframe 引擎的進階設定。如果 Bazel 偵測到保留堆積使用率至少達到此門檻,就會捨棄不必要的暫時性 Skyframe 狀態。調整這個值,或許能減輕 GC 耗損的實際時間影響,前提是 GC 耗損 (i) 是由此暫時狀態的記憶體用量所造成,且 (ii) 比在必要時重建狀態的成本還要高。
標記:host_machine_resource_optimizations
- 影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock>
預設值:請參閱說明- 在指令執行期間記錄 Java Flight Recorder 設定檔。必須提供一個支援的剖析事件類型 (cpu、wall、alloc 或 lock) 做為引數。設定檔會寫入輸出基礎目錄下以事件類型命名的檔案。這個旗標的語法和語意可能會在日後變更,以支援其他設定檔類型或輸出格式;請自行承擔使用風險。
--[no]experimental_record_metrics_for_all_mnemonics
預設值:「false」- 根據預設,動作類型會有最多執行次數最多的 20 種記憶法。設定這個選項會為所有助憶法寫入統計資料。
--help_verbosity=<long, medium or short>
預設值:「medium」-
選取 help 指令的詳細程度。
標記:affects_outputs
、terminal_output
--long
[-l
]-
顯示每個選項的完整說明,而非僅顯示名稱。
展開為:
--help_verbosity=long
標記:affects_outputs
、terminal_output
--short
-
僅顯示選項的名稱,而不顯示選項的類型或意義。
可延伸至:
--help_verbosity=short
標記:affects_outputs
、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」,系統就不會使用 worker 執行緒,且 repo 擷取作業會在重新啟動時執行。否則,請使用虛擬工作者執行緒。
- 其他選項,未歸類於其他類別:
--override_repository=<an equals-separated mapping of repository name to path>
累積多次使用- 使用本機路徑覆寫存放區,格式為 <repository name>=<path>。如果指定的路徑是絕對路徑,系統會直接使用該路徑。如果指定的路徑是相對路徑,則會以目前的作業目錄為基準。如果指定路徑的開頭為「%workspace%」,表示該路徑與工作區根目錄相關,也就是「bazel info workspace」的輸出內容。如果指定路徑為空白,請移除所有先前的覆寫值。
資訊選項
- 顯示在指令前方且由用戶端剖析的選項:
--distdir=<a path>
累積多次使用-
在存取網路下載檔案之前,可搜尋檔案的其他位置。
標記:bazel_internal_configuration
--[no]experimental_repository_cache_hardlinks
預設值:「false」-
如果已設定,存放區快取會在快取命中時建立檔案的硬連結,而不是複製檔案。這麼做是為了節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer>
預設值:「0」-
重試下載錯誤的次數上限。如果設為 0,則系統會停用重試功能。
標記:experimental
--experimental_scale_timeouts=<a double>
預設值:「1.0」-
以這個係數縮放 Starlark 存放區規則中的所有逾時時間。如此一來,外部存放區就能在速度比規則作者預期慢的電腦上運作,而不需要變更原始碼
標記:bazel_internal_configuration
、experimental
--[no]incompatible_disable_native_repo_rules
預設值:「false」-
如果設為 false,則可在 WORKSPACE 中使用原生存放區規則;否則,必須改用 Starlark 存放區規則。原生存放區規則包括 local_repository、new_local_repository、local_config_platform、android_sdk_repository 和 android_ndk_repository。
標記: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」-
高於 (0-100) 的持久空間佔用空間百分比 (0-100)。GcThrashingDetector 會根據本身的上限 (--gc_thrashing_limits) 將記憶體壓力事件納入考量。如果設為 100,則會停用 GcThrashingDetector。
標記:host_machine_resource_optimizations
- Bzlmod 輸出和語意相關選項:
--allow_yanked_versions=<a string>
累積多次使用-
以 `<module1>@<version1>,<module2>@<version2>` 的格式指定模組版本,即使這些版本在原始來源的登錄資料庫中已宣告為已撤銷 (如果這些版本不是來自 NonRegistryOverride),也能在解析的依附元件圖表中使用。否則,撤銷版本會導致解析失敗。您也可以使用 `BZLMOD_ALLOW_YANKED_VERSIONS` 環境變數,定義允許的撤銷版本。您可以使用「all」關鍵字停用這項檢查 (不建議)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off>
預設值:「error」-
檢查 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」。請注意,如果不是根模組,系統一律會忽略 MODULE.bazel 中的這些開發依附元件,無論此旗標的值為何。
標記:loading_and_analysis
--lockfile_mode=<off, update, refresh or error>
預設值:「update」-
指定如何使用鎖定檔案,以及是否要使用鎖定檔案。有效值包括 `update` (使用鎖定檔案,並在有變更時更新)、`refresh` (不時從遠端登錄重新整理可變更資訊 (已撤銷的版本和先前遺漏的模組))、`error` (使用鎖定檔案,但如果檔案未更新就會擲回錯誤) 或 `off` (既不讀取也不寫入鎖定檔案)。
標記:loading_and_analysis
--override_module=<an equals-separated mapping of module name to 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_thrashing_threshold 的持久空間 (舊代堆積) 停留在 <period> 內連續 <count> 個完整 GC 後,就會觸發 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,實際上沒有上限。若為零,表示次要 GC 事件永遠不會觸發釋放作業。如果達到限制,當次要 GC 事件發生且保留堆積百分比超出閾值時,Skyframe 狀態就不會再捨棄。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer>
預設:「85」-
Bazel 內部 SkyFrame 引擎進階設定的標記。如果 Bazel 偵測到保留堆積使用率至少達到此門檻,就會捨棄不必要的暫時性 Skyframe 狀態。調整這個值,或許能減輕 GC 耗損的實際時間影響,前提是 GC 耗損 (i) 是由此暫時狀態的記憶體用量所造成,且 (ii) 比在必要時重建狀態的成本還要高。
標記:host_machine_resource_optimizations
- 影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock>
預設值:請參閱說明- 會在指令執行期間記錄 Java Flight Recorder 設定檔。必須提供一個支援的剖析事件類型 (cpu、wall、alloc 或 lock) 做為引數。設定檔會寫入輸出基礎目錄下以事件類型命名的檔案。這個標記的語法和語意日後可能會變更,以支援其他設定檔類型或輸出格式,請自行承擔使用風險。
--[no]experimental_record_metrics_for_all_mnemonics
預設值:「false」- 根據預設,動作類型數量上限為 20 個,且只會納入執行動作次數最多的 20 個助憶法。設定這個選項會為所有助憶法寫入統計資料。
--[no]show_make_env
預設值:「false」-
在輸出內容中加入「Make」環境。
標記:affects_outputs
、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」,系統就不會使用 worker 執行緒,且 repo 擷取作業會在重新啟動時執行。否則,請使用虛擬工作者執行緒。
- 其他 (不含其他類別):
--override_repository=<an equals-separated mapping of repository name to path>
累積多次使用- 使用本機路徑覆寫存放區,格式為 <repository name>=<path>。如果指定的路徑是絕對路徑,系統會直接使用該路徑。如果指定的路徑是相對路徑,則會以目前的作業目錄為基準。如果指定的路徑以「%workspace%」開頭,則會相對於工作區根目錄,也就是 `bazel info workspace` 的輸出內容。如果指定的路徑為空白,請移除先前的覆寫值。
授權選項
- 顯示在指令前方且由用戶端剖析的選項:
--distdir=<a path>
累積多次使用-
在存取網路下載檔案之前,可搜尋檔案的其他位置。
標記:bazel_internal_configuration
--[no]experimental_repository_cache_hardlinks
預設值:「false」-
如果已設定,存放區快取會在快取命中時建立檔案的硬連結,而不是複製檔案。這麼做是為了節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer>
預設值:「0」-
重試下載錯誤的次數上限。如果設為 0,則會停用重試。
標記:experimental
--experimental_scale_timeouts=<a double>
預設值:「1.0」-
以這個係數縮放 Starlark 存放區規則中的所有逾時時間。如此一來,外部存放區就能在速度比規則作者預期慢的電腦上運作,而不需要變更原始碼
標記:bazel_internal_configuration
、experimental
--[no]incompatible_disable_native_repo_rules
預設值:「false」-
如果設為 false,則可在 WORKSPACE 中使用原生存放區規則;否則,必須改用 Starlark 存放區規則。原生存放區規則包括 local_repository、new_local_repository、local_config_platform、android_sdk_repository 和 android_ndk_repository。
標記: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」-
佔用已登記空間的百分比 (0-100),超過此值後,GcThrashingDetector 會根據限制 (--gc_thrashing_limits) 判斷記憶體壓力事件。如果設為 100,系統就會停用 GcThrashingDetector。
標記:host_machine_resource_optimizations
- Bzlmod 輸出和語意相關選項:
--allow_yanked_versions=<a string>
累積多次使用-
以 `<module1>@<version1>,<module2>@<version2>` 的格式指定模組版本,即使這些版本在原始來源的登錄資料庫中已宣告為已撤銷 (如果這些版本不是來自 NonRegistryOverride),也能在解析的依附元件圖表中使用。否則,將導致解析失敗。您也可以使用「BZLMOD_ALLOW_YANKED_VERSIONS」環境變數定義允許的變形版本。您可以使用「all」關鍵字停用這項檢查 (不建議)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off>
預設值:「error」-
檢查 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, refresh or error>
預設值:「update」-
指定如何使用鎖定檔案,以及是否要使用鎖定檔案。有效值包括 `update` (使用鎖定檔案,並在有變更時更新)、`refresh` (不時從遠端登錄重新整理可變更資訊 (已撤銷的版本和先前遺漏的模組))、`error` (使用鎖定檔案,但如果檔案未更新就會擲回錯誤) 或 `off` (既不讀取也不寫入鎖定檔案)。
標記:loading_and_analysis
--override_module=<an equals-separated mapping of module name to 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 是正整數。如果在 <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;有效無限。零表示完整 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;有效無限。若為零,表示次要 GC 事件永遠不會觸發釋放作業。如果達到限制,當次要 GC 事件發生且保留堆積百分比超出閾值時,Skyframe 狀態就不會再捨棄。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer>
預設:「85」-
Bazel 內部 SkyFrame 引擎進階設定的標記。如果 Bazel 偵測到保留的堆積百分比用量至少達到這個門檻,就會捨棄不必要的暫時性 SkyFrame 狀態。調整此方法可減少 GC 輾轉造成的實際時間影響,在以下情形發生時,GC 輾轉現象:(i) 由此暫時狀態的記憶體用量造成,以及 (ii) 成本會高於在需要時重組狀態。
標記:host_machine_resource_optimizations
- 影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock>
預設值:請參閱說明- 會在指令執行期間記錄 Java Flight Recorder 設定檔。必須提供一個支援的剖析事件類型 (cpu、wall、alloc 或 lock) 做為引數。設定檔會寫入輸出基礎目錄下以事件類型命名的檔案。這個旗標的語法和語意可能會在日後變更,以便支援其他設定檔類型或輸出格式;請自行承擔使用風險。
--[no]experimental_record_metrics_for_all_mnemonics
預設值:「false」- 根據預設,動作類型數量上限為 20 個,且只會納入執行動作次數最多的 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」,系統就不會使用背景工作執行緒,而且存放區擷取作業將重新啟動。否則,請使用虛擬工作者執行緒。
- 其他選項,未歸類於其他類別:
--override_repository=<an equals-separated mapping of repository name to path>
累積多次使用- 使用本機路徑覆寫存放區,格式為 <repository name>=<path>。如果指定的路徑是絕對路徑,系統會直接使用該路徑。如果指定的路徑是相對路徑,則會以目前的作業目錄為基準。如果指定的路徑以「%workspace%」開頭,則會相對於工作區根目錄,也就是 `bazel info workspace` 的輸出內容。如果指定的路徑為空白,請移除先前的覆寫值。
行動安裝選項
- 顯示在指令前方且由用戶端剖析的選項:
--distdir=<a path>
累積多次使用-
在存取網路下載檔案之前,可搜尋檔案的其他位置。
標記:bazel_internal_configuration
--[no]experimental_repository_cache_hardlinks
預設值:「false」-
如果已設定,存放區快取會在快取命中時建立檔案的硬連結,而不是複製檔案。這麼做是為了節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer>
預設值:「0」-
重試下載錯誤的次數上限。如果設為 0,則會停用重試。
標記:experimental
--experimental_scale_timeouts=<a double>
預設:「1.0」-
以這個係數縮放 Starlark 存放區規則中的所有逾時時間。這樣一來,就能在不變更原始碼的情況下,在比規則編寫速度更慢的機器上運作外部存放區
標記:bazel_internal_configuration
、experimental
--[no]incompatible_disable_native_repo_rules
預設值:「false」-
如果為 false,可以在 WORKSPACE 中使用原生存放區規則,否則必須改用 Starlark 存放區規則。原生存放區規則包括 local_repository、new_local_repository、local_config_platform、android_sdk_repository 和 android_ndk_repository。
標記: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」-
高於 (0-100) 的持久空間佔用空間百分比 (0-100)。GcThrashingDetector 會根據本身的上限 (--gc_thrashing_limits) 將記憶體壓力事件納入考量。如果設為 100,系統就會停用 GcThrashingDetector。
標記:host_machine_resource_optimizations
--mode=<classic, classic_internal_test_do_not_use or skylark>
預設值:「classic」-
選取執行行動安裝的做法。「classic」會執行目前版本的 mobile-install。「skylark」會使用新版 Starlark,可支援 android_test。
標記:loading_and_analysis
、execution
、incompatible_change
- 設定用於執行動作的工具鍊的選項:
--adb=<a string>
預設值:「」-
adb 二進位檔,用於執行「mobile-install」指令。如未指定,則會使用 --android_sdk 指令列選項中指定的 Android SDK 設定 (如未指定 --android_sdk,此為預設 SDK)。
標記:changes_inputs
- 控制指令輸出內容的選項:
--[no]incremental
預設值:「false」-
指出是否要漸進式安裝。如果為 true,請讀取要安裝程式碼的裝置狀態,並利用該資訊避免不必要的額外工作。如果為 false (預設值),則一律執行完整安裝作業。
標記:loading_and_analysis
--[no]split_apks
預設值:「false」-
是否使用分割 APK 在裝置上安裝及更新應用程式。僅適用於搭載 Marshmallow 以上版本的裝置
標記:loading_and_analysis
、affects_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>
預設值:「否」-
安裝應用程式後應如何啟動。將其設為 WARM,即可在增量安裝時保留及還原應用程式狀態。
標記:execution
--start_app
-
安裝應用程式後是否啟動應用程式。
展開為:
--start=COLD
代碼:execution
- 與 Bzlmod 輸出內容和語義相關的選項:
--allow_yanked_versions=<a string>
累積多次使用-
以 `<module1>@<version1>,<module2>@<version2>` 的格式指定模組版本,即使這些版本在原始來源的登錄資料庫中已宣告為已撤銷 (如果這些版本不是來自 NonRegistryOverride),也能在解析的依附元件圖表中使用。否則,撤銷版本會導致解析失敗。您也可以使用「BZLMOD_ALLOW_YANKED_VERSIONS」環境變數定義允許的變形版本。您可以使用「all」關鍵字停用這項檢查 (不建議)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off>
預設值:「error」-
檢查 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`。請注意,如果不是根模組,系統一律會忽略 MODULE.bazel 中的這些開發依附元件,無論此旗標的值為何。
標記:loading_and_analysis
--lockfile_mode=<off, update, refresh or error>
預設值:「update」-
指定如何使用鎖定檔案,以及是否要使用鎖定檔案。有效值包括 `update` (使用鎖定檔案,並在有變更時更新)、`refresh` (不時從遠端登錄重新整理可變更資訊 (已撤銷的版本和先前遺漏的模組))、`error` (使用鎖定檔案,但如果檔案未更新就會擲回錯誤) 或 `off` (既不讀取也不寫入鎖定檔案)。
標記:loading_and_analysis
- 累積
--override_module=<an equals-separated mapping of module name to 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 是正整數。如果在 <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;有效無限。零表示完整 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,實際上沒有上限。若為零,表示次要 GC 事件永遠不會觸發釋放作業。如果達到上限,當發生次要 GC 事件且超過保留堆積百分比門檻時,SkyFrame 狀態不會再遭到捨棄。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer>
預設值:「85」-
標記用於 Bazel 內部 Skyframe 引擎的進階設定。如果 Bazel 偵測到保留堆積使用率至少達到此門檻,就會捨棄不必要的暫時性 Skyframe 狀態。調整此方法可減少 GC 輾轉造成的實際時間影響,在以下情形發生時,GC 輾轉現象:(i) 由此暫時狀態的記憶體用量造成,以及 (ii) 成本會高於在需要時重組狀態。
標記:host_machine_resource_optimizations
- 影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock>
預設值:請參閱說明- 會在指令執行期間記錄 Java Flight Recorder 設定檔。必須提供一個支援的剖析事件類型 (cpu、wall、alloc 或 lock) 做為引數。設定檔會寫入輸出基礎目錄下以事件類型命名的檔案。這個旗標的語法和語意可能會在日後變更,以支援其他設定檔類型或輸出格式;請自行承擔使用風險。
--[no]experimental_record_metrics_for_all_mnemonics
預設值:「false」- 根據預設,動作類型數量上限為 20 個,且只會納入執行動作次數最多的 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」,系統就不會使用 worker 執行緒,且 repo 擷取作業會在重新啟動時執行。否則,請使用虛擬工作者執行緒。
- 其他選項,未歸類於其他類別:
--override_repository=<an equals-separated mapping of repository name to path>
累積多次使用- 以 <repository name>=<path> 的格式覆寫具有本機路徑的存放區。如果指定路徑是絕對路徑,系統會直接採用該路徑。如果指定路徑是相對路徑,則會以目前工作目錄為相對路徑。如果指定路徑的開頭為「%workspace%」,表示該路徑與工作區根目錄相關,也就是「bazel info workspace」的輸出內容。如果指定路徑為空白,請移除所有先前的覆寫值。
模組選項
- 顯示在指令前方且由用戶端剖析的選項:
--distdir=<a path>
累積多次使用-
在存取網路下載檔案之前,可搜尋檔案的其他位置。
標記:bazel_internal_configuration
--[no]experimental_repository_cache_hardlinks
預設值:「false」-
如果已設定,存放區快取會在快取命中時建立檔案的硬連結,而不是複製檔案。這麼做是為了節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer>
預設值:「0」-
重試下載錯誤的次數上限。如果設為 0,則會停用重試。
標記:experimental
--experimental_scale_timeouts=<a double>
預設值:「1.0」-
以這個係數縮放 Starlark 存放區規則中的所有逾時時間。如此一來,外部存放區就能在速度比規則作者預期慢的電腦上運作,而不需要變更原始碼
標記:bazel_internal_configuration
、experimental
--[no]incompatible_disable_native_repo_rules
預設值:「false」-
如果設為 false,則可在 WORKSPACE 中使用原生存放區規則;否則,必須改用 Starlark 存放區規則。原生存放區規則包括 local_repository、new_local_repository、local_config_platform、android_sdk_repository 和 android_ndk_repository。
標記:bazel_internal_configuration
--repository_cache=<a path>
預設值:請參閱說明-
指定在擷取外部存放區時取得的下載值的快取位置。空字串做為引數時,系統會要求停用快取,否則會使用預設的「<output_user_root>/cache/repos/v1」
bazel_internal_configuration
--[no]repository_disable_download
預設值:「false」-
如果設為 true,則在擷取存放區時,系統不會允許使用 ctx.download{,_and_extract} 下載。請注意,系統並未完全停用網路存取權;ctx.execute 仍可執行任意可存取網際網路的執行檔。
代碼:bazel_internal_configuration
- 控制建構執行作業的選項:
--gc_thrashing_threshold=<an integer in 0-100 range>
預設:「100」-
佔用已登記空間的百分比 (0-100),超過此值後,GcThrashingDetector 會根據限制 (--gc_thrashing_limits) 判斷記憶體壓力事件。如果設為 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」-
如果 notcompatible_enforce_config_setting_visibility=false,則為免人工管理。此外,如果此標記為 false,則沒有明確瀏覽權限屬性的 config_setting 將會是 //visibility:public。如果這個標記為 true,config_setting 與所有其他規則使用相同的顯示邏輯。請參閱 https://github.com/bazelbuild/bazel/issues/12933。
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_enforce_config_setting_visibility
預設值:「true」-
如果為 true,系統會強制執行 config_setting 曝光度限制。如果為 false,則每個目標都能看到每個 config_setting。請參閱 https://github.com/bazelbuild/bazel/issues/12932。
標記:loading_and_analysis
、incompatible_change
- 與 `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 和 explain,預設值為 1 (只會顯示根目錄的直接依附元件,不包括目標葉節點及其父項)。
標記:terminal_output
--extension_filter=<a comma-separated list of <extension>s>
預設值:請參閱說明-
只顯示這些模組擴充功能的使用情況,以及這些擴充功能產生的存放區 (必須設定各自的標記)。如果已設定,結果圖表只會包含包含使用指定擴充功能的模組的路徑。空白清單會停用篩選器,有效地指定所有可能的擴充功能。
標記:terminal_output
--extension_info=<hidden, usages, repos or all>
預設值:「已隱藏」-
指定要在查詢結果中納入的擴充功能使用情形詳細資料量。「Usages」只會顯示擴充功能名稱,「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」-
此外,查詢也會考量未使用的模組,並顯示這些模組。這些模組不會出現在選取後的模組解析圖表中 (因為有 Minimal-Version Selection 或覆寫規則)。這可能會對每種查詢類型產生不同的影響,例如在 all_paths 指令中加入新路徑,或在 explain 指令中加入額外依附項目。
標記:terminal_output
--output=<text, json or graph>
預設值:「text」-
查詢結果的輸出格式。查詢允許的值如下:text、json、圖形
標記:terminal_output
--[no]verbose
預設值:「false」-
查詢也會顯示模組為何解析為目前的版本 (如果有變更)。預設值為 true,但僅適用於 explain 查詢。
標記:terminal_output
- 與 Bzlmod 輸出內容和語義相關的選項:
- 累積
--allow_yanked_versions=<a string>
次多次使用 -
以 `<module1>@<version1>,<module2>@<version2>` 的格式指定模組版本,即使這些版本在原始來源的登錄資料庫中已宣告為已撤銷 (如果這些版本不是來自 NonRegistryOverride),仍可在解析的依附元件圖表中使用。否則,撤銷版本會導致解析失敗。您也可以使用 `BZLMOD_ALLOW_YANKED_VERSIONS` 環境變數,定義允許的撤銷版本。您可以使用關鍵字「all」(不建議) 停用這項檢查。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off>
預設值:「error」-
檢查 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`。請注意,如果 MODULE.bazel 不是根模組,無論此標記的值為何,系統一律會忽略這些開發依附元件。
標記:loading_and_analysis
--lockfile_mode=<off, update, refresh or error>
預設值:「更新」-
指定如何使用鎖定檔案,以及是否要使用鎖定檔案。有效值包括 `update` (使用鎖定檔案,並在有變更時更新)、`refresh` (不時從遠端登錄重新整理可變更資訊 (已撤銷的版本和先前遺漏的模組))、`error` (使用鎖定檔案,但如果檔案未更新就會擲回錯誤) 或 `off` (既不讀取也不寫入鎖定檔案)。
標記:loading_and_analysis
--override_module=<an equals-separated mapping of module name to 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> 指定,其中半形句號代表時間長度,而且數量是正整數。如果超過 --gc_thrashing_threshold 的持久空間 (舊代堆積) 停留在 <period> 內連續 <count> 個完整 GC 後,就會觸發 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;有效無限。零表示完整 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,實際上沒有上限。若為零,表示次要 GC 事件永遠不會觸發釋放作業。如果達到限制,當次要 GC 事件發生且保留堆積百分比超出門檻時,Skyframe 狀態就不會再捨棄。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer>
預設值:「85」-
標記用於 Bazel 內部 Skyframe 引擎的進階設定。如果 Bazel 偵測到保留堆積使用率至少達到此門檻,就會捨棄不必要的暫時性 Skyframe 狀態。調整此方法可減少 GC 輾轉造成的實際時間影響,在以下情形發生時,GC 輾轉現象:(i) 由此暫時狀態的記憶體用量造成,以及 (ii) 成本會高於在需要時重組狀態。
標記:host_machine_resource_optimizations
- 影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock>
預設:查看說明- 記錄指令期間的 Java Flight Recorder 設定檔。必須提供一個支援的剖析事件類型 (cpu、wall、alloc 或 lock) 做為引數。系統會將設定檔寫入在輸出基本目錄底下,以事件類型命名的檔案。這個標記的語法和語意日後可能會變更,以支援其他設定檔類型或輸出格式,請自行承擔使用風險。
--[no]experimental_record_metrics_for_all_mnemonics
預設值:「false」- 根據預設,動作類型數量上限為 20 個,且只會納入執行動作次數最多的 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」,系統就不會使用 worker 執行緒,且 repo 擷取作業會在重新啟動時執行。否則,請使用虛擬工作者執行緒。
- 其他選項,未歸類於其他類別:
--deleted_packages=<comma-separated list of package names>
累積多次使用- 以半形逗號分隔的套件名稱清單,即使這些套件名稱在套件路徑的某處可見,建構系統仍會視為不存在。刪除現有套件「x」的子套件「x/y」時,請使用這個選項。例如,在用戶端中刪除 x/y/BUILD 後,如果仍有其他 package_path 項目提供 '//x:y/z' 標籤,建構系統可能會抱怨。指定 --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:」訊息。
Print_action 選項
- 會顯示在指令之前且由用戶端剖析的選項:
--distdir=<a path>
累積多次使用-
在存取網路下載封存前,可先搜尋其他位置來搜尋封存內容。
標記:bazel_internal_configuration
--[no]experimental_repository_cache_hardlinks
預設值:「false」-
如果已設定,存放區快取會在快取命中時建立檔案的硬連結,而不是複製檔案。這麼做是為了節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer>
預設值:「0」-
重試下載錯誤的次數上限。如果設為 0,則會停用重試。
標記:experimental
--experimental_scale_timeouts=<a double>
預設值:「1.0」-
以這個係數縮放 Starlark 存放區規則中的所有逾時時間。如此一來,外部存放區就能在速度比規則作者預期慢的電腦上運作,而不需要變更原始碼
標記:bazel_internal_configuration
、experimental
--[no]incompatible_disable_native_repo_rules
預設值:「false」-
如果設為 false,則可在 WORKSPACE 中使用原生存放區規則;否則,必須改用 Starlark 存放區規則。原生存放區規則包括 local_repository、new_local_repository、local_config_platform、android_sdk_repository 和 android_ndk_repository。
標記: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」-
高於 (0-100) 的持久空間佔用空間百分比 (0-100)。GcThrashingDetector 會根據本身的上限 (--gc_thrashing_limits) 將記憶體壓力事件納入考量。如果設為 100,則會停用 GcThrashingDetector。
標記:host_machine_resource_optimizations
- Bzlmod 輸出和語意相關選項:
--allow_yanked_versions=<a string>
累積多次使用-
以 <module1>@<version1>,<module2>@<version2>` 的格式指定模組版本,系統會在解析的依附元件圖表中允許該模組版本,即使這些版本在其來源的登錄檔中宣告為客層版本 (如果不是來自 NonRegistryOverride)。否則,撤銷版本會導致解析失敗。您也可以使用 `BZLMOD_ALLOW_YANKED_VERSIONS` 環境變數,定義允許的撤銷版本。您可以使用「all」關鍵字停用這項檢查 (不建議)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off>
預設值:「error」-
檢查 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`。請注意,如果 MODULE.bazel 不是根模組,無論此標記的值為何,系統一律會忽略這些開發依附元件。
標記:loading_and_analysis
--lockfile_mode=<off, update, refresh or error>
預設值:「update」-
指定是否要使用鎖定檔案,以及使用方式。有效值包括 `update` (使用鎖定檔案,並在有變更時更新)、`refresh` (不時從遠端登錄重新整理可變更資訊 (已撤銷的版本和先前遺漏的模組))、`error` (使用鎖定檔案,但如果檔案未更新就會擲回錯誤) 或 `off` (既不讀取也不寫入鎖定檔案)。
標記:loading_and_analysis
--override_module=<an equals-separated mapping of module name to 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 是正整數。如果在 <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;有效無限。零表示完整 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 耗損的實際時間影響,前提是 GC 耗損 (i) 是由此暫時狀態的記憶體用量所造成,且 (ii) 比在必要時重建狀態的成本還要高。
標記:host_machine_resource_optimizations
- 影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock>
預設值:請參閱說明- 在指令執行期間記錄 Java Flight Recorder 設定檔。必須提供一個支援的剖析事件類型 (cpu、wall、alloc 或 lock) 做為引數。系統會將設定檔寫入輸出基礎目錄下以事件類型命名的檔案。這個旗標的語法和語意可能會在日後變更,以支援其他設定檔類型或輸出格式;請自行承擔使用風險。
--[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」,系統就不會使用背景工作執行緒,而且存放區擷取作業將重新啟動。否則,請使用虛擬背景工作執行緒。
- 其他選項,未歸類於其他類別:
--override_repository=<an equals-separated mapping of repository name to path>
累積多次使用- 使用本機路徑覆寫存放區,格式為 <存放區名稱>=<路徑>。如果指定的路徑為絕對路徑,系統會直接使用該路徑。如果指定的路徑為相對路徑,則會以目前的作業目錄為基準。如果指定的路徑以「%workspace%」開頭,則會相對於工作區根目錄,也就是 `bazel info workspace` 的輸出內容。如果指定的路徑為空白,請移除先前的覆寫值。
- 累積
--print_action_mnemonics=<a string>
次多次使用 - 列出要篩選 print_action 資料的助憶法,如果留空,系統就不會篩選。
查詢選項
- 顯示在指令前方且由用戶端剖析的選項:
- 累積
--distdir=<a path>
次多次使用 -
在存取網路下載檔案之前,可搜尋檔案的其他位置。
標記:bazel_internal_configuration
--[no]experimental_repository_cache_hardlinks
預設值:「false」-
如果已設定,則在快取命中時,存放區快取會強制連結檔案,而非複製。這麼做是為了節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer>
預設值:「0」-
重試下載錯誤的次數上限。如果設為 0,則系統會停用重試功能。
標記:experimental
--experimental_scale_timeouts=<a double>
預設值:「1.0」-
根據此係數調整 Starlark 存放區規則中的所有逾時值。如此一來,外部存放區就能在速度比規則作者預期慢的電腦上運作,而不需要變更原始碼
標記:bazel_internal_configuration
、experimental
--[no]incompatible_disable_native_repo_rules
預設值:「false」-
如果為 false,可以在 WORKSPACE 中使用原生存放區規則,否則必須改用 Starlark 存放區規則。原生存放區規則包括 local_repository、new_local_repository、local_config_platform、android_sdk_repository 和 android_ndk_repository。
標記: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」-
佔用已登記空間的百分比 (0-100),超過此值後,GcThrashingDetector 會根據限制 (--gc_thrashing_limits) 判斷記憶體壓力事件。如果設為 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_analysis
、incompatible_change
--[no]incompatible_enforce_config_setting_visibility
預設值:「true」-
如果為 true,系統會強制執行 config_setting 曝光度限制。如果為 false,則每個目標都能看到每個 config_setting。詳情請參閱 https://github.com/bazelbuild/bazel/issues/12932。
標記:loading_and_analysis
、incompatible_change
- 查詢輸出內容和語意相關選項:
--aspect_deps=<off, conservative or precise>
預設值:「conservative」-
如何在輸出格式為 {xml,proto,record} 的情況下解析面向依附元件。「off」表示不會解析任何面向依賴項、「conservative」(預設值) 表示會新增所有已宣告的面向依賴項,無論其是否已指定直接依賴項的規則類別;「precise」表示只會新增那些在直接依賴項的規則類別中可能處於作用中的面向。請注意,精確模式需要載入其他套件才能評估單一目標,因此速度會比其他模式慢。另請注意,即使是精確模式也不完全精確:決定是否要計算某個面向的決定是在分析階段做出,而這並不會在「bazel 查詢」期間執行。
標記:build_file_semantics
--[no]consistent_labels
預設值:「false」-
如果啟用,每個查詢指令都會像是將 Starlark <code>str</code> 函式套用至 <code>Label</code> 例項時一樣,發出標籤。這項功能對於需要比對不同查詢指令和/或規則產生標籤的工具來說非常實用。如果未啟用,輸出格式化器可以自由發出明顯的存放區名稱 (相對於主要存放區),以便讓輸出內容更易讀。
標記:terminal_output
--[no]experimental_explicit_aspects
預設值:「false」-
aquery、cquery:是否要在輸出內容中加入由子集產生的動作。query:無操作 (一律會遵循子集)。
標記:terminal_output
--[no]experimental_graphless_query
預設值:「auto」-
如果為 true,則會使用不會建立圖表副本的查詢實作。新實作只支援 --order_output=no,以及部分輸出格式設定工具。
標記:build_file_semantics
、eagerness_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」-
aquery、cquery:是否要在輸出內容中加入由子集產生的動作。query:無操作 (一律會遵循子集)。
標記:terminal_output
--[no]incompatible_lexicographical_output
預設值:「true」-
如果設定這個選項,系統會依字典順序排序 --order_output=auto 的輸出內容。
標記:terminal_output
、incompatible_change
--[no]incompatible_package_group_includes_double_slash
預設值:「true」-
如果啟用此選項,在輸出 package_group 的 `packages` 屬性時,系統就不會省略開頭的 `//`。
標記:terminal_output
、incompatible_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」。執行並剖析 `info build-language` 的輸出內容,瞭解建構語言中的所有「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」-
輸出未排序 (no)、依附關係 (deps) 或完整排序 (完整) 的結果。預設值為「auto」,表示結果輸出順序會依據輸出格式化程式而為依附元件排序或完全排序 (proto、minrank、maxrank 和圖表為依附元件排序,所有其他為完全排序)。輸出順序完全排序後,節點會以完全確定 (總計) 的順序顯示。首先,所有節點會依字母順序排序。接著,清單中的每個節點都會用於後序深度優先搜尋的起始點,其中會依照後續節點的字母順序,沿著未造訪節點的出站邊緣進行搜尋。最後,節點的列印順序與造訪順序相反。
標記:terminal_output
--order_results
-
以依賴項排序 (預設) 或無序的方式輸出結果。無序輸出速度較快,但僅支援 --output 不是 minrank、maxrank 或 graph 的情況。
展開為:
--order_output=auto
標記:terminal_output
--output=<a string>
預設值:"label"-
查詢結果的輸出格式。查詢的有效值為:build、graph、streamed_jsonproto、label、label_kind、location、maxrank、minrank、package、proto、streamed_proto、textproto、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 前置字段 (如果沒有,則為空字串)。
標記: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_suite 時,tests() 運算式會傳回錯誤。
標記:build_file_semantics
、eagerness_to_exit
--[no]tool_deps
預設值:「true」-
查詢:如果停用此功能,執行查詢的依附元件圖表中就不會包含「exec 設定」的依附元件。「執行設定」的依附元件邊緣,例如從任何「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` 環境變數,定義允許的撤銷版本。您可以使用「all」關鍵字停用這項檢查 (不建議)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off>
預設值:「error」-
檢查 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`。請注意,如果 MODULE.bazel 不是根模組,無論此標記的值為何,系統一律會忽略這些開發依附元件。
標記:loading_and_analysis
--lockfile_mode=<off, update, refresh or error>
預設值:「update」-
指定是否使用 Lockfile 以及是否要使用。有效值包括 `update` (使用鎖定檔案,並在有變更時更新)、`refresh` (不時從遠端登錄重新整理可變更資訊 (已撤銷的版本和先前遺漏的模組))、`error` (使用鎖定檔案,但如果檔案未更新就會擲回錯誤) 或 `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;有效無限。零表示完整 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,實際上沒有上限。若為零,表示次要 GC 事件永遠不會觸發釋放作業。如果達到限制,當次要 GC 事件發生且保留堆積百分比超出門檻時,Skyframe 狀態就不會再捨棄。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer>
預設值:「85」-
標記用於 Bazel 內部 Skyframe 引擎的進階設定。如果 Bazel 偵測到保留的堆積百分比用量至少達到這個門檻,就會捨棄不必要的暫時性 SkyFrame 狀態。調整這個值,或許能減輕 GC 耗損的實際時間影響,前提是 GC 耗損 (i) 是由此暫時狀態的記憶體用量所造成,且 (ii) 比在必要時重建狀態的成本還要高。
標記:host_machine_resource_optimizations
- 影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock>
預設值:請參閱說明- 會在指令執行期間記錄 Java Flight Recorder 設定檔。必須提供一個支援的剖析事件類型 (cpu、wall、alloc 或 lock) 做為引數。系統會將設定檔寫入輸出基礎目錄下以事件類型命名的檔案。這個旗標的語法和語意可能會在日後變更,以支援其他設定檔類型或輸出格式;請自行承擔使用風險。
--[no]experimental_record_metrics_for_all_mnemonics
預設值:「false」- 根據預設,動作類型數量上限為 20 個,且只會納入執行動作次數最多的 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」,系統就不會使用 worker 執行緒,且 repo 擷取作業會在重新啟動時執行。否則,請使用虛擬工作者執行緒。
- 其他選項,未歸類於其他類別:
- 累積
--deleted_packages=<comma-separated list of package names>
次多次使用 - 逗號分隔的套件名稱清單,建構系統視為不存在的套件,即使這些套件出現在套件路徑中也一樣。刪除現有套件「x」的子套件「x/y」時,請使用這個選項。舉例來說,在刪除用戶端中的 x/y/BUILD 後,如果建構系統遇到標籤「//x:y/z」,但該標籤仍由另一個 package_path 項目提供,系統可能會發出錯誤訊息。指定 --delete_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
--[no]experimental_repository_cache_hardlinks
預設值:「false」-
如果已設定,存放區快取會在快取命中時建立檔案的硬連結,而不是複製檔案。這麼做是為了節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer>
預設值:「0」-
重試下載錯誤的次數上限。如果設為 0,則系統會停用重試功能。
標記:experimental
--experimental_scale_timeouts=<a double>
預設值:「1.0」-
以這個係數縮放 Starlark 存放區規則中的所有逾時時間。這樣一來,就能在不變更原始碼的情況下,在比規則編寫速度更慢的機器上運作外部存放區
標記:bazel_internal_configuration
、experimental
--[no]incompatible_disable_native_repo_rules
預設值:「false」-
如果設為 false,則可在 WORKSPACE 中使用原生存放區規則;否則,必須改用 Starlark 存放區規則。原生存放區規則包括 local_repository、new_local_repository、local_config_platform、android_sdk_repository 和 android_ndk_repository。
標記: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]run
預設值:「true」-
如果為 false,請略過為建構建構的指令列。
代碼:affects_outputs
- 控制建構執行作業的選項:
--gc_thrashing_threshold=<an integer in 0-100 range>
預設值:「100」-
佔用已登記空間的百分比 (0-100),超過此值後,GcThrashingDetector 會根據限制 (--gc_thrashing_limits) 判斷記憶體壓力事件。如果設為 100,則會停用 GcThrashingDetector。
代碼:host_machine_resource_optimizations
- 可讓使用者設定預期輸出內容的選項,影響其值,而非其存在:
--script_path=<a path>
預設值:請參閱說明-
如果已設定,就會將 Shell 指令碼寫入叫用目標的指定檔案。如果設定此選項,目標就不會從 bazel 執行。使用 'bazel run --script_path=foo //foo && ./foo' 來叫用目標 '//foo'。與 'bazel run //foo' 不同的是,bazel 鎖定會釋放,且可執行檔會連線至終端的 stdin。
標記:affects_outputs
、execution
- Bzlmod 輸出和語意相關選項:
--allow_yanked_versions=<a string>
累積多次使用-
以 `<module1>@<version1>,<module2>@<version2>` 的格式指定模組版本,即使這些版本在原始來源的註冊表中已宣告為已撤銷 (如果這些版本不是來自 NonRegistryOverride),也能在解析的依附元件圖表中使用。否則,撤銷版本會導致解析失敗。您也可以使用 `BZLMOD_ALLOW_YANKED_VERSIONS` 環境變數,定義允許的撤銷版本。您可以使用「all」關鍵字停用這項檢查 (不建議)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off>
預設值:「error」-
檢查 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」。請注意,如果 MODULE.bazel 不是根模組,無論此標記的值為何,系統一律會忽略這些開發依附元件。
標記:loading_and_analysis
--lockfile_mode=<off, update, refresh or error>
預設值:「update」-
指定是否使用 Lockfile 以及是否要使用。有效值包括 `update` (使用鎖定檔案,並在有變更時更新)、`refresh` (不時從遠端登錄重新整理可變更資訊 (已撤銷的版本和先前遺漏的模組))、`error` (使用鎖定檔案,但如果檔案未更新就會擲回錯誤) 或 `off` (既不讀取也不寫入鎖定檔案)。
標記:loading_and_analysis
--override_module=<an equals-separated mapping of module name to 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_thrashing_threshold 的持久空間 (舊代堆積) 停留在 <period> 內連續 <count> 個完整 GC 後,就會觸發 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,實際上沒有上限。若為零,表示次要 GC 事件永遠不會觸發釋放作業。如果達到限制,當次要 GC 事件發生且保留堆積百分比超出門檻時,Skyframe 狀態就不會再捨棄。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer>
預設值:「85」-
標記用於 Bazel 內部 Skyframe 引擎的進階設定。如果 Bazel 偵測到保留堆積使用率至少達到此門檻,就會捨棄不必要的暫時性 Skyframe 狀態。調整這個值,或許能減輕 GC 耗損的實際時間影響,前提是 GC 耗損 (i) 是由此暫時狀態的記憶體用量所造成,且 (ii) 比在必要時重建狀態的成本還要高。
標記:host_machine_resource_optimizations
- 影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock>
預設值:請參閱說明- 記錄指令期間的 Java Flight Recorder 設定檔。必須提供一個支援的剖析事件類型 (cpu、wall、alloc 或 lock) 做為引數。系統會將設定檔寫入輸出基礎目錄下以事件類型命名的檔案。這個標記的語法和語意日後可能會變更,以支援其他設定檔類型或輸出格式,請自行承擔使用風險。
--[no]experimental_record_metrics_for_all_mnemonics
預設值:「false」- 根據預設,動作類型數量上限為 20 個,且只會納入執行動作次數最多的 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」,系統就不會使用 worker 執行緒,且 repo 擷取作業會在重新啟動時執行。否則,請使用虛擬工作者執行緒。
- 其他 (不含其他類別):
--override_repository=<an equals-separated mapping of repository name to path>
累積多次使用- 使用本機路徑覆寫存放區,格式為 <repository name>=<path>。如果指定的路徑是絕對路徑,系統會直接使用該路徑。如果指定的路徑是相對路徑,則會以目前的作業目錄為基準。如果指定的路徑以「%workspace%」開頭,則會相對於工作區根目錄,也就是 `bazel info workspace` 的輸出內容。如果指定的路徑為空白,請移除先前的覆寫值。
關機選項
- 會顯示在指令之前且由用戶端剖析的選項:
--distdir=<a path>
累積多次使用-
在存取網路下載封存前,可先搜尋其他位置來搜尋封存內容。
標記:bazel_internal_configuration
--[no]experimental_repository_cache_hardlinks
預設值:「false」-
如果已設定,則在快取命中時,存放區快取會強制連結檔案,而非複製。這麼做是為了節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer>
預設值:「0」-
重試下載錯誤的次數上限。如果設為 0,則會停用重試。
標記:experimental
--experimental_scale_timeouts=<a double>
預設值:「1.0」-
以這個係數縮放 Starlark 存放區規則中的所有逾時時間。如此一來,外部存放區就能在速度比規則作者預期慢的電腦上運作,而不需要變更原始碼
標記:bazel_internal_configuration
、experimental
--[no]incompatible_disable_native_repo_rules
預設值:「false」-
如果設為 false,則可在 WORKSPACE 中使用原生存放區規則;否則,必須改用 Starlark 存放區規則。原生存放區規則包括 local_repository、new_local_repository、local_config_platform、android_sdk_repository 和 android_ndk_repository。
標記: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」-
佔用已登記空間的百分比 (0-100),超過此值後,GcThrashingDetector 會根據限制 (--gc_thrashing_limits) 判斷記憶體壓力事件。如果設為 100,系統就會停用 GcThrashingDetector。
標記:host_machine_resource_optimizations
- 控制指令輸出的選項:
--iff_heap_size_greater_than=<an integer>
預設值:「0」-
如果值不為零,則只有在 JVM 使用的總記憶體 (以 MB 為單位) 超過這個值時,系統才會關閉伺服器。
標記:loses_incremental_state
、eagerness_to_exit
- Bzlmod 輸出和語意相關選項:
--allow_yanked_versions=<a string>
累積多次使用-
以 `<module1>@<version1>,<module2>@<version2>` 的格式指定模組版本,即使這些版本在原始來源的登錄資料庫中已宣告為已撤銷 (如果這些版本不是來自 NonRegistryOverride),也能在解析的依附元件圖表中使用。否則,撤銷版本會導致解析失敗。您也可以使用 `BZLMOD_ALLOW_YANKED_VERSIONS` 環境變數,定義允許的撤銷版本。您可以使用關鍵字「all」(不建議) 停用這項檢查。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off>
預設值:「error」-
檢查 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」。請注意,如果不是根模組,系統一律會忽略 MODULE.bazel 中的這些開發依附元件,無論此旗標的值為何。
標記:loading_and_analysis
--lockfile_mode=<off, update, refresh or error>
預設值:「update」-
指定如何使用鎖定檔案,以及是否要使用鎖定檔案。有效值為「update」,使用 Lockfile,並在發生變更時更新檔案,「refresh」會不時重新整理遠端註冊資料庫的可變動資訊 (yanked 版本和先前缺少的模組)、「error」使用鎖定檔案,但如果不是最新版本,則會擲回錯誤;如果皆不讀取或寫入鎖定檔案,則會擲回錯誤。
標記: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 是正整數。如果在 <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;有效無限。零表示完整 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,實際上沒有上限。若為零,表示次要 GC 事件永遠不會觸發釋放作業。如果達到上限,當發生次要 GC 事件且超過保留堆積百分比門檻時,SkyFrame 狀態不會再遭到捨棄。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer>
預設值:「85」-
標記用於 Bazel 內部 Skyframe 引擎的進階設定。如果 Bazel 偵測到保留的堆積百分比用量至少達到這個門檻,就會捨棄不必要的暫時性 SkyFrame 狀態。調整這個值,或許能減輕 GC 耗損的實際時間影響,前提是 GC 耗損 (i) 是由此暫時狀態的記憶體用量所造成,且 (ii) 比在必要時重建狀態的成本還要高。
標記:host_machine_resource_optimizations
- 影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock>
預設:查看說明- 在指令執行期間記錄 Java Flight Recorder 設定檔。必須提供一個支援的剖析事件類型 (cpu、wall、alloc 或 lock) 做為引數。系統會將設定檔寫入在輸出基本目錄底下,以事件類型命名的檔案。這個旗標的語法和語意可能會在日後變更,以支援其他設定檔類型或輸出格式;請自行承擔使用風險。
--[no]experimental_record_metrics_for_all_mnemonics
預設值:「false」- 根據預設,動作類型數量上限為 20 個,且只會納入執行動作數量最多的 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」,系統就不會使用背景工作執行緒,而且存放區擷取作業將重新啟動。否則,請使用虛擬工作者執行緒。
- 其他選項,未歸類於其他類別:
- 累積
--override_repository=<an equals-separated mapping of repository name to path>
次多次使用 - 使用本機路徑覆寫存放區,格式為 <repository name>=<path>。如果指定的路徑是絕對路徑,系統會直接使用該路徑。如果指定的路徑是相對路徑,則會以目前的作業目錄為基準。如果指定的路徑以「%workspace%」開頭,則會相對於工作區根目錄,也就是 `bazel info workspace` 的輸出內容。如果指定的路徑為空白,請移除先前的覆寫值。
同步處理選項
- 顯示在指令前方且由用戶端剖析的選項:
- 累積
--distdir=<a path>
次多次使用 -
在存取網路下載檔案之前,可搜尋檔案的其他位置。
標記:bazel_internal_configuration
--[no]experimental_repository_cache_hardlinks
預設值:「false」-
如果已設定,存放區快取會在快取命中時建立檔案的硬連結,而不是複製檔案。這麼做是為了節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer>
預設值:「0」-
重試下載錯誤的次數上限。如果設為 0,則會停用重試。
標記:experimental
--experimental_scale_timeouts=<a double>
預設值:「1.0」-
以這個係數縮放 Starlark 存放區規則中的所有逾時時間。這樣一來,就能在不變更原始碼的情況下,在比規則編寫速度更慢的機器上運作外部存放區
標記:bazel_internal_configuration
、experimental
--[no]incompatible_disable_native_repo_rules
預設值:「false」-
如果設為 false,則可在 WORKSPACE 中使用原生存放區規則;否則,必須改用 Starlark 存放區規則。原生存放區規則包括 local_repository、new_local_repository、local_config_platform、android_sdk_repository 和 android_ndk_repository。
標記: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」-
系統設定目的的同步處理存放區只能標示為「configure」。
標記:changes_inputs
--gc_thrashing_threshold=<an integer in 0-100 range>
預設值:「100」-
佔用已登記空間的百分比 (0-100),超過此值後,GcThrashingDetector 會根據限制 (--gc_thrashing_limits) 判斷記憶體壓力事件。如果設為 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_analysis
、incompatible_change
--[no]incompatible_enforce_config_setting_visibility
預設值:「true」-
如果為 true,系統會強制執行 config_setting 曝光度限制。如果為 false,則每個目標都能看到每個 config_setting。請參閱 https://github.com/bazelbuild/bazel/issues/12932。
代碼:loading_and_analysis
、incompatible_change
- 與 Bzlmod 輸出和語意相關的選項:
--allow_yanked_versions=<a string>
累積多次使用-
以 `<module1>@<version1>,<module2>@<version2>` 的格式指定模組版本,即使這些版本在原始來源的登錄資料庫中已宣告為已撤銷 (如果這些版本不是來自 NonRegistryOverride),也能在解析的依附元件圖表中使用。否則,撤銷版本會導致解析失敗。您也可以使用 `BZLMOD_ALLOW_YANKED_VERSIONS` 環境變數,定義允許的撤銷版本。您可以使用「all」關鍵字停用這項檢查 (不建議)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off>
預設值:「error」-
檢查 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`。請注意,如果不是根模組,系統一律會忽略 MODULE.bazel 中的這些開發依附元件,無論此旗標的值為何。
標記:loading_and_analysis
--lockfile_mode=<off, update, refresh or error>
預設值:「更新」-
指定如何使用鎖定檔案,以及是否要使用鎖定檔案。有效值包括 `update` (使用鎖定檔案,並在有變更時更新)、`refresh` (不時從遠端登錄重新整理可變更資訊 (已撤銷的版本和先前遺漏的模組))、`error` (使用鎖定檔案,但如果檔案未更新就會擲回錯誤) 或 `off` (既不讀取也不寫入鎖定檔案)。
標記:loading_and_analysis
--override_module=<an equals-separated mapping of module name to 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,實際上沒有上限。零表示完整 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,實際上沒有上限。若為零,表示次要 GC 事件永遠不會觸發釋放作業。如果達到上限,當發生次要 GC 事件且超過保留堆積百分比門檻時,SkyFrame 狀態不會再遭到捨棄。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer>
預設:「85」-
標記用於 Bazel 內部 Skyframe 引擎的進階設定。如果 Bazel 偵測到保留堆積使用率至少達到此門檻,就會捨棄不必要的暫時性 Skyframe 狀態。調整這個值,或許能減輕 GC 耗損的實際時間影響,前提是 GC 耗損 (i) 是由此暫時狀態的記憶體用量所造成,且 (ii) 比在必要時重建狀態的成本還要高。
標記:host_machine_resource_optimizations
- 影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock>
預設值:請參閱說明- 會在指令執行期間記錄 Java Flight Recorder 設定檔。必須提供一個支援的剖析事件類型 (cpu、wall、alloc 或 lock) 做為引數。系統會將設定檔寫入在輸出基本目錄底下,以事件類型命名的檔案。這個旗標的語法和語意可能會在日後變更,以支援其他設定檔類型或輸出格式;請自行承擔使用風險。
--[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」,則不會使用 worker 執行緒,且 repo 擷取作業會在重新啟動時執行。否則,請使用虛擬背景工作執行緒。
- 其他 (不含其他類別):
--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
--[no]experimental_repository_cache_hardlinks
預設值:「false」-
如果已設定,存放區快取會在快取命中時建立檔案的硬連結,而不是複製檔案。這麼做是為了節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer>
預設值:「0」-
重試下載錯誤的次數上限。如果設為 0,則會停用重試。
標記:experimental
--experimental_scale_timeouts=<a double>
預設:「1.0」-
以這個係數縮放 Starlark 存放區規則中的所有逾時時間。如此一來,外部存放區就能在速度比規則作者預期慢的電腦上運作,而不需要變更原始碼
標記:bazel_internal_configuration
、experimental
--[no]incompatible_disable_native_repo_rules
預設值:「false」-
如果設為 false,則可在 WORKSPACE 中使用原生存放區規則;否則,必須改用 Starlark 存放區規則。原生存放區規則包括 local_repository、new_local_repository、local_config_platform、android_sdk_repository 和 android_ndk_repository。
標記: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」-
佔用已登記空間的百分比 (0-100),超過此值後,GcThrashingDetector 會根據限制 (--gc_thrashing_limits) 判斷記憶體壓力事件。如果設為 100,則會停用 GcThrashingDetector。
標記:host_machine_resource_optimizations
- Bzlmod 輸出和語意相關選項:
--allow_yanked_versions=<a string>
累積多次使用-
以 `<module1>@<version1>,<module2>@<version2>` 的格式指定模組版本,即使這些版本在原始來源的登錄資料庫中已宣告為已撤銷 (如果這些版本不是來自 NonRegistryOverride),也能在解析的依附元件圖表中使用。否則,撤銷版本會導致解析失敗。您也可以使用「BZLMOD_ALLOW_YANKED_VERSIONS」環境變數定義允許的變形版本。您可以使用「all」關鍵字停用這項檢查 (不建議)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off>
預設值:「error」-
檢查 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`。請注意,如果不是根模組,系統一律會忽略 MODULE.bazel 中的這些開發依附元件,無論此旗標的值為何。
標記:loading_and_analysis
--lockfile_mode=<off, update, refresh or error>
預設值:「update」-
指定如何使用鎖定檔案,以及是否要使用鎖定檔案。有效值包括 `update` (使用鎖定檔案,並在有變更時更新)、`refresh` (不時從遠端登錄重新整理可變更資訊 (已撤銷的版本和先前遺漏的模組))、`error` (使用鎖定檔案,但如果檔案未更新就會擲回錯誤) 或 `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,實際上沒有上限。零表示完整 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;有效無限。若為零,表示次要 GC 事件永遠不會觸發釋放作業。如果達到上限,當發生次要 GC 事件且超過保留堆積百分比門檻時,SkyFrame 狀態不會再遭到捨棄。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer>
預設值:「85」-
Bazel 內部 SkyFrame 引擎進階設定的標記。如果 Bazel 偵測到保留堆積使用率至少達到這個門檻,就會捨棄不必要的暫時性 Skyframe 狀態。調整這個值,或許能減輕 GC 耗損的實際時間影響,前提是 GC 耗損 (i) 是由此暫時狀態的記憶體用量所造成,且 (ii) 比在必要時重建狀態的成本還要高。
標記:host_machine_resource_optimizations
- 影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock>
預設值:請參閱說明- 在指令執行期間記錄 Java Flight Recorder 設定檔。必須將支援的其中一個剖析事件類型 (CPU、牆、配置或鎖定) 指定為引數。系統會將設定檔寫入在輸出基本目錄底下,以事件類型命名的檔案。這個旗標的語法和語意可能會在日後變更,以支援其他設定檔類型或輸出格式;請自行承擔使用風險。
--[no]experimental_record_metrics_for_all_mnemonics
預設值:「false」- 根據預設,動作類型數量上限為 20 個,且只會納入執行動作次數最多的 20 個助憶法。設定這個選項會為所有助憶法寫入統計資料。
--[no]print_relative_test_log_paths
預設值:「false」-
如果為 true,在列印測試記錄路徑時,請使用使用「testlogs」捷徑連結的相對路徑。注意:如果使用其他設定進行後續的「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」開始傳回多個「重寫」指令。同個網址可能會傳回多個「重寫」指令,這樣就會傳回多個網址。
--experimental_worker_for_repo_fetching=<off, platform, virtual or auto>
預設值:「auto」- 用於擷取存放區的執行緒模式。如果設為「off」,系統就不會使用 worker 執行緒,且 repo 擷取作業會在重新啟動時執行。否則,請使用虛擬工作者執行緒。
- 其他選項,未歸類於其他類別:
--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
--[no]experimental_repository_cache_hardlinks
預設值:「false」-
如果已設定,存放區快取會在快取命中時建立檔案的硬連結,而不是複製檔案。這麼做是為了節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer>
預設值:「0」-
重試下載錯誤的次數上限。如果設為 0,則系統會停用重試功能。
標記:experimental
--experimental_scale_timeouts=<a double>
預設值:「1.0」-
以這個係數縮放 Starlark 存放區規則中的所有逾時時間。這樣一來,就能在不變更原始碼的情況下,在比規則編寫速度更慢的機器上運作外部存放區
標記:bazel_internal_configuration
、experimental
--[no]incompatible_disable_native_repo_rules
預設值:「false」-
如果設為 false,則可在 WORKSPACE 中使用原生存放區規則;否則,必須改用 Starlark 存放區規則。原生存放區規則包括 local_repository、new_local_repository、local_config_platform、android_sdk_repository 和 android_ndk_repository。
標記: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」-
佔用已登記空間的百分比 (0-100),超過此值後,GcThrashingDetector 會根據限制 (--gc_thrashing_limits) 判斷記憶體壓力事件。如果設為 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_analysis
、incompatible_change
--[no]incompatible_enforce_config_setting_visibility
預設值:「true」-
如果為 true,系統會強制執行 config_setting 曝光度限制。如果為 false,則每個目標都能看到每個 config_setting。請參閱 https://github.com/bazelbuild/bazel/issues/12932。
代碼:loading_and_analysis
、incompatible_change
- 與 Bzlmod 輸出和語意相關的選項:
--allow_yanked_versions=<a string>
累積多次使用-
以 `<module1>@<version1>,<module2>@<version2>` 的格式指定模組版本,即使這些版本在原始來源的註冊表中已宣告為已撤銷 (如果這些版本不是來自 NonRegistryOverride),也能在解析的依附元件圖表中使用。否則,撤銷版本會導致解析失敗。您也可以使用「BZLMOD_ALLOW_YANKED_VERSIONS」環境變數定義允許的變形版本。您可以使用「all」關鍵字停用這項檢查 (不建議)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off>
預設值:「error」-
檢查 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」。請注意,如果不是根模組,系統一律會忽略 MODULE.bazel 中的這些開發依附元件,無論此旗標的值為何。
標記:loading_and_analysis
--lockfile_mode=<off, update, refresh or error>
預設值:「update」-
指定是否使用 Lockfile 以及是否要使用。有效值包括 `update` (使用鎖定檔案,並在有變更時更新)、`refresh` (不時從遠端登錄重新整理可變更資訊 (已撤銷的版本和先前遺漏的模組))、`error` (使用鎖定檔案,但如果檔案未更新就會擲回錯誤) 或 `off` (既不讀取也不寫入鎖定檔案)。
標記:loading_and_analysis
--override_module=<an equals-separated mapping of module name to 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 是正整數。如果在 <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,實際上沒有上限。零表示完整 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,實際上沒有上限。若為零,表示次要 GC 事件永遠不會觸發釋放作業。如果達到上限,當發生次要 GC 事件且超過保留堆積百分比門檻時,SkyFrame 狀態不會再遭到捨棄。
標記:host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer>
預設:「85」-
Bazel 內部 SkyFrame 引擎進階設定的標記。如果 Bazel 偵測到保留堆積使用率至少達到此門檻,就會捨棄不必要的暫時性 Skyframe 狀態。調整這個值,或許能減輕 GC 耗損的實際時間影響,前提是 GC 耗損 (i) 是由此暫時狀態的記憶體用量所造成,且 (ii) 比在必要時重建狀態的成本還要高。
標記:host_machine_resource_optimizations
- 影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock>
預設值:請參閱說明- 記錄指令期間的 Java Flight Recorder 設定檔。必須將支援的其中一個剖析事件類型 (CPU、牆、配置或鎖定) 指定為引數。系統會將設定檔寫入在輸出基本目錄底下,以事件類型命名的檔案。這個標記的語法和語意日後可能會變更,以支援其他設定檔類型或輸出格式,請自行承擔使用風險。
--[no]experimental_record_metrics_for_all_mnemonics
預設值:「false」- 根據預設,動作類型數量上限為 20 個,且只會納入執行動作次數最多的 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」,系統就不會使用 worker 執行緒,且 repo 擷取作業會在重新啟動時執行。否則,請使用虛擬工作者執行緒。
- 其他選項,未歸類於其他類別:
--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]experimental_inprocess_symlink_creation
預設值:「false」-
是否要發出直接檔案系統呼叫來建立符號連結樹狀結構
標記:loading_and_analysis
、execution
、experimental
--[no]experimental_persistent_aar_extractor
預設值:「false」-
使用工作站啟用永久 AAR 擷取器。
標記:execution
--[no]experimental_remotable_source_manifests
預設值:「false」-
是否要讓來源資訊清單動作可遠端執行
標記:loading_and_analysis
、execution
、experimental
--[no]experimental_split_coverage_postprocessing
預設值:「false」-
如果設為 true,Bazel 就會在新舊版本中執行涵蓋率後置測試。
標記:execution
--[no]experimental_strict_fileset_output
預設值:「false」-
如果啟用這個選項,檔案集會將所有輸出構件視為一般檔案。不會掃遍目錄,也不會對符號連結敏感。
標記:execution
--[no]incompatible_disallow_unsound_directory_outputs
預設值:「true」-
如有設定,則動作將輸出檔案具體化為目錄會發生錯誤。不會影響來源目錄。詳情請參閱 https://github.com/bazelbuild/bazel/issues/18646。
標記:bazel_internal_configuration
、incompatible_change
--[no]incompatible_modify_execution_info_additive
預設值:「false」-
啟用後,傳遞多個 --modify_execution_info 標記會相加。如果停用這項設定,系統只會將最後一個標記納入考量。
標記:execution
、affects_outputs
、loading_and_analysis
、incompatible_change
--[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'。
標記:execution
、affects_outputs
、loading_and_analysis
--persistent_android_dex_desugar
-
使用工作者啟用持續性的 Android dex 和 desugar 動作。
展開為:
--internal_persistent_android_dex_desugar
--strategy=Desugar=worker
--strategy=DexBuilder=worker
標記:host_machine_resource_optimizations
、execution
--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=Aapt2Optimize=worker
--strategy=AARGenerator=worker
--strategy=ProcessDatabinding=worker
--strategy=GenerateDataBindingBaseClasses=worker
host_machine_resource_optimizations
execution
--persistent_multiplex_android_dex_desugar
-
使用工作站啟用永久的多重 Android DEX 和脫糖動作。
展開為:
--persistent_android_dex_desugar
--internal_persistent_multiplex_android_dex_desugar
標記:host_machine_resource_optimizations
、execution
--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=Aapt2Optimize=+supports-multiplex-workers
--modify_execution_info=AARGenerator=+supports-multiplex-workers
標記:host_machine_resource_optimizations
,execution
--persistent_multiplex_android_tools
-
啟用持續性和多重化的 Android 工具 (dexing、desugaring、資源處理)。
會展開至:
--internal_persistent_multiplex_busybox_tools
--persistent_multiplex_android_resource_processor
--persistent_multiplex_android_dex_desugar
標記:host_machine_resource_optimizations
、execution
--[no]use_target_platform_for_tests
預設值:「false」-
如果為 true,Bazel 會使用目標平台執行測試,而不是測試執行群組。
標記:execution
- 設定用於執行動作的工具鍊選項:
--android_compiler=<a string>
預設值:請參閱說明-
Android 目標編譯器。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
--android_crosstool_top=<a build target label>
預設值:「//external:android/crosstool」-
用於 Android 建構作業的 C++ 編譯器位置。
標記:affects_outputs
、changes_inputs
、loading_and_analysis
、loses_incremental_state
--android_grte_top=<a label>
預設:查看說明-
Android 目標 grte_top。
標記:changes_inputs
、loading_and_analysis
、loses_incremental_state
--android_manifest_merger=<legacy, android or force_android>
預設:「android」-
選取要用於 android_binary 規則的資訊清單合併工具。旗標,可協助從舊版合併工具轉換至 Android 資訊清單合併工具。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
--android_platforms=<a build target label>
預設值:""-
設定 android_binary 目標使用的平台。如果指定多個平台,則二進位檔會是笨重的 APK,其中包含每個指定目標平台的原生二進位檔。
標記:changes_inputs
、loading_and_analysis
、loses_incremental_state
--android_sdk=<a build target label>
預設值:"@bazel_tools//tools/android:sdk"-
指定用於建構 Android 應用程式的 Android SDK/平台。
標記:changes_inputs
、loading_and_analysis
、loses_incremental_state
--apple_crosstool_top=<a build target label>
預設:"@bazel_tools//tools/cpp:toolchain"-
在 Apple 和 Objc 規則及其依附元件中使用的 crosstool 套件標籤。
標記:loses_incremental_state
、changes_inputs
--cc_output_directory_tag=<a string>
預設值:""-
指定要加入設定目錄的後置字串。
標記:affects_outputs
--compiler=<a string>
預設值:請參閱說明-
用於編譯目標的 C++ 編譯器。
標記:loading_and_analysis
、execution
--coverage_output_generator=<a build target label>
預設值:"@bazel_tools//tools/test:lcov_merger"-
用於後處理原始涵蓋率報表的二進位檔位置。目前這必須是內含單一檔案 (二進位檔) 的檔案群組。預設值為 '//tools/test:lcov_merger'。
標記:changes_inputs
、affects_outputs
、loading_and_analysis
--coverage_report_generator=<a build target label>
預設值:"@bazel_tools//tools/test:coverage_report_generator"-
用於產生涵蓋率報表的二進位位置。這個檔案群組目前必須包含單一檔案 (二進位檔)。預設值為 '//tools/test:coverage_report_generator'。
標記:changes_inputs
、affects_outputs
、loading_and_analysis
--coverage_support=<a build target label>
預設值:"@bazel_tools//tools/test:coverage_support"-
收集程式碼涵蓋率的每個測試動作輸入項目所需的支援檔案位置。預設值為 '//tools/test:coverage_support'。
標記:changes_inputs
、affects_outputs
、loading_and_analysis
--crosstool_top=<a build target label>
預設值:"@bazel_tools//tools/cpp:toolchain"-
用於編譯 C++ 程式碼的 crosstool 套件標籤。
標記:loading_and_analysis
、changes_inputs
、affects_outputs
--custom_malloc=<a build target label>
預設:查看說明- 指定自訂 malloc 實作項目。這項設定會覆寫建構規則中的 Malloc 屬性。
標記:changes_inputs
、affects_outputs
- 累積
--experimental_add_exec_constraints_to_targets=<a '<RegexFilter>=<label1>[,<label2>,...]' assignment>
次多次使用 -
以逗號分隔的規則運算式清單,每個運算式可選擇加上前置字元 - (負值運算式),並將 (=) 指派給以逗號分隔的限制值目標清單。如果目標不符合任何負面運算式,且至少符合一個正面運算式,則會執行工具鍊解析作業,就像宣告限制值為執行限制一樣。範例://demo,-test=@platforms//cpus:x86_64 會將「x86_64」新增至 //demo 下的任何目標,但名稱含有「test」的目標除外。
標記:loading_and_analysis
--[no]experimental_include_xcode_execution_requirements
預設值:「false」-
如果已設定,請在每個 Xcode 動作中新增「requires-xcode:{version}」執行需求。如果 xcode 版本有連字號標籤,請一併新增「requires-xcode-label:{version_label}」執行要求。
標記:loses_incremental_state
、loading_and_analysis
、execution
--[no]experimental_prefer_mutual_xcode
預設值:「true」-
如果為 true,請使用本機和遠端提供的最新版 Xcode。如果為 false,或沒有可用的共同版本,請使用透過 xcode-select 所選的本機 Xcode 版本。
標記:loses_incremental_state
--extra_execution_platforms=<comma-separated list of options>
預設值:""-
可用於執行動作的執行平台。您可以使用精確目標或目標模式來指定平台。系統會先考慮這些平台,再考慮由 register_execution_platforms() 在 WORKSPACE 檔案中宣告的平台。這個選項只能設定一次;後續的例項會覆寫先前的標記設定。
標記:execution
--extra_toolchains=<comma-separated list of options>
累積多次使用-
工具鍊解析時要考量的工具鍊規則。您可以使用確切目標或目標模式指定工具鍊。系統會先考慮這些工具鍊,再考慮 WORKSPACE 檔案中透過 register_toolchains() 宣告的工具鍊。
標記:affects_outputs
、changes_inputs
、loading_and_analysis
--grte_top=<a label>
預設:查看說明-
已檢查的 libc 程式庫的標籤。預設值是由 crosstool 工具鍊選取,您幾乎不需要覆寫。
標記:action_command_lines
、affects_outputs
--host_compiler=<a string>
預設值:請參閱說明-
用於主機編譯作業的 C++ 編譯器。如果未設定 --host_crosstool_top,系統會忽略這個屬性。
標記:loading_and_analysis
、execution
--host_crosstool_top=<a build target label>
預設:查看說明-
根據預設,--crosstool_top 和 --compiler 選項也會用於執行設定。如果提供這個標記,Bazel 會為指定的 crosstool_top 使用預設的 libc 和編譯器。
標記:loading_and_analysis
、changes_inputs
、affects_outputs
--host_grte_top=<a label>
預設值:請參閱說明-
如果指定此值,這項設定會覆寫執行設定的 libc 頂層目錄 (--grte_top)。
標記:action_command_lines
、affects_outputs
--host_platform=<a build target label>
預設值:"@bazel_tools//tools:host_platform"-
平台規則的標籤,用於說明主機系統。
標記:affects_outputs
、changes_inputs
、loading_and_analysis
--[no]incompatible_dont_enable_host_nonhost_crosstool_features
預設值:「true」-
如果設為 true,Bazel 就不會在 c++ 工具鍊中啟用「host」和「nonhost」功能 (詳情請參閱 https://github.com/bazelbuild/bazel/issues/7407)。
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_enable_android_toolchain_resolution
預設值:「true」-
使用工具鍊解析來選取 Android 規則的 Android SDK (Starlark 和原生)
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_enable_apple_toolchain_resolution
預設值:「false」-
使用工具鍊解析來選取 Apple 規則的 Apple SDK (Starlark 和原生)
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_make_thinlto_command_lines_standalone
預設值:「true」-
如果設為 true,Bazel 就不會在 Lto 索引指令列中重複使用 C++ 連結動作指令列 (詳情請參閱 https://github.com/bazelbuild/bazel/issues/6791)。
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_remove_legacy_whole_archive
預設值:「true」-
如果為 true,Bazel 預設不會將程式庫依附元件連結為整個封存檔 (如需遷移操作說明,請參閱 https://github.com/bazelbuild/bazel/issues/7362)。
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_require_ctx_in_configure_features
預設值:「true」-
如果設為 true,Bazel 就會要求 cc_common.configure_features 中的 'ctx' 參數 (詳情請見 https://github.com/bazelbuild/bazel/issues/7793)。
標記:loading_and_analysis
、incompatible_change
-
如果工具鍊支援,請使用介面共用物件。所有 ELF 工具鍊目前都支援這項設定。
標記:loading_and_analysis
、affects_outputs
、affects_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_analysis
、affects_outputs
--platform_mappings=<a relative path>
預設值:""-
對應檔案的位置,可說明在未設定任何平台時要使用的平台,或在已存在平台時要設定的旗標。必須相對於主要工作區根目錄。預設值為「platform_mappings」(工作區根目錄下方的檔案)。
標記:affects_outputs
、changes_inputs
、loading_and_analysis
--platforms=<a build target label>
預設值:「」-
平台規則的標籤,說明目前指令的目標平台。
標記:affects_outputs
、changes_inputs
、loading_and_analysis
--python2_path=<a string>
預設值:請參閱說明- 已淘汰,無操作。已由 `--incompatible_use_python_toolchains` 停用。
標記:no_op
、deprecated
--python3_path=<a string>
預設值:請參閱說明- 已淘汰,無操作。已由 `--incompatible_use_python_toolchains` 停用。
標記:no_op
、deprecated
--python_path=<a string>
預設:查看說明-
在目標平台上執行 Python 目標時,系統會叫用 Python 解譯器的絕對路徑。已淘汰;由 --incompatible_use_python_toolchains 停用。
標記:loading_and_analysis
、affects_outputs
--python_top=<a build target label>
預設值:請參閱說明-
這個 py_runtime 標籤,代表為了在目標平台上執行 Python 目標而叫用的 Python 解譯器。已淘汰;由 --incompatible_use_python_toolchains 停用。
標記:loading_and_analysis
、affects_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_config 規則的標籤,用於在建構設定中選取 Xcode 版本。
標記:loses_incremental_state
、loading_and_analysis
- 控制指令輸出內容的選項:
--[no]apple_generate_dsym
預設值:「false」-
是否產生偵錯符號 (.dSYM) 檔案。
標記:affects_outputs
、action_command_lines
--[no]build_runfile_links
預設值:「true」-
如果為 true,則為所有目標建立 runfiles 符號連結森林。如果為 false,則只有在本機動作、測試或執行指令要求時,才會寫入。
標記:affects_outputs
--[no]build_runfile_manifests
預設值:「true」-
如果為 true,則為所有目標寫入 runfiles 資訊清單。如果是 false,請省略。如果為 false,本機測試就會無法執行。
標記:affects_outputs
--[no]build_test_dwp
預設值:「false」-
如果啟用這項政策,當您以靜態方式建構 C++ 測試時,系統也會自動建構測試二進位檔的 .dwp 檔案。
標記:loading_and_analysis
、affects_outputs
--cc_proto_library_header_suffixes=<comma-separated set of options>
預設值:".pb.h"-
設定 cc_proto_library 建立的標頭檔案後置字串。
標記:affects_outputs
、loading_and_analysis
--cc_proto_library_source_suffixes=<comma-separated set of options>
預設值:「.pb.cc」-
設定 cc_proto_library 建立的來源檔案後置字串。
標記:affects_outputs
、loading_and_analysis
--[no]experimental_proto_descriptor_sets_include_source_info
預設值:「false」-
針對 proto_library 中的其他 Java API 版本執行額外動作。
標記:affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_proto_extra_actions
預設值:「false」-
在 proto_library 中針對替代 Java API 版本執行額外動作。
標記:affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_save_feature_state
預設值:「false」-
將已啟用和要求的功能狀態儲存為編譯的輸出內容。
標記:affects_outputs
、experimental
--fission=<a set of compilation modes>
預設值:「no」-
指定哪些編譯模式會在 C++ 編譯和連結時使用分裂。可為 {'fastbuild', 'dbg', 'opt'} 或特殊值的任意組合,其中 'yes'可啟用所有模式,'no'可停用所有模式。
標記:loading_and_analysis
、action_command_lines
、affects_outputs
--[no]incompatible_always_include_files_in_data
預設值:「true」-
如果為 true,原生規則會將資料依附元件的 <code>DefaultInfo.files</code> 新增至其執行檔,這與 Starlark 規則的建議行為相符 (https://bazel.build/extending/rules#runfiles_features_to_avoid)。
標記:affects_outputs
、incompatible_change
--[no]legacy_external_runfiles
預設值:「true」-
如果為 true,則會為 .runfiles/wsname/external/repo 下的外部存放區 (除了 .runfiles/repo) 建構執行檔案符號連結森林。
標記: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>
累積多次使用-
指定可供含有目標設定的動作使用的一組環境變數。變數可以透過名稱指定,在這種情況下,系統會從叫用環境取得值;也可以透過名稱=值組合指定,在這種情況下,系統會設定不受叫用環境影響的值。這個選項可以重複使用;如果是針對同一個變數提供的選項,則以最新的選項為準;如果是針對不同變數提供的選項,則會累加。
標記:action_command_lines
--android_cpu=<a string>
預設:「armeabi-v7a」-
Android 目標 CPU。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
--[no]android_databinding_use_androidx
預設值:「true」-
產生與 AndroidX 相容的資料繫結檔案。這個屬性僅適用於資料繫結 v2。這個標記不會執行任何操作。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]android_databinding_use_v3_4_args
預設值:「true」-
請搭配 3.4.0 引數使用 android databinding v2。這個標記為免人工管理。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--android_dynamic_mode=<off, default or fully>
預設值:「關閉」-
決定在 cc_binary 未明確建立共用程式庫時,是否要動態連結 Android 規則的 C++ 依附元件。「預設」表示 Bazel 會選擇是否要動態連結。「fully」表示所有程式庫都會動態連結。「off」表示所有程式庫都會以靜態模式連結。
標記:affects_outputs
、loading_and_analysis
--android_manifest_merger_order=<alphabetical, alphabetical_by_configuration or dependency>
預設值:「alphabetical」-
設定傳遞至 Android 二進位檔資訊清單合併工具的資訊清單順序。ALPHABETICAL 表示資訊清單是根據執行程式的相對路徑排序。ALPHABETICAL_BY_CONFIGURATION 表示資訊清單會依據輸出目錄中相對於設定目錄的路徑排序。DEPENDENCY 表示資訊清單會依序排列,每個程式庫的資訊清單會排在其依附元件的資訊清單之前。
標記:action_command_lines
、execution
--[no]android_resource_shrinking
預設值:「false」-
為使用 ProGuard 的 android_binary APK 啟用資源縮減功能。
標記:affects_outputs
、loading_and_analysis
--[no]build_python_zip
預設值:「auto」-
建構 Python 可執行的 zip 檔案;在 Windows 上開啟,在其他平台上關閉
標記:affects_outputs
--catalyst_cpus=<comma-separated list of options>
累積多次使用-
以半形逗號分隔的清單,列出要用來建構 Apple Catalyst 二進位檔的架構。
標記:loses_incremental_state
、loading_and_analysis
--[no]collect_code_coverage
預設值:「false」-
如果指定此選項,Bazel 會檢測程式碼 (盡可能使用離線檢測),並在測試期間收集涵蓋率資訊。只有符合 --instrumentation_filter 的目標才會受到影響。通常不應直接指定這個選項,而應改用「bazel coverage」指令。
標記:affects_outputs
--compilation_mode=<fastbuild, dbg or opt>
[-c
] 預設值:「fastbuild」-
指定要建構二進位檔的模式。值:「fastbuild」、「dbg」、「opt」。
標記:affects_outputs
、action_command_lines
--conlyopt=<a string>
累積多次使用-
在編譯 C 來源檔案時傳遞至 gcc 的其他選項。
標記:action_command_lines
、affects_outputs
--copt=<a string>
累積多次使用-
傳遞至 gcc 的其他選項。
標記:action_command_lines
、affects_outputs
--cpu=<a string>
預設值:""-
目標 CPU。
標記:changes_inputs
、affects_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_lines
、affects_outputs
--define=<a 'name=value' assignment>
累積多次使用-
每個 --define 選項都會指定建構變數的指派作業。
標記:changes_inputs
、affects_outputs
--dynamic_mode=<off, default or fully>
預設值:"default"-
決定是否要動態連結 C++ 二進位檔。「default」表示 Bazel 會選擇是否要動態連結。「fully」表示所有程式庫都會動態連結。「off」表示所有程式庫都會以靜態模式連結。
標記:loading_and_analysis
、affects_outputs
--[no]enable_fdo_profile_absolute_path
預設值:「true」-
如果設為此值,使用 fdo_absolute_profile_path 會引發錯誤。
標記:affects_outputs
--[no]enable_runfiles
預設值:「auto」-
啟用 runfiles 符號連結樹狀結構;預設情況下,Windows 和其他平台都會關閉。
標記:affects_outputs
- 累積
--experimental_action_listener=<a build target label>
次多次使用 - 已淘汰,改用切面。使用 action_listener 將 extra_action 附加至現有的建構動作。
標記:execution
、experimental
--[no]experimental_android_compress_java_resources
預設值:「false」-
壓縮 APK 中的 Java 資源
標記:affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_android_databinding_v2
預設值:「true」-
使用 Android Databinding v2。這個標記為免人工管理。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]experimental_android_resource_shrinking
預設值:「false」-
為使用 ProGuard 的 android_binary APK 啟用資源縮減功能。
標記:affects_outputs
、loading_and_analysis
--[no]experimental_android_rewrite_dexes_with_rex
預設值:「false」-
使用 rex 工具重新編寫 dex 檔案
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[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 和 -fasynchronous-unwind-tables 進行編譯。
標記:action_command_lines
、affects_outputs
、experimental
--experimental_output_paths=<off, content or strip>
預設值:「off」-
要在輸出樹狀結構規則的何處寫入輸出內容 (尤其是多平台 / 多設定版本) 時,要使用哪個模型。這項功能仍在實驗階段,詳情請參閱 https://github.com/bazelbuild/bazel/issues/6526。Starlark 動作可以選擇啟用路徑對應功能,方法是將「supports-path-mapping」鍵新增至「execution_requirements」字典。
標記:loses_incremental_state
、bazel_internal_configuration
、affects_outputs
、execution
--experimental_override_name_platform_in_output_dir=<a 'label=value' assignment>
累積多次使用-
每個項目都應採用 label=value 的格式,其中 label 是指平台,而 value 是輸出路徑中要使用的所需簡稱。僅在 --experimental_platform_in_output_dir 為 true 時使用。具有最高的命名優先順序。
標記:affects_outputs
、experimental
--[no]experimental_platform_in_output_dir
預設值:「false」-
如果為 true,輸出目錄名稱會使用目標平台的短名稱,而非 CPU。具體的配置為實驗性質,可能會變更:首先,在極少數情況下,如果 --platforms 選項不含確切的一個值,系統會使用 platforms 選項的雜湊值。接著,如果目前平台的任何簡稱都已透過 --experimental_override_name_platform_in_output_dir 註冊,系統就會使用該簡稱。接著,如果已設定 --experimental_use_platforms_in_output_dir_legacy_heuristic,則使用以目前平台標籤為基礎的簡稱。最後,平台選項的雜湊是在不得已的情況下使用。
標記:affects_outputs
、experimental
--[no]experimental_use_llvm_covmap
預設值:「false」-
如有指定,Bazel 會在啟用 collection_code_coverage 的情況下,產生 llvm-cov 涵蓋範圍地圖資訊,而非 gcov。
標記:changes_inputs
、affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_use_platforms_in_output_dir_legacy_heuristic
預設值:「true」-
請僅在建議的遷移或測試策略中使用這個標記。請注意,啟發式搜尋有已知的缺陷,建議您改為只使用 --experimental_override_name_platform_in_output_dir。
標記:affects_outputs
、experimental
--fat_apk_cpu=<comma-separated set of options>
預設值:「armeabi-v7a」-
設定這個選項會啟用笨重的 APK,其中包含所有指定目標架構的原生二進位檔,例如 --fat_apk_cpu=x86,armeabi-v7a. 如果指定這個旗標,則 android_binary 規則的依附元件將忽略 --android_cpu。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
--[no]fat_apk_hwasan
預設值:「false」-
是否要建立 HWASAN 分割項目。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
--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_inputs
、affects_outputs
--[no]force_pic
預設值:「false」-
如果啟用,所有 C++ 編譯作業都會產生位置無關的程式碼 ("-fPIC"),連結會優先使用 PIC 預先建構的程式庫,而非非 PIC 程式庫,且連結會產生位置無關的可執行檔 ("-pie")。
標記:loading_and_analysis
、affects_outputs
--host_action_env=<a 'name=value' assignment with an optional value part>
累積多次使用-
指定執行作業設定可用的環境變數組合。變數可以透過名稱指定,在這種情況下,系統會從叫用環境取得值;也可以透過名稱=值組合指定,在這種情況下,系統會設定不受叫用環境影響的值。這個選項可多次使用;對於相同變數所提供的選項、最新的勝出結果,以及累積不同變數的選項。
標記:action_command_lines
--host_compilation_mode=<fastbuild, dbg or opt>
預設:「opt」-
指定在建構期間使用的工具將以何種模式建構。值:'fastbuild'、'dbg'、'opt'。
標記:affects_outputs
、action_command_lines
--host_conlyopt=<a string>
累積多次使用-
在執行設定中編譯 C (但非 C++) 來源檔案時,要傳遞至 C 編譯器的其他選項。
標記:action_command_lines
、affects_outputs
--host_copt=<a string>
累積多次使用-
為執行設定中建構的工具,傳遞至 C 編譯器的其他選項。
標記:action_command_lines
、affects_outputs
--host_cpu=<a string>
預設值:""-
主機 CPU。
標記:changes_inputs
、affects_outputs
--host_cxxopt=<a string>
累積多次使用-
針對在執行設定中建構的工具,傳遞至 C++ 編譯器的其他選項。
標記:action_command_lines
、affects_outputs
--host_features=<a string>
累積多次使用-
對於在執行設定中建構的目標,系統會依預設啟用或停用指定功能。指定 -<feature> 會停用該功能。負面特徵一律會覆寫正面特徵。
標記:changes_inputs
、affects_outputs
--host_force_python=<PY2 or PY3>
預設值:請參閱說明-
覆寫執行設定的 Python 版本。可以是「PY2」或「PY3」。
標記:loading_and_analysis
、affects_outputs
- 累積
--host_linkopt=<a string>
次多次使用 -
在執行設定中連結工具時,要傳遞至連結器的其他選項。
標記:action_command_lines
、affects_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>
次多次使用 -
在 exec 設定中編譯特定檔案時,可選擇選擇性傳遞至 C/C++ 編譯器的其他選項。這個選項可以多次傳遞。語法:regex_filter@選項_1,選項_2,...,選項_n。其中 regex_filter 代表包含和排除規則運算式模式的清單 (另請參閱 --instrumentation_filter)。 option_1 到 option_1 代表任意指令列選項。如果選項包含半形逗號,則必須在半形逗號前後加上反斜線。選項可以包含 @。只有第一個 @ 會用來分割字串。範例:--host_per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 會將 -O0 指令列選項新增至 //foo/ 中所有 cc 檔案 (除了 bar.cc) 的 gcc 指令列。
標記:action_command_lines
、affects_outputs
--host_swiftcopt=<a string>
累積多次使用-
傳遞給執行工具的 swiftc 的其他選項。
標記:action_command_lines
、affects_outputs
--[no]incompatible_auto_exec_groups
預設值:「false」-
啟用後,系統會為規則使用的每個工具鍊自動建立執行群組。為使這項規則運作,您需要在其動作中指定「toolchain」參數。如需更多資訊,請參閱 https://github.com/bazelbuild/bazel/issues/17134。
標記:affects_outputs
、incompatible_change
--[no]incompatible_merge_genfiles_directory
預設值:「true」-
如果設為 true,系統會將 genfiles 目錄折疊至 bin 目錄。
標記:affects_outputs
、incompatible_change
--[no]incompatible_use_host_features
預設值:「true」-
如為 true,請僅針對目標設定使用 --features,用於執行設定時則使用 --host_features。
標記:changes_inputs
、affects_outputs
、incompatible_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_state
、loading_and_analysis
--[no]legacy_whole_archive
預設值:「true」-
已淘汰,已由 --incompatible_remove_legacy_whole_archive 取代 (詳情請參閱 https://github.com/bazelbuild/bazel/issues/7362)。開啟後,請針對 cc_binary 規則使用 --whole-archive,該規則的 linkshared 為 True,且 linkopts 中為 linkstatic=True 或 '-static'。這項設定僅適用於回溯相容性。更好的做法是在需要時使用 alwayslink=1。
標記:action_command_lines
、affects_outputs
、deprecated
--linkopt=<a string>
累積多次使用-
連結時傳送至 gcc 的其他選項。
標記:action_command_lines
、affects_outputs
--ltobackendopt=<a string>
累積多次使用-
傳遞至 LTO 後端步驟的其他選項 (在 --features=thin_lto 下方)。
標記:action_command_lines
、affects_outputs
- 累積
--ltoindexopt=<a string>
次多次使用 -
傳遞至 LTO 索引步驟的其他選項 (在 --features=thin_lto 下方)。
標記:action_command_lines
、affects_outputs
--macos_cpus=<comma-separated list of options>
累積多次使用-
以逗號分隔的架構清單,用於建構 Apple macOS 二進位檔。
標記:loses_incremental_state
、loading_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 到 option_n 代表任意指令列選項。如果選項包含半形逗號,則必須在半形逗號前後加上反斜線。選項可以包含 @。只有第一個 @ 會用來分割字串。範例:--per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 會將 -O0 指令列選項新增至 //foo/ 中所有 cc 檔案 (除了 bar.cc) 的 gcc 指令列。
標記:action_command_lines
、affects_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@選項_1,選項_2,...,選項_n。其中 regex_filter 代表包含和排除規則運算式模式的清單。 options_1 到 option_n 代表任意指令列選項。如果選項中包含半形逗號,就必須用反斜線加引號。選項可以包含 @,系統只會使用第一個 @ 來分割字串。範例:--per_file_ltobackendopt=//foo/.*\.o,-//foo/bar\.o@-O0 會將 -O0 指令列選項新增至 //foo/ 中所有 o 檔案 (除了 bar.o) 的 LTO 後端指令列。
標記:action_command_lines
、affects_outputs
--platform_suffix=<a string>
預設:查看說明-
指定要加入設定目錄的後置字串。
標記:loses_incremental_state
、affects_outputs
、loading_and_analysis
--propeller_optimize=<a build target label>
預設:查看說明-
使用 Propeller 設定檔資訊來改善建構目標。Propeller 設定檔至少必須包含以下兩個檔案之一:cc 設定檔和 ld 設定檔。此旗標接受建構標籤,該標籤必須參照依附元件設定檔輸入檔案。舉例來說,定義標籤的 BUILD 檔案,在 a/b/BUILD:propeller_optimize( name = "propeller_profile", cc_profile = "propeller_cc_profile.txt", ld_profile = "propeller_ld_profile.txt",)An exports_files directive may have to be added to the corresponding package to make these files visible to Bazel. 這個選項必須以以下方式使用:--propeller_optimize=//a/b:propeller_profile
標記:action_command_lines
、affects_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
-
如果為 true,含有相同功能的原生程式庫會在不同目標之間共用
標記:loading_and_analysis
、affects_outputs
--[no]stamp
預設值:「false」-
在二進位檔上蓋上日期、使用者名稱、主機名稱、工作區資訊等資訊。
標記:affects_outputs
--strip=<always, sometimes or never>
預設值:「sometimes」-
指定是否要移除二進位檔和共用程式庫 (使用「-Wl,--strip-debug」)。預設值「sometimes」代表 iff --compile_mode=fastbuild。
標記:affects_outputs
--stripopt=<a string>
累積多次使用- 產生 '<name>.stripped'二進位檔時,要傳遞至 strip 的其他選項。
標記:action_command_lines
、affects_outputs
--swiftcopt=<a string>
累積多次使用-
傳遞至 Swift 編譯的其他選項。
標記:action_command_lines
--tvos_cpus=<comma-separated list of options>
累積多次使用-
用於建構 Apple tvOS 二進位檔的架構清單 (以半形逗號分隔)。
標記:loses_incremental_state
、loading_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_state
、loading_and_analysis
--watchos_cpus=<comma-separated list of options>
累積多次使用-
用於建構 Apple watchOS 二進位檔的架構清單 (以半形逗號分隔)。
標記:loses_incremental_state
、loading_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>
預設值:""-
宣告環境_group,用於自動將 cpu 值對應至 target_environment 值。
標記:changes_inputs
、loading_and_analysis
、experimental
--[no]check_licenses
預設值:「false」-
請確認依附套件施加的授權限制,不會與建構目標的發布模式衝突。根據預設,系統不會檢查授權。
標記:build_file_semantics
--[no]check_visibility
預設值:「true」-
如果停用,目標依附元件中的顯示錯誤會降級為警告。
標記:build_file_semantics
--[no]desugar_for_android
預設值:「true」-
是否要在解碼前脫糖 Java 8 位元組程式碼。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
--[no]desugar_java8_libs
預設值:「false」-
是否要在舊版裝置的應用程式中加入支援的 Java 8 程式庫。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]enforce_constraints
預設值:「true」-
檢查每個目標的相容環境,如果任何目標的依附元件不支援相同的環境,就會回報錯誤
標記:build_file_semantics
--[no]experimental_check_desugar_deps
預設值:「true」-
是否要再次檢查 Android 二進位檔層級的正確去糖化。
標記:eagerness_to_exit
、loading_and_analysis
、experimental
--experimental_import_deps_checking=<off, warning or error>
預設值:「關閉」-
啟用後,系統會檢查 aar_import 的依附元件是否完整。這項強制執行措施可能會導致建構作業中斷,或只會產生警告。
標記:loading_and_analysis
--experimental_one_version_enforcement=<off, warning or error>
預設值:「關閉」-
啟用後,系統會強制規定 java_binary 規則在 classpath 中不得包含同一個類別檔案的多個版本。這項強制執行措施可能會導致建構作業中斷,或只會產生警告。
標記:loading_and_analysis
--experimental_strict_java_deps=<off, warn, error, strict or default>
預設值:「預設」-
如果為 true,則會檢查 Java 目標是否明確將所有直接使用的目標宣告為依附元件。
標記:build_file_semantics
、eagerness_to_exit
--[no]incompatible_check_testonly_for_output_files
預設值:「false」-
如果啟用,請查詢產生規則的 testonly,檢查 testonly 是否為輸出檔案的必要條件目標。這項設定與可見度檢查相符。
標記:build_file_semantics
、incompatible_change
--[no]incompatible_check_visibility_for_toolchains
預設值:「false」-
如果已啟用,可視性檢查也會套用至工具鍊實作。
標記:build_file_semantics
、incompatible_change
--[no]incompatible_disable_native_android_rules
預設值:「false」-
如果啟用,系統就會停用原生 Android 規則的直接用法。請使用 https://github.com/bazelbuild/rules_android 中的 Starlark Android 規則
標記:eagerness_to_exit
、incompatible_change
--[no]incompatible_disable_native_apple_binary_rule
預設值:「false」-
免人工管理,保留回溯相容性。
標記:eagerness_to_exit
、incompatible_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_analysis
、incompatible_change
--[no]incompatible_validate_top_level_header_inclusions
預設值:「true」-
如果為 True,Bazel 也會驗證頂層目錄標頭的納入項目 (詳情請參閱 https://github.com/bazelbuild/bazel/issues/10047)。
標記:loading_and_analysis
、incompatible_change
--[no]one_version_enforcement_on_java_tests
預設值:「true」-
啟用此選項後,如果 experimental_one_version_enforcement 設為非 NONE 值,系統就會在 java_test 目標上強制執行一個版本。您可以停用這個標記,提高漸進式測試效能,但這麼做會導致缺少一個潛在的版本違規事項。
標記:loading_and_analysis
--python_native_rules_allowlist=<a build target label>
預設值:請參閱說明-
在強制執行 --incompatible_python_disallow_native_rules 時,要使用的許可清單 (package_group 目標)。
標記:loading_and_analysis
--[no]strict_filesets
預設值:「false」-
如果啟用這個選項,系統會將跨越套件邊界的檔案集回報為錯誤。
標記:build_file_semantics
、eagerness_to_exit
--strict_proto_deps=<off, warn, error, strict or default>
預設值:「error」-
除非設為 OFF,否則會檢查 proto_library 目標是否明確將所有直接使用的目標宣告為依附元件。
標記:build_file_semantics
、eagerness_to_exit
、incompatible_change
--strict_public_imports=<off, warn, error, strict or default>
預設值:「off」-
除非設為 OFF,否則會檢查 proto_library 目標是否明確宣告在「import public」中使用的所有目標為匯出目標。
標記:build_file_semantics
、eagerness_to_exit
、incompatible_change
--[no]strict_system_includes
預設值:「false」-
如果設為 true,則系統會透過系統包含路徑 (-isystem) 找到的標頭,也必須宣告。
標記:loading_and_analysis
、eagerness_to_exit
- 累積
--target_environment=<a build target label>
次多次使用 -
宣告此版本的目標環境。必須是「環境」規則的標籤參照。如果指定了這個環境,則所有頂層目標都必須與此環境相容。
標記:changes_inputs
- 影響建構簽署輸出內容的選項:
--apk_signing_method=<v1, v2, v1_v2 or v4>
預設值:「v1_v2」-
用於簽署 APK 的實作方式
標記:action_command_lines
、affects_outputs
、loading_and_analysis
--[no]device_debug_entitlements
預設值:「true」-
如果已設定,且編譯模式並非「opt」,則 objc 應用程式會在簽署時加入偵錯授權。
標記:changes_inputs
--ios_signing_cert_name=<a string>
預設值:請參閱說明-
用於 iOS 簽署的憑證名稱。如未設定,系統會改回佈建設定檔。根據 codesign 的 man 頁面 (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_analysis
、incompatible_change
--[no]incompatible_disallow_legacy_py_provider
預設值:「true」-
無操作,即將移除。
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_disallow_sdk_frameworks_attributes
預設值:「false」-
如果設為 true,就禁止在 objc_library 和 objc_import 中使用 sdk_frameworks 和 weak_sdk_frameworks 屬性。
標記:build_file_semantics
、incompatible_change
--[no]incompatible_enforce_config_setting_visibility
預設值:「true」-
如果為 true,系統會強制執行 config_setting 瀏覽權限限制。如果為 false,則每個目標都能看到每個 config_setting。請參閱 https://github.com/bazelbuild/bazel/issues/12932。
標記:loading_and_analysis
、incompatible_change
--[no]incompatible_objc_alwayslink_by_default
預設值:「false」-
如果為 true,請將 objc_library 和 objc_import 中的 alwayslink 屬性預設值設為 true。
標記:build_file_semantics
、incompatible_change
--[no]incompatible_python_disallow_native_rules
預設值:「false」-
如果為 true,使用內建 py_* 規則時會發生錯誤,而應使用規則_python 規則。詳情請參閱 https://github.com/bazelbuild/bazel/issues/17773 瞭解遷移操作說明。
標記:loading_and_analysis
、incompatible_change
- 用於控管測試環境或測試執行工具行為的選項:
--[no]allow_analysis_failures
預設值:「false」-
如果設為 true,當規則目標分析失敗時,會導致目標套用含有錯誤說明的 AnalysisFailureInfo 例項,而不會導致建構失敗。
標記:loading_and_analysis
、experimental
--analysis_testing_deps_limit=<an integer>
預設值:「2000」-
透過規則屬性和 for_analysis_testing 設定轉換,設定遞移依附元件的數量上限。若超出這項限制,就會導致規則錯誤。
標記:loading_and_analysis
--[no]break_build_on_parallel_dex2oat_failure
預設值:「false」-
如果為 true,則 dex2oat 動作失敗會導致建構作業中斷,而不會在測試執行階段執行 dex2oat。
標記:loading_and_analysis
、experimental
--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,並可選擇加上 [-|*]<浮點> (例如 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_analysis
、host_machine_resource_optimizations
、experimental
--[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。其中 runs_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 用戶端環境讀取其值,也可以透過名稱=值組合指定。您可以多次使用此選項指定多個變數。僅供「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
- 與 Bzlmod 輸出內容和語義相關的選項:
- 累積
--repo=<a string>
次多次使用 -
只有供應商指定存放區,可以是「@apparent_repo_name」或「@@standard_repo_name」。這個選項可多次設定
標記: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_analysis
、execution
、affects_outputs
、experimental
--[no]experimental_inmemory_jdeps_files
預設值:「true」-
啟用後,Java 編譯產生的依附元件 (.jdeps) 檔案會直接從遠端建構節點在記憶體中傳遞,而不是寫入磁碟。
標記:loading_and_analysis
、execution
、affects_outputs
、experimental
--[no]experimental_objc_include_scanning
預設值:「false」-
是否要為 Objective-C/C++ 執行包含掃描。
標記:loading_and_analysis
、execution
、changes_inputs
--[no]experimental_retain_test_configuration_across_testonly
預設值:「false」-
啟用後,--trim_test_configuration 就不會為標示為 testonly=1 的規則裁減測試設定。這項功能旨在減少非測試規則依賴 cc_test 規則時的動作衝突問題。如果 --trim_test_configuration 為 false,就不會產生任何影響。
標記:loading_and_analysis
、loses_incremental_state
--[no]experimental_starlark_cc_import
預設值:「false」-
如果啟用,即可使用 Starlark 版本的 cc_import。
標記:loading_and_analysis
、experimental
--[no]experimental_unsupported_and_brittle_include_scanning
預設值:「false」-
是否要透過剖析輸入檔案中的 #include 行,將輸入範圍縮小至 C/C++ 編譯。這可縮減編譯輸入樹狀結構的大小,進而提升效能和增量。不過,由於包含掃描器未完全實作 C 預處理器語意,因此也可能會導致建構作業中斷。具體來說,它無法瞭解動態 #include 指示,並會忽略預處理器條件邏輯。您必須自行承擔使用風險。我們會關閉與這個標記相關的所有已提交問題。
標記:loading_and_analysis
、execution
、changes_inputs
--[no]incremental_dexing
預設值:「true」-
大部分的工作都是分別針對各個 Jar 檔案進行 DEX 處理。
標記:affects_outputs
、loading_and_analysis
、loses_incremental_state
--[no]objc_use_dotd_pruning
預設值:「true」-
如果設定,系統會使用 Clang 產生的 .d 檔案,來修剪傳遞至 objc 編譯作業的輸入集合。
標記:changes_inputs
、loading_and_analysis
--[no]process_headers_in_dependencies
預設值:「false」-
建構目標 //a:a 時,請處理 //a:a 依附的所有目標中的標頭 (如果工具鍊啟用了標頭處理功能)。
標記:execution
--[no]trim_test_configuration
預設值:「true」-
啟用後,系統會清除版本頂層以下的測試相關選項。啟用此標記後,測試就無法建構為非測試規則的依附元件,但變更測試相關選項不會導致非測試規則重新分析。
標記:loading_and_analysis
、loses_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 標記的簡寫名稱。它會將單一鍵/值組合 (格式為「<鍵>=<值>」) 做為引數。
標記: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_outputs
、incompatible_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_outputs
、incompatible_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_analysis
、affects_outputs
、incompatible_change
--[no]incompatible_use_python_toolchains
預設值:「true」-
如果設為 true,可執行的原生 Python 規則將使用 Python 工具鍊指定的 Python 執行階段,而非舊版旗標 (例如 --python_top) 指定的執行階段。
標記:loading_and_analysis
、incompatible_change
--python_version=<PY2 or PY3>
預設值:請參閱說明-
Python 主要版本模式,可選為 `PY2` 或 `PY3`。請注意,這會由 `py_binary` 和 `py_test` 目標覆寫 (即使未明確指定版本),因此通常沒有提供這個旗標的必要。
標記:loading_and_analysis
、affects_outputs
- 其他選項,無法透過其他方式分類:
--[no]cache_test_results
[-t
] 預設值:「auto」- 如果設為「auto」,Bazel 只會在下列情況下重新執行測試:(1) Bazel 偵測到測試或其依附元件的變更、(2) 測試標示為外部、(3) 使用 --runs_per_test 要求執行多個測試,或(4) 測試先前失敗。如果設為「yes」,Bazel 會快取所有測試結果,除了標示為外部的測試以外。如果設為「no」,Bazel 就不會快取任何測試結果。
--deleted_packages=<comma-separated list of package names>
累積多次使用- 以半形逗號分隔的套件名稱清單,即使這些套件名稱在套件路徑的某處可見,建構系統仍會視為不存在。刪除現有套件「x」的子套件「x/y」時,請使用這個選項。舉例來說,在刪除用戶端中的 x/y/BUILD 後,如果建構系統遇到標籤「//x:y/z」,但該標籤仍由另一個 package_path 項目提供,系統可能會發出錯誤訊息。指定 --delete_packages x/y 可避免發生這個問題。
--[no]experimental_cancel_concurrent_tests
預設值:「false」-
如果為 true,Blaze 會在第一次成功執行時取消同時執行的測試。只有在搭配 --runs_per_test_Detects_flakes 時才能使用。
標記:affects_outputs
、loading_and_analysis
--[no]experimental_fetch_all_coverage_outputs
預設值:「false」-
如果值為 true,Bazel 會在涵蓋率執行期間,擷取每項測試的整個涵蓋率資料目錄。
標記:affects_outputs
、loading_and_analysis
--[no]experimental_generate_llvm_lcov
預設值:「false」-
如果設為 True,clang 的涵蓋率就會產生 LCOV 報表。
標記:affects_outputs
、loading_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 的 deps 取得。目前僅適用於 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,Bazel 會在測試執行器未指出其支援透過輕觸 TEST_SHARD_STATUS_FILE 路徑上的檔案的方式來進行資料分割測試時。如果為 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_analysis
、incompatible_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>
預設值:請參閱說明- 指定用於在不分割的情況下執行解析的二進位檔。
--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_outputs
、loading_and_analysis
--proto_toolchain_for_cc=<a build target label>
預設值:"@bazel_tools//tools/proto:cc_toolchain"-
proto_lang_toolchain() 的標籤,說明如何編譯 C++ 原型檔
標記:affects_outputs
、loading_and_analysis
--proto_toolchain_for_j2objc=<a build target label>
預設:"@bazel_tools//tools/j2objc:j2objc_proto_toolchain"-
proto_lang_toolchain() 標籤,用於說明如何編譯 j2objc proto
標記:affects_outputs
、loading_and_analysis
--proto_toolchain_for_java=<a build target label>
預設值:"@bazel_tools//tools/proto:java_toolchain"-
proto_lang_toolchain() 標籤,用於說明如何編譯 Java protos
標記:affects_outputs
、loading_and_analysis
--proto_toolchain_for_javalite=<a build target label>
預設值:"@bazel_tools//tools/proto:javalite_toolchain"-
proto_lang_toolchain() 標籤,用於說明如何編譯 JavaLite protos
標記:affects_outputs
、loading_and_analysis
--protocopt=<a string>
累積多次使用-
傳遞至 protobuf 編譯器的其他選項。
標記:affects_outputs
--[no]runs_per_test_detects_flakes
預設值:「false」- 如果為 true,則任何具有至少一個成功執行/嘗試,以及至少一個失敗執行/嘗試的區塊,都會獲得「不穩定」狀態。
--shell_executable=<a path>
預設:查看說明-
Bazel 要使用的殼層執行檔絕對路徑。如果未設定此值,但在第一次呼叫 Bazel (啟動 Bazel 伺服器) 時已設定 BAZEL_SH 環境變數,Bazel 就會使用該值。如果未設定這兩者,Bazel 會根據執行的作業系統使用硬式編碼的預設路徑 (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 屬性,則只使用區塊劃分策略。「已停用」表示不使用測試資料分割。使用「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
--[no]experimental_repository_cache_hardlinks
預設值:「false」-
如果已設定,則在快取命中時,存放區快取會強制連結檔案,而非複製。這麼做是為了節省磁碟空間。
標記:bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer>
預設值:「0」-
重試下載錯誤的次數上限。如果設為 0,則會停用重試。
標記:experimental
--experimental_scale_timeouts=<a double>
預設值:「1.0」-
以這個係數縮放 Starlark 存放區規則中的所有逾時時間。如此一來,外部存放區就能在速度比規則作者預期慢的電腦上運作,而不需要變更原始碼
標記:bazel_internal_configuration
、experimental
--[no]incompatible_disable_native_repo_rules
預設值:「false」-
如果設為 false,則可在 WORKSPACE 中使用原生存放區規則;否則,必須改用 Starlark 存放區規則。原生存放區規則包括 local_repository、new_local_repository、local_config_platform、android_sdk_repository 和 android_ndk_repository。
標記: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」-
佔用已登記空間的百分比 (0-100),超過此值後,GcThrashingDetector 會根據限制 (--gc_thrashing_limits) 判斷記憶體壓力事件。如果設為 100,則會停用 GcThrashingDetector。
標記:host_machine_resource_optimizations
- 這個選項可讓使用者設定預期的輸出內容,影響輸出的值,而非其存在:
--[no]gnu_format
預設值:「false」-
如果設為此值,則會使用 GNU 標準中所述的慣例,將版本寫入 stdout。
標記:affects_outputs
、execution
- Bzlmod 輸出和語意相關選項:
--allow_yanked_versions=<a string>
累積多次使用-
以 `<module1>@<version1>,<module2>@<version2>` 的格式指定模組版本,即使這些版本在原始來源的登錄資料庫中已宣告為已撤銷 (如果這些版本不是來自 NonRegistryOverride),也能在解析的依附元件圖表中使用。否則,撤銷版本會導致解析失敗。您也可以使用 `BZLMOD_ALLOW_YANKED_VERSIONS` 環境變數,定義允許的撤銷版本。您可以使用「all」關鍵字停用這項檢查 (不建議)。
標記:loading_and_analysis
--check_bazel_compatibility=<error, warning or off>
預設值:「error」-
檢查 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`。請注意,如果不是根模組,系統一律會忽略 MODULE.bazel 中的這些開發依附元件,無論此旗標的值為何。
標記:loading_and_analysis
--lockfile_mode=<off, update, refresh or error>
預設值:「update」-
指定是否要使用鎖定檔案,以及使用方式。有效值包括 `update` (使用鎖定檔案,並在有變更時更新)、`refresh` (不時從遠端登錄重新整理可變更資訊 (已撤銷的版本和先前遺漏的模組))、`error` (使用鎖定檔案,但如果檔案未更新就會擲回錯誤) 或 `off` (既不讀取也不寫入鎖定檔案)。
標記:loading_and_analysis
--override_module=<an equals-separated mapping of module name to 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> 指定,其中半形句號代表時間長度,而且數量是正整數。如果超過 --gc_thrashing_threshold 的持久空間 (舊代堆積) 停留在 <period> 內連續 <count> 個完整 GC 後,就會觸發 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;有效無限。零表示完整 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 耗損的實際時間影響,前提是 GC 耗損 (i) 是由此暫時狀態的記憶體用量所造成,且 (ii) 比在必要時重建狀態的成本還要高。
標記:host_machine_resource_optimizations
- 影響記錄詳細程度、格式或位置的選項:
--experimental_command_profile=<cpu, wall, alloc or lock>
預設值:請參閱說明- 在指令執行期間記錄 Java Flight Recorder 設定檔。必須提供一個支援的剖析事件類型 (cpu、wall、alloc 或 lock) 做為引數。設定檔會寫入輸出基礎目錄下以事件類型命名的檔案。這個標記的語法和語意日後可能會變更,以支援其他設定檔類型或輸出格式,請自行承擔使用風險。
--[no]experimental_record_metrics_for_all_mnemonics
預設值:「false」- 根據預設,動作類型數量上限為 20 個,且只會納入執行動作次數最多的 20 個助憶法。設定這個選項會寫入所有助憶鍵的統計資料。
- 為不屬於其他類別的 Bazel 指令指定或變更一般輸入內容的選項:
--experimental_resolved_file_instead_of_workspace=<a string>
預設值:「」-
如果非空白,則讀取指定的已解析檔案,而非 WORKSPACE 檔案
標記:changes_inputs
- 遠端快取和執行選項:
--experimental_downloader_config=<a string>
預設:查看說明- 指定要用來設定遠端下載工具的檔案。這個檔案包含幾行內容,每個行的開頭都是「allow」、「block」或「rewrite」指令,後面加上主機名稱 (「allow」和「block」) 或兩個模式,一個用於比對,另一個則做為替代網址使用,並從「$1」開始傳回多個「重寫」指令。同個網址可能會傳回多個「重寫」指令,這樣就會傳回多個網址。
--experimental_worker_for_repo_fetching=<off, platform, virtual or auto>
預設值:「auto」- 用於擷取存放區的執行緒模式。如果設為「off」,系統就不會使用 worker 執行緒,且 repo 擷取作業會在重新啟動時執行。否則,請使用虛擬工作者執行緒。
- 其他 (不含其他類別):
- 累積
--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 在失敗時退出的方式,在這種情況下,您可以選擇繼續執行或結束呼叫。 |
bazel_monitoring |
這個選項可用來監控 bazel 的行為和效能。 |
terminal_output |
這個選項會影響 Bazel 的終端機輸出內容。 |
action_command_lines |
這個選項會變更一或多個建構動作的指令列引數。 |
test_runner |
這個選項會變更建構的測試執行程式環境。 |
選項中繼資料標記
experimental |
這個選項會觸發實驗功能,但無法保證功能正常運作。 |
incompatible_change |
這個選項會觸發破壞性變更。使用這個選項測試遷移就緒性,或搶先體驗新功能 |
deprecated |
這個選項已淘汰,原因可能是受影響的功能已遭到淘汰,或是建議使用其他方式提供資訊。 |