命令行参考文档

报告问题 查看来源 Nightly · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

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]

三态选项通常默认设置为自动,可以强制启用,如下所示:

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

命令

analyze-profile 分析 build 配置文件数据。
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_outputsloses_incremental_state
--[no]batch 默认值:“false”
如果设置了此变量,Bazel 将仅作为客户端进程运行,而不会以标准的客户端/服务器模式运行。此方法已弃用,并将被移除。如果您想避免服务器长时间运行,请明确关闭服务器。
标记: loses_incremental_statebazel_internal_configurationdeprecated
--[no]batch_cpu_scheduling 默认值:“false”
仅限 Linux;为 Blaze 使用“批处理”CPU 调度。此政策适用于非交互式工作负载,但这些工作负载不想降低其 nice 值。请参阅“man 2 sched_setscheduler”。如果为 false,则 Bazel 不会执行系统调用。
标签: host_machine_resource_optimizations
--bazelrc=<path> 累积多次使用
包含 Bazel 选项默认值的用户 .bazelrc 文件的位置。/dev/null 表示将忽略所有后续的 `--bazelrc`,这对于在发布 build 中停用用户 rc 文件的搜索非常有用。 此选项也可以多次指定。 例如,使用 `--bazelrc=x.rc --bazelrc=y.rc --bazelrc=/dev/null --bazelrc=z.rc` 时, 1) 系统会读取 x.rc 和 y.rc。 2) 由于之前的 /dev/null,z.rc 被忽略。 如果未指定,Bazel 会使用在以下两个位置找到的第一个 .bazelrc 文件:工作区目录,然后是用户的主目录。 注意:命令行选项始终会取代 bazelrc 中的任何选项。
标签: changes_inputs
--[no]block_for_lock 默认值:“true”
如果传递了 --noblock_for_lock,Bazel 不会等待正在运行的命令完成,而是立即退出。
标签: eagerness_to_exit
--[no]client_debug 默认值:“false”
如果为 true,则将客户端的调试信息记录到 stderr。更改此选项不会导致服务器重启。
标记: affects_outputsbazel_monitoring
--connect_timeout_secs=<an integer> 默认值:“30”
客户端每次尝试连接到服务器时等待的时间量
标记: bazel_internal_configuration
--digest_function=<hash function> 默认值:请参阅说明
计算文件摘要时要使用的哈希函数。
标记: loses_incremental_statebazel_internal_configuration
--experimental_cgroup_parent=<path> 默认值:请参阅说明
要启动 bazel 服务器的 cgroup(以绝对路径表示)。对于每个受支持的控制器,服务器进程将在指定的 cgroup 中启动。例如,如果此标志的值为 /build/bazel,并且 CPU 和内存控制器分别挂载在 /sys/fs/cgroup/cpu 和 /sys/fs/cgroup/memory 上,则服务器将在 cgroup /sys/fs/cgroup/cpu/build/bazel 和 /sys/fs/cgroup/memory/build/bazel 中启动。如果指定的 cgroup 对于一个或多个控制器不可写入,则不会出现错误。此选项对不支持 cgroup 的平台没有任何影响。
标记: bazel_monitoringexecution
--[no]experimental_run_in_user_cgroup 默认值:“false”
如果为 true,Bazel 服务器将通过 systemd-run 运行,并且用户将拥有 cgroup。此标志仅在 Linux 上生效。
标记: bazel_monitoringexecution
--failure_detail_out=<path> 默认值:请参阅说明
如果设置,则指定在服务器遇到故障且无法像往常一样通过 gRPC 报告故障时,写入 failure_detail protobuf 消息的位置。否则,位置将为 ${OUTPUT_BASE}/failure_detail.rawproto。
标记: affects_outputsloses_incremental_state
--[no]home_rc 默认值:“true”
是否在 $HOME/.bazelrc 中查找主 bazelrc 文件
标记: changes_inputs
--[no]idle_server_tasks 默认值:“true”
在服务器空闲时运行 System.gc()
标记: loses_incremental_statehost_machine_resource_optimizations
--[no]ignore_all_rc_files 默认值:“false”
停用所有 rc 文件,无论其他 rc 修改标志的值如何,即使这些标志在启动选项列表中位于后面也是如此。
标签: changes_inputs
--io_nice_level={-1,0,1,2,3,4,5,6,7} 默认值:“-1”
仅限 Linux;使用 sys_ioprio_set 系统调用设置 0-7 级,以尽力进行 IO 调度。0 为最高优先级,7 为最低优先级。预期调度程序可能只接受优先级最高为 4 的任务。如果设置为负值,则 Bazel 不会执行系统调用。
标签: host_machine_resource_optimizations
--local_startup_timeout_secs=<an integer> 默认值:“120”
客户端等待连接到服务器的最长时间
标记: bazel_internal_configuration
--macos_qos_class=<a string> 默认值:“default”
在 macOS 上运行时,设置 bazel 服务器的 QoS 服务类。此标志对所有其他平台均无影响,但支持此标志可确保 rc 文件可以在这些平台之间共享,而无需进行更改。可能的值包括:user-interactive、user-initiated、default、utility 和 background。
标签: host_machine_resource_optimizations
--max_idle_secs=<integer> 默认值:“10800”
构建服务器在关闭前等待空闲的秒数。零表示服务器永远不会关闭。此选项仅在服务器启动时读取,更改此选项不会导致服务器重启。
标记: eagerness_to_exitloses_incremental_state
--output_base=<path> 默认值:请参阅说明
如果设置,则指定所有 build 输出将写入到的输出位置。否则,位置将为 ${OUTPUT_ROOT}/_blaze_${USER}/${MD5_OF_WORKSPACE_ROOT}。注意:如果您在一次 Bazel 调用中为此值指定了不同于上一次 Bazel 调用的选项,则可能会启动一个新的额外 Bazel 服务器。对于每个指定的输出库,Bazel 都会启动一个服务器。通常,每个工作区只有一个输出库,但使用此选项,每个工作区可以有多个输出库,从而可以在同一台机器上同时为同一客户端运行多个 build。如需了解如何关闭 Bazel 服务器,请参阅“bazel help shutdown”。
标记: affects_outputsloses_incremental_state
--output_user_root=<path> 默认值:请参阅说明
所有 build 输出所写入的用户专用目录;默认情况下,这是 $USER 的函数,但通过指定常量,可以在协作用户之间共享 build 输出。
标记: affects_outputsloses_incremental_state
--[no]preemptible 默认值:“false”
如果为 true,则当启动另一个命令时,可以抢占该命令。
标签: eagerness_to_exit
--[no]quiet 默认值:“false”
如果为 true,则不会在控制台上发出任何信息性消息,只会发出错误消息。更改此选项不会导致服务器重启。
标记: affects_outputsbazel_monitoring
--server_jvm_out=<path> 默认值:请参阅说明
用于写入服务器 JVM 输出的位置。如果未设置,则默认设为 output_base 中的某个位置。
标记: affects_outputsloses_incremental_state
--[no]shutdown_on_low_sys_mem 默认值:“false”
如果设置了 max_idle_secs,并且 build 服务器已空闲一段时间,则当系统空闲 RAM 不足时,关闭服务器。仅限 Linux。
标记: eagerness_to_exitloses_incremental_state
--[no]system_rc 默认值:“true”
是否查找系统范围的 bazelrc。
标签: changes_inputs
--[no]unlimit_coredumps 默认值:“false”
将软崩溃转储限制提高到硬限制,以便在常见条件下生成服务器(包括 JVM)和客户端的崩溃转储。在 bazelrc 中添加此标志后,您就可以忘记它了,这样当您实际遇到触发核心转储的条件时,系统就会生成核心转储。
标签: bazel_internal_configuration
--[no]watchfs 默认值:“false”
如果为 true,则 Bazel 会尝试使用操作系统的文件监控服务来监控本地更改,而不是扫描每个文件来查找更改。
标签: deprecated
如果为 true,则会在 Windows 上创建真实的符号链接,而不是复制文件。需要启用 Windows 开发者模式,并使用 Windows 10 版本 1703 或更高版本。
标签: bazel_internal_configuration
--[no]workspace_rc 默认值:“true”
是否在 $workspace/.bazelrc 中查找工作区 bazelrc 文件
标记: changes_inputs
其他未分类的选项:
--host_jvm_args=<jvm_arg> 累积多次使用
要传递给执行 Blaze 的 JVM 的标志。
--host_jvm_debug
用于添加一些额外的 JVM 启动标志的便捷选项,这些标志会导致 JVM 在启动期间等待,直到您从符合 JDWP 标准的调试程序(如 Eclipse)连接到端口 5005。
展开后:
  --host_jvm_args=-Xdebug
  --host_jvm_args=-Xrunjdwp:transport=dt_socket,server=y,address=5005
--server_javabase=<jvm path> 默认值:""
用于执行 Bazel 本身的 JVM 的路径。

所有命令通用的选项

显示在命令之前且由客户端解析的选项:
--distdir=<a path> 累积多次使用
在访问网络下载归档之前,可搜索归档的其他位置。
标签: bazel_internal_configuration
如果设置了此标志,则在命中缓存时,代码库缓存将对文件进行硬链接,而不是复制。此功能旨在节省磁盘空间。
标签: bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 默认值:“5”
重试下载错误的尝试次数上限。如果设置为 0,则停用重试。
标签: experimental
--experimental_scale_timeouts=<a double> 默认值:“1.0”
按此系数缩放 Starlark 代码库规则中的所有超时。这样一来,即使机器速度比规则作者预期的慢,外部代码库也能正常运行,而无需更改源代码
标签: bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 默认值:“8”
HTTP 下载的最大尝试次数。
标签: bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 默认值:“0s”
HTTP 下载重试的最长超时时间。如果值为 0,则表示未定义超时最大时长。
标签: bazel_internal_configuration
--http_max_parallel_downloads=<an integer> 默认值:“8”
并行 HTTP 下载的最大数量。
标签: bazel_internal_configuration
--http_timeout_scaling=<a double> 默认值:“1.0”
按给定系数缩放与 HTTP 下载相关的所有超时
标记: bazel_internal_configuration
--[no]incompatible_disable_native_repo_rules 默认值:“false”
如果为 false,则可以在 WORKSPACE 中使用原生代码库规则;否则,必须改用 Starlark 代码库规则。原生代码库规则包括 local_repository、new_local_repository 和 local_config_platform。设置此标志后,Bzlmod 中也无法使用 local_config_platform 内置模块;请改用 `@platforms//host`。
标签: bazel_internal_configuration
--repo_contents_cache=<a path> 默认值:请参阅说明
指定代码库内容缓存的位置,其中包含可在工作区之间共享的已提取代码库目录。如果实参为空字符串,则请求停用 repo 内容缓存;否则,系统会使用默认值 '<--repository_cache>/contents'。请注意,这意味着设置“--repository_cache=”默认也会停用代码库内容缓存,除非还设置了“--repo_contents_cache=<some_path>”。
标签: bazel_internal_configuration
--repo_contents_cache_gc_idle_delay=<An immutable length of time.> 默认值:“5m”
指定服务器在对代码库内容缓存进行垃圾回收之前必须保持空闲状态的时长。
标签: bazel_internal_configuration
--repo_contents_cache_gc_max_age=<An immutable length of time.> 默认值:“14d”
指定 repo 内容缓存中的条目在被垃圾回收之前可以保持未使用的时长。如果设置为零,则垃圾回收功能会被停用。
标签: 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
控制 build 执行的选项:
--experimental_ui_max_stdouterr_bytes=<an integer in (-1)-1073741819 range> 默认值:“1048576”
将输出到控制台的 stdout / stderr 文件的大小上限。-1 表示无限制。
标签: execution
--gc_thrashing_threshold=<an integer in 0-100 range> 默认值:“100”
当已占用的旧内存空间百分比(0-100)高于此值时,GcThrashingDetector 会根据其限制 (--gc_thrashing_limits) 考虑内存压力事件。如果设置为 100,则停用 GcThrashingDetector。
标记: host_machine_resource_optimizations
用于配置执行操作所用工具链的选项:
--[no]incompatible_enable_proto_toolchain_resolution 默认值:“false”
如果为 true,proto 语言规则会从 protobuf 代码库定义工具链。
标记:loading_and_analysisincompatible_change
允许用户配置预期输出(会影响输出的值,而不是输出的存在与否)的选项:
--bep_maximum_open_remote_upload_files=<an integer> 默认值:“-1”
在 BEP 制品上传期间允许的最大打开文件数。
标签: affects_outputs
--remote_download_all
将所有远程输出下载到本地机器。此标志是 --remote_download_outputs=all 的别名。
展开后:
  --remote_download_outputs=all

标记: affects_outputs
--remote_download_minimal
不会将任何远程构建输出下载到本地机器。此标志是 --remote_download_outputs=minimal 的别名。
展开后:
  --remote_download_outputs=minimal

标记: affects_outputs
--remote_download_outputs=<all, minimal or toplevel> 默认值:“toplevel”
如果设置为“minimal”,则不会将任何远程构建输出下载到本地机器,本地操作所需的输出除外。如果设置为“toplevel”,则行为与“minimal”类似,但它还会将顶级目标的输出下载到本地机器。如果网络带宽是瓶颈,这两种选项都可以显著缩短构建时间。
标签: affects_outputs
创建符号链接,而不是将远程构建输出下载到本地机器。符号链接的目标可以模板字符串的形式指定。此模板字符串可能包含 {hash} 和 {size_bytes},它们分别会扩展为对象的哈希和大小(以字节为单位)。例如,这些符号链接可能指向一个 FUSE 文件系统,该文件系统会根据需要从 CAS 加载对象。
标签: affects_outputs
--remote_download_toplevel
仅将顶级目标的远程输出下载到本地机器。此标志是 --remote_download_outputs=toplevel 的别名。
展开后:
  --remote_download_outputs=toplevel

标记: affects_outputs
--repo_env=<a 'name=value' assignment with an optional value part> 累积多次使用
指定仅适用于代码库规则的其他环境变量。请注意,代码库规则无论如何都会看到完整的环境,但通过这种方式,配置信息可以通过选项传递给代码库,而不会使操作图失效。
标记: action_command_lines
影响 Bazel 严格执行有效 build 输入(规则定义、标志组合等)的选项:
--[no]check_bzl_visibility 默认值:“true”
如果停用,.bzl 加载可见性错误将降级为警告。
标签: build_file_semantics
--[no]incompatible_enforce_starlark_utf8 默认值:“warning”
如果启用(或设置为“error”),则当 Starlark 文件不是 UTF-8 编码时,会失败。如果设置为“warning”,则改为发出警告。如果设置为“off”,Bazel 会假定 Starlark 文件采用 UTF-8 编码,但不会验证此假定。请注意,如果 Starlark 文件未采用 UTF-8 编码,可能会导致 Bazel 行为不一致。
标志: loading_and_analysisincompatible_change
此选项会影响 Starlark 语言或可供 BUILD 文件、.bzl 文件或 WORKSPACE 文件访问的 build API 的语义:
--[no]enable_bzlmod 默认值:“true”
如果为 true,则启用 Bzlmod 依赖项管理系统,优先于 WORKSPACE。如需了解详情,请参阅 https://bazel.build/docs/bzlmod。
标签: loading_and_analysis
--[no]enable_workspace 默认值:“false”
如果为 true,则为外部依赖项启用旧版 WORKSPACE 系统。如需了解详情,请参阅 https://bazel.build/external/overview。
标签: loading_and_analysis
--[no]experimental_bzl_visibility 默认值:“true”
如果启用,则添加一个 `visibility()` 函数,.bzl 文件可以在顶级评估期间调用该函数来设置其针对 load() 语句的可见性。
标记: loading_and_analysisexperimental
--[no]experimental_cc_shared_library 默认值:“false”
如果设置为 true,则可使用规则 cc_shared_library 所需的规则属性和 Starlark API 方法
标记: build_file_semanticsloading_and_analysisexperimental
--[no]experimental_cc_static_library 默认值:“false”
如果设置为 true,则可使用规则 cc_static_library 所需的规则属性和 Starlark API 方法
标记: build_file_semanticsloading_and_analysisexperimental
--[no]experimental_disable_external_package 默认值:“false”
如果设置为 true,则自动生成的 //external 软件包将不再可用。Bazel 仍将无法解析文件“external/BUILD”,但从无名软件包到达 external/ 的 glob 将正常运行。
标记: loading_and_analysisloses_incremental_stateexperimental
--[no]experimental_dormant_deps 默认值:“false”
如果设置为 true,则允许使用 attr.label(materializer=)、attr(for_dependency_resolution=)、attr.dormant_label()、attr.dormant_label_list() 和 rule(for_dependency_resolution=)。
标记: build_file_semanticsexperimental
--[no]experimental_enable_android_migration_apis 默认值:“false”
如果设置为 true,则启用支持 Android Starlark 迁移所需的 API。
标签: build_file_semantics
--[no]experimental_enable_first_class_macros 默认值:“true”
如果设置为 true,则启用用于定义符号宏的 `macro()` 构造。
标签: build_file_semantics
--[no]experimental_enable_scl_dialect 默认值:“true”
如果设置为 true,则可以在 load() 语句中使用 .scl 文件。
标签: build_file_semantics
--[no]experimental_enable_starlark_set 默认值:“true”
如果为 true,则在 Starlark 中启用 set 数据类型和 set() 构造函数。
标记: build_file_semanticsexperimental
--[no]experimental_google_legacy_api 默认值:“false”
如果设置为 true,则会公开与 Google 旧版代码相关的一些实验性 Starlark build API。
标记: loading_and_analysisexperimental
--[no]experimental_isolated_extension_usages 默认值:“false”
如果为 true,则启用 <a href="https://bazel.build/rules/lib/globals/module#use_extension"><code>use_extension</code></a> 函数中的<code>isolate</code> 参数。
标签: loading_and_analysis
--[no]experimental_java_library_export 默认值:“false”
如果启用,则可以使用 experimental_java_library_export_do_not_use 模块。
标记: loading_and_analysisincompatible_change
--[no]experimental_platforms_api 默认值:“false”
如果设置为 true,则启用许多与平台相关的 Starlark API,这些 API 对于调试很有用。
标记: loading_and_analysisexperimental
--[no]experimental_repo_remote_exec 默认值:“false”
如果设置为 true,repository_rule 将获得一些远程执行功能。
标记: build_file_semanticsloading_and_analysisexperimental
--[no]experimental_repository_ctx_execute_wasm 默认值:“false”
如果为 true,则启用 repository_ctx 的 `load_wasm` 和 `execute_wasm` 方法。
标记: loading_and_analysisexperimental
--[no]experimental_sibling_repository_layout 默认值:“false”
如果设置为 true,则非主代码库将作为符号链接植入到执行根目录中的主代码库。也就是说,所有代码库都是 $output_base/execution_root 目录的直接子级。这会释放 $output_base/execution_root/__main__/external,以用于真正的顶级“外部”目录。
标记:action_command_linesbazel_internal_configurationloading_and_analysisloses_incremental_stateexperimental
--[no]experimental_single_package_toolchain_binding 默认值:“false”
如果启用,register_toolchain 函数可能不包含可能引用多个软件包的目标模式。
标记: loading_and_analysisincompatible_change
--[no]incompatible_allow_tags_propagation 默认值:“true”
如果设置为 true,则标记将从目标传播到操作的执行要求;否则,标记不会传播。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/8830。
标记: build_file_semanticsexperimental
--[no]incompatible_always_check_depset_elements 默认值:“true”
检查添加到 depsets 中的元素在所有构造函数中的有效性。元素必须是不可变的,但从历史上看,depset(direct=...) 构造函数忘记了检查这一点。在 depset 元素中使用元组,而不是列表。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/10313。
标记: build_file_semanticsincompatible_change
--incompatible_autoload_externally=<comma-separated set of options> 默认值:"+@rules_python,+java_common,+JavaInfo,+JavaPluginInfo,ProguardSpecProvider,java_binary,java_import,java_library,java_plugin,java_test,java_runtime,java_toolchain,java_package_configuration,@com_google_protobuf,@rules_shell,+@rules_android"
之前属于 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_statebuild_file_semanticsincompatible_change
如果为 true,Bazel 不再从 linking_context.libraries_to_link 返回列表,而是返回 depset。
标记: loading_and_analysisincompatible_change
--[no]incompatible_disable_autoloads_in_main_repo 默认值:“false”
控制是否在主代码库中启用自动加载(由 --incompatible_autoload_externally 设置)。启用后,之前属于 Bazel 的规则(或其他符号)需要具有 load 语句。使用 buildifier 添加它们。
标记: loading_and_analysisincompatible_change
--[no]incompatible_disable_objc_library_transition 默认值:“true”
停用 objc_library 的自定义过渡,并从顶级目标继承(在 Bazel 中为无操作)
标记: build_file_semanticsincompatible_change
--[no]incompatible_disable_starlark_host_transitions 默认值:“false”
如果设置为 true,规则属性无法设置“cfg = "host"”。规则应改为设置“cfg = "exec"”。
标记: loading_and_analysisincompatible_change
--[no]incompatible_disable_target_default_provider_fields 默认值:“false”
如果设置为 true,则禁止通过字段语法访问“目标”对象上的提供程序。请改用提供方密钥语法。例如,不要使用 `ctx.attr.dep.my_info` 从规则实现函数内部访问 `my_info`,而应使用 `ctx.attr.dep[MyInfo]`。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/9014。
标记: build_file_semanticsincompatible_change
--[no]incompatible_disable_target_provider_fields 默认值:“false”
如果设置为 true,则禁止通过字段语法使用默认提供程序。请改用提供方密钥语法。例如,不要使用 `ctx.attr.dep.files` 访问 `files`,而是使用 `ctx.attr.dep[DefaultInfo].files`。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/9014。
标记: build_file_semanticsincompatible_change
--[no]incompatible_disallow_ctx_resolve_tools 默认值:“true”
如果设置为 true,则调用已弃用的 ctx.resolve_tools API 始终会失败。此 API 的使用应替换为 ctx.actions.run 或 ctx.actions.run_shell 的可执行文件或工具实参。
标记: loading_and_analysisincompatible_change
--[no]incompatible_disallow_empty_glob 默认值:“true”
如果设置为 true,则 glob() 的 `allow_empty` 实参的默认值为 False。
标记: build_file_semanticsincompatible_change
--[no]incompatible_disallow_struct_provider_syntax 默认值:“true”
如果设置为 true,规则实现函数可能不会返回结构。它们必须改为返回提供程序实例的列表。
标记: build_file_semanticsincompatible_change
--[no]incompatible_enable_deprecated_label_apis 默认值:“true”
如果启用,则可以使用某些已弃用的 API(native.repository_name、Label.workspace_name、Label.relative)。
标签: loading_and_analysis
--[no]incompatible_fail_on_unknown_attributes 默认值:“true”
如果启用,则将未知属性设置为 None 的目标会失败。
标记: loading_and_analysisincompatible_change
--[no]incompatible_fix_package_group_reporoot_syntax 默认值:“true”
在 package_group 的 `packages` 属性中,将值“//...”的含义更改为指代当前代码库中的所有软件包,而不是任何代码库中的所有软件包。您可以使用特殊值“public”代替“//...”来获得旧版行为。此标志要求同时启用 --incompatible_package_group_has_public_syntax。
标记: build_file_semanticsincompatible_change
--[no]incompatible_java_common_parameters 默认值:“true”
如果设置为 true,则会移除 pack_sources 中的 output_jar 和 host_javabase 参数,以及编译中的 host_javabase 参数。
标记: build_file_semanticsincompatible_change
--[no]incompatible_locations_prefers_executable 默认值:“true”
如果提供可执行文件的目标展开为可执行文件,而不是 $(locations ...) 展开下 <code>DefaultInfo.files</code> 中的文件,则文件数量不为 1。
标记: loading_and_analysisincompatible_change
--[no]incompatible_merge_fixed_and_default_shell_env 默认值:“true”
如果启用,则使用 ctx.actions.run 和 ctx.actions.run_shell 注册的操作(同时指定了“env”和“use_default_shell_env = True”)将使用通过“env”中传入的值覆盖默认 shell 环境而获得的环境。如果停用,系统会完全忽略此情况下的“env”值。
标记: loading_and_analysisincompatible_change
--[no]incompatible_no_attr_license 默认值:“true”
如果设置为 true,则会停用函数 `attr.license`。
标记: build_file_semanticsincompatible_change
--[no]incompatible_no_implicit_file_export 默认值:“false”
如果设置,(使用的)源文件是软件包私有的,除非显式导出。请参阅 https://github.com/bazelbuild/proposals/blob/master/designs/2019-10-24-file-visibility.md
标记: build_file_semanticsincompatible_change
--[no]incompatible_no_implicit_watch_label 默认值:“true”
如果为 true,则传递了 Label 的 <code>repository_ctx</code> 中的方法将不再自动监视相应 Label 下的文件是否发生更改,即使 <code>watch = "no"</code> 也是如此,并且 <code>repository_ctx.path</code> 不再导致返回的路径被监视。请改用 <code>repository_ctx.watch</code>。
标记: loading_and_analysisincompatible_change
--[no]incompatible_no_rule_outputs_param 默认值:“false”
如果设置为 true,则会停用 `rule()` Starlark 函数的 `outputs` 参数。
标记: build_file_semanticsincompatible_change
--[no]incompatible_package_group_has_public_syntax 默认值:“true”
在 package_group 的“packages”属性中,允许写入“public”或“private”来分别指代所有软件包或没有软件包。
标记: build_file_semanticsincompatible_change
--[no]incompatible_require_linker_input_cc_api 默认值:“true”
如果设置为 true,规则 create_linking_context 将需要 linker_inputs 而不是 libraries_to_link。linking_context 的旧 getter 也将被停用,只有 linker_inputs 可用。
标记: build_file_semanticsloading_and_analysisincompatible_change
--[no]incompatible_run_shell_command_string 默认值:“true”
如果设置为 true,则 actions.run_shell 的命令参数将仅接受字符串
标记: build_file_semanticsincompatible_change
--[no]incompatible_simplify_unconditional_selects_in_rule_attrs 默认值:“true”
如果为 true,则简化仅包含无条件选择的可配置规则属性;例如,如果将 ["a"] + select("//conditions:default", ["b"]) 分配给某个规则属性,则该属性会存储为 ["a", "b"]。此选项不会影响符号宏的属性或属性默认值。
标记: build_file_semanticsincompatible_change
--[no]incompatible_stop_exporting_build_file_path 默认值:“false”
如果设置为 true,则已弃用的 ctx.build_file_path 将不可用。您可以改用 ctx.label.package + '/BUILD'。
标记: loading_and_analysisincompatible_change
--[no]incompatible_stop_exporting_language_modules 默认值:“false”
如果启用,用户 .bzl 文件中将无法使用某些特定于语言的模块(例如 `cc_common`),并且只能从其各自的规则代码库中调用这些模块。
标记: loading_and_analysisincompatible_change
--[no]incompatible_top_level_aspects_require_providers 默认值:“true”
如果设置为 true,则顶级方面将遵守其必需的提供程序,并且仅在规则的已公布提供程序满足该方面必需的提供程序的顶级目标上运行。
标记: loading_and_analysisincompatible_change
--[no]incompatible_unambiguous_label_stringification 默认值:“true”
如果为 true,Bazel 会将标签 @//foo:bar 字符串化为 @//foo:bar,而不是 //foo:bar。这只会影响 str()、% 运算符等的行为;repr() 的行为保持不变。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/15916。
标记: loading_and_analysisincompatible_change
--[no]incompatible_use_cc_configure_from_rules_cc 默认值:“false”
如果为 true,Bazel 将不再允许使用来自 @bazel_tools 的 cc_configure。如需了解详情和迁移说明,请访问 https://github.com/bazelbuild/bazel/issues/10134。
标记: loading_and_analysisincompatible_change
--max_computation_steps=<a long integer> 默认值:“0”
BUILD 文件可执行的 Starlark 计算步骤数上限(零表示没有限制)。
标签: build_file_semantics
--nested_set_depth_limit=<an integer> 默认值:“3500”
depset 内部图(也称为 NestedSet)的最大深度,超过此深度时,depset() 构造函数将失败。
标签: loading_and_analysis
--repositories_without_autoloads=<comma-separated set of options> 默认值:""
一个附加代码库(超出 Bazel 已知的硬编码代码库)的列表,其中不应添加自动加载。这通常应包含可自动加载的代码库(因此可能会创建循环)以传递方式依赖的代码库。
标记: loses_incremental_statebuild_file_semanticsincompatible_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”
指定如何使用锁定文件以及是否使用锁定文件。有效值为:`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 因内存不足而使 Bazel 崩溃。每个限制都指定为 <period>:<count>,其中 period 是时长,count 是正整数。如果在 <period> 内连续执行 <count> 次完整 GC 后,成熟空间(旧代堆)的占用率仍超过 --gc_thrashing_threshold 百分比,则会触发 OOM。您可以指定多个限额,以英文逗号分隔。
标签: host_machine_resource_optimizations
--[no]heuristically_drop_nodes 默认值:“false”
如果为 true,Blaze 将在相关 File 和 DirectoryListing 节点完成后移除 FileState 和 DirectoryListingState 节点,以节省内存。我们预计,这些节点不太可能再次需要。如果存在,该计划将重新评估这些学生。
标签: loses_incremental_state
--[no]incompatible_do_not_split_linking_cmdline 默认值:“true”
如果为 true,Bazel 将不再修改用于链接的命令行标志,也不会有选择性地决定哪些标志进入参数文件,哪些标志不进入参数文件。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7670。
标记: loading_and_analysisincompatible_change
--[no]keep_state_after_build 默认值:“true”
如果为 false,Blaze 将在 build 完成时舍弃此 build 的内存中状态。后续 build 与此 build 相比不会有任何增量。
标签: loses_incremental_state
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 默认值:“10”
用于对 Bazel 的内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留堆百分比使用量超过了由 --skyframe_high_water_mark_threshold 设置的阈值,那么在发生完整 GC 事件时,它将丢弃不必要的临时 Skyframe 状态,每次调用最多丢弃这么多次。默认值为 10。值为 0 表示完整 GC 事件永远不会触发丢弃。如果达到该限制,当发生完整 GC 事件且超出保留堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标签: host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 默认值:“10”
用于对 Bazel 的内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留堆百分比使用量超过了由 --skyframe_high_water_mark_threshold 设置的阈值,那么在发生次要 GC 事件时,它将丢弃不必要的临时 Skyframe 状态,每次调用最多丢弃这么多次。默认值为 10。值为 0 表示次要 GC 事件永远不会触发丢帧。如果达到此限制,当发生次要 GC 事件并超出保留堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标签: host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 默认值:“85”
用于对 Bazel 的内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留堆百分比使用率至少达到此阈值,它将丢弃不必要的临时 Skyframe 状态。调整此设置可能有助于缓解因垃圾回收抖动而造成的实际运行时间影响,前提是垃圾回收抖动 (i) 由此临时状态的内存使用情况引起,并且 (ii) 比在需要时重新构建状态的成本更高。
标签: host_machine_resource_optimizations
--[no]track_incremental_state 默认值:“true”
如果为 false,Blaze 将不会保留允许在增量 build 上进行失效和重新评估的数据,以便在此 build 上节省内存。后续 build 与此 build 相比不会有任何增量。通常,您需要在将此标志设置为 false 时指定 --batch。
标记: loses_incremental_state
影响日志记录详细程度、格式或位置的选项:
--[no]announce_rc 默认值:“false”
是否公布 rc 选项。
标签: affects_outputs
--[no]attempt_to_print_relative_paths 默认值:“false”
打印消息的位置部分时,尝试使用相对于工作区目录或由 --package_path 指定的目录之一的路径。
标签: terminal_output
--bes_backend=<a string> 默认值:""
以 [SCHEME://]HOST[:PORT] 格式指定 build 事件服务 (BES) 后端端点。默认设置为停用 BES 上传。支持的方案为 grpc 和 grpcs(启用 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> 累积多次使用
以 NAME=VALUE 形式指定将包含在 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”
指定在发生内存不足 (OOM) 时,Bazel 应等待 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> 默认值:请参阅说明
通过代理连接到 Build Event Service。目前,此标志只能用于配置 Unix 网域套接字 (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 服务运营商。使用此标志的 build 服务运营商应防止用户替换标志值。
标签: affects_outputs
--bes_timeout=<An immutable length of time.> 默认值:“0s”
指定在构建和测试完成后,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”
指定 build 事件服务上传是否应阻止 build 完成,或者是否应立即结束调用并在后台完成上传。可以是“wait_for_upload_complete”(默认)、“nowait_for_upload_complete”或“fully_async”。
标签: eagerness_to_exit
--build_event_binary_file=<a string> 默认值:""
如果非空,则将 build 事件协议的 varint 分隔二进制表示形式写入该文件。此选项意味着 --bes_upload_mode=wait_for_upload_complete。
标签: affects_outputs
--[no]build_event_binary_file_path_conversion 默认值:“true”
尽可能将 build 事件协议的二进制文件表示形式中的路径转换为更具全局有效性的 URI;如果停用,则始终使用 file:// URI 方案
标记: affects_outputs
--build_event_binary_file_upload_mode=<wait_for_upload_complete, nowait_for_upload_complete or fully_async> 默认值:“wait_for_upload_complete”
指定 --build_event_binary_file 的 build 事件服务上传是否应阻止 build 完成,或者是否应立即结束调用并在后台完成上传。可以是“wait_for_upload_complete”(默认)、“nowait_for_upload_complete”或“fully_async”。
标签: eagerness_to_exit
--build_event_json_file=<a string> 默认值:""
如果不为空,则将 build 事件协议的 JSON 序列化写入该文件。此选项意味着 --bes_upload_mode=wait_for_upload_complete。
标签: affects_outputs
--[no]build_event_json_file_path_conversion 默认值:“true”
尽可能将 build 事件协议的 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 事件服务上传是否应阻止 build 完成,或者是否应立即结束调用并在后台完成上传。可以是“wait_for_upload_complete”(默认)、“nowait_for_upload_complete”或“fully_async”。
标签: eagerness_to_exit
--build_event_max_named_set_of_file_entries=<an integer> 默认值:“5000”
单个 named_set_of_files 事件的最大条目数;小于 2 的值会被忽略,并且不会执行任何事件拆分。此标志旨在限制 build 事件协议中的最大事件大小,但它不会直接控制事件大小。事件总大小是集合结构以及文件和 URI 长度的函数,而文件和 URI 长度可能又取决于哈希函数。
标签: affects_outputs
--[no]build_event_publish_all_actions 默认值:“false”
是否应发布所有操作。
标签: affects_outputs
--build_event_text_file=<a string> 默认值:""
如果不为空,则将 build 事件协议的文本表示形式写入该文件
标记: affects_outputs
--[no]build_event_text_file_path_conversion 默认值:“true”
尽可能将 build 事件协议的文本文件表示形式中的路径转换为更具全局有效性的 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 的 build 事件服务上传是否应阻止 build 完成,或者是否应立即结束调用并在后台完成上传。可以是“wait_for_upload_complete”(默认)、“nowait_for_upload_complete”或“fully_async”。
标签: eagerness_to_exit
--build_event_upload_max_retries=<an integer> 默认值:“4”
Bazel 应重试上传 build 事件的最大次数。
标签: bazel_internal_configuration
--[no]experimental_bep_target_summary 默认值:“false”
是否发布 TargetSummary 事件。
--[no]experimental_build_event_expand_filesets 默认值:“false”
如果为 true,则在呈现输出文件时,展开 BEP 中的 Fileset。
标签: affects_outputs
如果为 true,则在呈现输出文件时,完全解析 BEP 中的相对 Fileset 符号链接。需要 --experimental_build_event_expand_filesets。
标签: affects_outputs
--experimental_build_event_output_group_mode=<an output group name followed by an OutputGroupFileMode, e.g. default=both> 累积多次使用
指定输出组的文件在 TargetComplete/AspectComplete BEP 事件中的表示方式。值是将输出组名称分配给“NAMED_SET_OF_FILES_ONLY”“INLINE_ONLY”或“BOTH”中的一个。默认值为“NAMED_SET_OF_FILES_ONLY”。如果输出组重复出现,则使用最后显示的值。默认值将覆盖工件的模式设置为 BOTH:--experimental_build_event_output_group_mode=baseline.lcov=both
标记: affects_outputs
--experimental_build_event_upload_retry_minimum_delay=<An immutable length of time.> 默认值:“1s”
BEP 上传失败时,指数退避重试的初始最短延迟时间。(指数:1.6)
标记: bazel_internal_configuration
--experimental_build_event_upload_strategy=<a string> 默认值:请参阅说明
选择如何上传 build 事件协议中引用的制品。
标签: 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_skyframe_counts_in_profiler 默认值:“false”
如果启用,分析器会收集 Skyframe 图中关键函数类型(例如配置的目标和操作执行)的 SkyFunction 计数。可能会影响性能,因为此工具会在每个分析时间单位访问整个 Skyframe 图。请勿将此标志与性能关键测量值搭配使用。
标签: bazel_monitoring
--[no]experimental_collect_system_network_usage 默认值:“true”
如果已启用,分析器会收集系统的网络使用情况。
标签: bazel_monitoring
--[no]experimental_collect_worker_data_in_profiler 默认值:“false”
如果已启用,分析器会收集工作线程的汇总资源数据。
标签: bazel_monitoring
--experimental_command_profile=<cpu, wall, alloc or lock> 默认值:请参阅说明
记录命令执行期间的 Java Flight Recorder 配置文件。必须将受支持的分析事件类型(cpu、wall、alloc 或 lock)之一作为实参提供。配置文件会写入输出基本目录中以事件类型命名的文件。此标志的语法和语义将来可能会发生变化,以支持其他配置文件类型或输出格式;请自行承担使用风险。
--experimental_profile_additional_tasks=<phase, action, discover_inputs, action_check, action_lock, action_update, action_complete, action_rewinding, 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, local_action_counts, 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, conflict_check, dynamic_lock, repository_fetch, repository_vendor, repo_cache_gc_wait, spawn_log, wasm_load, wasm_exec or unknown> 累积多次使用
指定要包含在配置文件中的其他配置文件任务。
标签: bazel_monitoring
--[no]experimental_profile_include_primary_output 默认值:“false”
在操作事件中包含额外的“out”属性,其中包含操作的主要输出的执行路径。
标签: bazel_monitoring
--[no]experimental_profile_include_target_configuration 默认值:“false”
在操作事件的 JSON 个人资料数据中包含目标配置哈希值。
标签: bazel_monitoring
--[no]experimental_profile_include_target_label 默认值:“false”
在操作事件的 JSON 配置文件数据中包含目标标签。
标签: bazel_monitoring
--[no]experimental_record_metrics_for_all_mnemonics 默认值:“false”
控制 BEP ActionSummary 和 BuildGraphMetrics 的输出,限制 ActionData 中的助记符数量以及 BuildGraphMetrics.AspectCount/RuleClassCount 中报告的条目数量。默认情况下,类型数量限制为前 20 个(按 ActionData 的执行操作数,以及 RuleClass 和 Asepcts 的实例数)。设置此选项将写入所有助记符、规则类和方面的统计信息。
--[no]experimental_record_skyframe_metrics 默认值:“false”
控制 BEP BuildGraphMetrics 的输出,包括有关 Skykeys、RuleClasses 和 Aspect 的计算成本高昂的 Skyframe 指标。如果此标志设置为 false,则 BuildGraphMetrics.rule_count 和 aspectfields 将不会填充到 BEP 中。
--[no]experimental_run_bep_event_include_residue 默认值:“false”
是否在可能包含命令行残留的运行 build 事件中包含命令行残留。默认情况下,残余不会包含在可能包含残余的运行命令 build 事件中。
标签: 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 默认值:“自动”
如果启用,Bazel 会对 build 进行分析,并将 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
--jvm_heap_histogram_internal_object_pattern=<a valid Java regular expression> 默认值:“jdk\.internal\.vm\.Filler.+”
用于替换 JDK21 及更高版本 JVM 堆内存收集的匹配逻辑的正则表达式。我们依赖于不稳定的内部 G1 GC 实现细节来获取干净的内存指标,此选项允许我们适应该内部实现中的更改,而无需等待二进制版本发布。传递给 JDK Matcher.find() 的参数
--[no]legacy_important_outputs 默认值:“false”
使用此标志可禁止在 TargetComplete 事件中生成旧版 important_outputs 字段。Bazel 到 ResultStore/BTX 集成需要 important_outputs。
标签: affects_outputs
--logging=<0 <= an integer <= 6> 默认值:“3”
日志记录级别。
标签: affects_outputs
--memory_profile=<a path> 默认值:请参阅说明
如果已设置,则在阶段结束时将内存使用情况数据写入指定文件,并在 build 结束时将稳定堆写入主日志。
标签: bazel_monitoring
--memory_profile_stable_heap_parameters=<integers, separated by a comma expected in pairs> 默认值:“1,0”
调整了内存配置在 build 结束时对稳定堆的计算。应为以英文逗号分隔的偶数个整数。在每对整数中,第一个整数是要执行的 GC 次数。每对整数中的第二个整数是两次垃圾收集之间等待的秒数。示例:2,4,4,0 表示 2 次 GC,暂停 4 秒,然后是 4 次 GC,暂停 0 秒
标记: bazel_monitoring
--profile=<a path> 默认值:请参阅说明
如果设置,则分析 Bazel 并将数据写入指定的文件。使用 bazel analyze-profile 分析配置文件。
标签: bazel_monitoring
--profiles_to_retain=<an integer> 默认值:“5”
要在输出库中保留的配置文件数量。如果输出库中的个人资料数量超过此数量,系统会删除最旧的个人资料,直到总数低于此限制。
标签: bazel_monitoring
--[no]record_full_profiler_data 默认值:“false”
默认情况下,Bazel 分析器只会记录快速但数量众多的事件(例如统计文件)的汇总数据。如果启用此选项,分析器将记录每个事件,从而生成更精确的分析数据,但性能会受到严重影响。仅在同时使用 --profile 时,此选项才有效。
标签: bazel_monitoring
--[no]redirect_local_instrumentation_output_writes 默认值:“false”
如果为 true 且受支持,则将插桩输出重定向到本地写入,而不是写入到运行 Bazel 的机器上。
标签: 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_outputsbazel_monitoring
--ui_event_filters=<Convert list of comma separated event kind to list of filters> 累积多次使用
指定要在界面中显示的事件。您可以使用前导 +/- 向默认事件添加事件或从默认事件中移除事件,也可以通过直接分配完全替换默认事件集。支持的事件种类包括 INFO、DEBUG、ERROR 等。
标记: terminal_output
用于指定或更改 Bazel 命令的通用输入(不属于其他类别)的选项:
--experimental_resolved_file_instead_of_workspace=<a string> 默认值:""
如果非空,则读取指定的已解析文件,而不是 WORKSPACE 文件
标记: changes_inputs
远程缓存和执行选项:
--downloader_config=<a path> 默认值:请参阅说明
指定用于配置远程下载器的文件。此文件由多行组成,每行都以指令(“allow”“block”或“rewrite”)开头,后跟主机名(对于“allow”和“block”)或两个模式(一个用于匹配,一个用作替代网址,从“$1”开始的反向引用)。可以为同一网址提供多个“rewrite”指令,在这种情况下,系统将返回多个网址。
--experimental_circuit_breaker_strategy=<failure> 默认值:请参阅说明
指定断路器要使用的策略。可用的策略为“failure”。如果选项的值无效,则行为与未设置该选项时相同。
标签: execution
--experimental_remote_cache_compression_threshold=<an integer> 默认值:“100”
使用 zstd 压缩/解压缩所需的最小 blob 大小。除非设置了 --remote_cache_compression,否则此标志无效。
--[no]experimental_remote_cache_lease_extension 默认值:“false”
如果设为 true,Bazel 会在构建期间通过定期向远程缓存发送 `FindMissingBlobs` 调用来延长远程操作输出的租期。此频率基于 `--experimental_remote_cache_ttl` 的值。
--experimental_remote_cache_ttl=<An immutable length of time.> 默认值:“3h”
远程缓存中 blob 的保证最小 TTL(在最近通过 ActionResult 或 FindMissingBlobs 等方式引用其摘要后)。Bazel 会根据 blob 的 TTL 进行多项优化,例如,在增量构建中不会重复调用 GetActionResult。该值应略小于实际 TTL,因为服务器返回摘要与 Bazel 接收摘要之间存在时间差。
标签: execution
--experimental_remote_capture_corrupted_outputs=<a path> 默认值:请参阅说明
用于捕获损坏输出的目录的路径。
--[no]experimental_remote_discard_merkle_trees 默认值:“true”
如果设置为 true,则在调用 GetActionResult() 和 Execute() 期间,舍弃输入根的 Merkle 树和关联的输入映射的内存中副本。这会显著减少内存使用量,但确实需要 Bazel 在远程缓存未命中和重试时重新计算它们。
--experimental_remote_downloader=<a string> 默认值:请参阅说明
要用作远程下载代理的远程资产 API 端点 URI。支持的架构包括 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_downloader_propagate_credentials 默认值:“false”
是否将凭据从 netrc 和凭据帮助程序传播到远程下载器服务器。服务器实现需要支持新的 `http_header_url:<url-index>:<header-key>` 限定符,其中 `<url-index>` 是 FetchBlobRequest 的 `uris` 字段中网址的从 0 开始的位置。网址专用标头应优先于全局标头。
--[no]experimental_remote_execution_keepalive 默认值:“false”
是否为远程执行调用使用 keepalive。
--experimental_remote_failure_rate_threshold=<an integer in 0-100 range> 默认值:“10”
设置特定时间窗口内允许的失败率(以百分比表示),超过该失败率后,系统会停止调用远程缓存/执行器。默认值为 10。如果将此值设为 0,则表示没有限制。
标签: execution
--experimental_remote_failure_window_interval=<An immutable length of time.> 默认值:“60 秒”
计算远程请求失败率的时间间隔。如果值为零或负数,则失败时长将按整个执行时长计算。可以使用以下单位:天 (d)、小时 (h)、分钟 (m)、秒 (s) 和毫秒 (ms)。如果省略单位,则值默认以秒为单位。
标签: execution
--[no]experimental_remote_mark_tool_inputs 默认值:“false”
如果设置为 true,Bazel 会将输入标记为远程执行器的工具输入。这可用于实现远程持久工作器。
--[no]experimental_remote_merkle_tree_cache 默认值:“false”
如果设置为 true,则会记忆 Merkle 树计算结果,以提高远程缓存命中检查速度。缓存的内存占用空间由 --experimental_remote_merkle_tree_cache_size 控制。
--experimental_remote_merkle_tree_cache_size=<a long integer> 默认值:“1000”
要记忆的 Merkle 树的数量,以提高远程缓存命中检查速度。即使缓存会根据 Java 对软引用的处理方式自动修剪,但如果设置得过高,仍可能会出现内存不足错误。如果设置为 0,则缓存大小不受限制。最佳值因项目规模而异。默认值为 1000。
--experimental_remote_output_service=<a string> 默认值:请参阅说明
远程输出服务端点的 HOST 或 HOST:PORT。支持的架构包括 grpc、grpcs(启用 TLS 的 grpc)和 unix(本地 UNIX 套接字)。如果未提供架构,Bazel 将默认使用 grpcs。指定 grpc:// 或 unix: 架构以停用 TLS。
--experimental_remote_output_service_output_path_prefix=<a string> 默认值:""
由 --experimental_remote_output_service 管理的输出目录的内容所放置的路径。build 使用的实际输出目录将是此路径的后代,并由输出服务确定。
--[no]experimental_remote_require_cached 默认值:“false”
如果设置为 true,则强制要求缓存所有可远程运行的操作,否则构建会失败。这有助于排查不确定性问题,因为它可以检查应该缓存的操作是否实际已缓存,而不会错误地将新结果注入缓存中。
--experimental_remote_scrubbing_config=<Converts to a Scrubber> 默认值:请参阅说明
使用提供的配置文件启用远程缓存键清理功能,该文件必须是文本格式的协议缓冲区(请参阅 src/main/protobuf/remote_scrubbing.proto)。 此功能旨在促进在不同平台上执行但以同一平台为目标平台的 action 之间共享远程/磁盘缓存。应极其谨慎地使用,因为设置不当可能会导致缓存条目意外共享,并导致 build 不正确。 清理不会影响操作的执行方式,只会影响其远程/磁盘缓存键的计算方式,以便检索或存储操作结果。清理后的操作与远程执行不兼容,将始终在本地执行。 修改清理配置不会使本地文件系统或内部缓存中的输出失效;需要进行干净构建才能重新执行受影响的操作。 为了成功使用此功能,您可能需要将自定义 --host_platform 与 --experimental_platform_in_output_dir(用于规范化输出前缀)和 --incompatible_strict_action_env(用于规范化环境变量)一起设置。
--experimental_worker_for_repo_fetching=<off, platform, virtual or auto> 默认值:“自动”
用于提取代码库的线程模式。如果设置为“关闭”,则不使用任何工作线程,并且代码库提取可能会重新开始。否则,使用虚拟工作线程。
--[no]guard_against_concurrent_changes 默认值:“精简版”
将其设置为“full”,以在将操作的所有输入文件上传到远程缓存之前,检查这些文件的 ctime。在某些情况下,Linux 内核可能会延迟写入文件,从而导致误报。默认值为“lite”,表示仅检查主代码库中的源文件。将其设置为“关闭”会停用所有检查。不建议这样做,因为当以源文件为输入的操作正在执行时,如果源文件发生更改,可能会污染缓存。
标签: execution
--[no]remote_accept_cached 默认值:“true”
是否接受远程缓存的操作结果。
--remote_build_event_upload=<all or minimal> 默认值:“minimal”
如果设置为“all”,则 BEP 引用的所有本地输出都会上传到远程缓存。 如果设置为“minimal”,则 BEP 引用的本地输出不会上传到远程缓存,但对 BEP 的使用者重要的文件(例如测试日志和时间分析)除外。即使远程缓存中缺少文件,文件的 URI 也始终使用 bytestream:// 方案。 默认为“minimal”。
--remote_bytestream_uri_prefix=<a string> 默认值:请参阅说明
将写入 build 事件流的 bytestream:// URI 中要使用的主机名和实例名称。使用代理执行 build 时可以设置此选项,这会导致 --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_async 默认值:“true”
如果为 true,则将操作结果上传到磁盘或远程缓存将在后台进行,而不会阻止操作完成。某些操作与后台上传不兼容,即使设置了此标志,也可能仍会阻止上传。
--[no]remote_cache_compression 默认值:“false”
如果启用,则在缓存 blob 的大小至少为 --experimental_remote_cache_compression_threshold 时,使用 zstd 压缩/解压缩这些 blob。
--remote_cache_header=<a 'name=value' assignment> 累积多次使用
指定将包含在缓存请求中的标头:--remote_cache_header=Name=Value。可以通过多次指定此标志来传递多个标头。同一名称的多个值将转换为以英文逗号分隔的列表。
--remote_default_exec_properties=<a 'name=value' assignment> 累积多次使用
如果执行平台尚未设置 exec_properties,则将默认执行属性设置为用作远程执行平台。
标签: affects_outputs
--remote_default_platform_properties=<a string> 默认值:""
如果执行平台尚未设置 remote_execution_properties,则设置要为远程执行 API 设置的默认平台属性。如果选择宿主平台作为远程执行的执行平台,系统也会使用此值。
--remote_download_regex=<a valid Java regular expression> 累积多次使用
强制下载路径与此模式匹配的远程 build 输出,无论是否设置了 --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 protobuf,每条消息都以一个 varint 为前缀,用于表示后续序列化 protobuf 消息的大小,如方法 LogEntry.writeDelimitedTo(OutputStream) 所执行的那样。
--remote_header=<a 'name=value' assignment> 累积多次使用
指定将包含在请求中的标头:--remote_header=Name=Value。可以通过多次指定此标志来传递多个标头。同一名称的多个值将转换为以英文逗号分隔的列表。
--remote_instance_name=<a string> 默认值:""
要在远程执行 API 中作为 instance_name 传递的值。
--[no]remote_local_fallback 默认值:“false”
如果远程执行失败,是否回退到独立本地执行策略。
--remote_local_fallback_strategy=<a string> 默认值:“local”
已弃用。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7480。
--remote_max_connections=<an integer> 默认值:“100”
限制与远程缓存/执行器的并发连接数上限。默认情况下,值为 100。如果将此值设为 0,则表示没有限制。 对于 HTTP 远程缓存,一个 TCP 连接一次只能处理一个请求,因此 Bazel 最多可以发出 --remote_max_connections 个并发请求。对于 gRPC 远程缓存/执行器,一个 gRPC 通道通常可以处理 100 多个并发请求,因此 Bazel 可以发出大约 `--remote_max_connections * 100` 个并发请求。
标签: host_machine_resource_optimizations
--remote_proxy=<a string> 默认值:请参阅说明
通过代理连接到远程缓存。目前,此标志只能用于配置 Unix 网域套接字 (unix:/path/to/socket)。
--remote_result_cache_priority=<an integer> 默认值:“0”
要存储在远程缓存中的远程操作的相对优先级。特定优先级值的语义取决于服务器。
--remote_retries=<an integer> 默认值:“5”
重试暂时性错误的尝试次数上限。如果设置为 0,则停用重试。
--remote_retry_max_delay=<An immutable length of time.> 默认值:“5s”
远程重试尝试之间的最大退避延迟时间。可以使用以下单位:天 (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> 累积多次使用
要在 build 事件中提供的自定义键值对字符串。
标签: terminal_output
--color=<yes, no or 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>的凭据帮助程序,以用于检索授权凭据,从而进行代码库提取、远程缓存和执行以及使用 build 事件服务。 由辅助程序提供的凭据优先于由 `--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> 默认值:“自动”
使用终端光标控制来最大限度地减少滚动输出。
--disk_cache=<a path> 默认值:请参阅说明
Bazel 可在其中读取和写入操作及操作输出的目录的路径。如果该目录不存在,系统会创建该目录。
--[no]enable_platform_specific_config 默认值:“false”
如果为 true,Bazel 会从 bazelrc 文件中提取特定于宿主操作系统的配置行。例如,如果宿主操作系统是 Linux,并且您运行 bazel build,则 Bazel 会选择以 build:linux 开头的行。支持的操作系统标识符包括 linux、macos、windows、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 标志确定),就会在后台进行垃圾回收。
--experimental_install_base_gc_max_age=<An immutable length of time.> 默认值:“30d”
安装库在符合垃圾回收条件之前必须处于未使用的时长。如果非零,服务器将在空闲时尝试对其他安装库进行垃圾回收。
标签: host_machine_resource_optimizations
--[no]experimental_rule_extension_api 默认值:“true”
启用实验性规则扩展 API 和子规则 API
标记: loading_and_analysisexperimental
--[no]experimental_windows_watchfs 默认值:“false”
如果为 true,则启用对 --watchfs 的实验性 Windows 支持。否则,--watchfs 在 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 连接配置 keep-alive ping。如果设置了此值,则在连接上没有读取操作达到此时间后,Bazel 会发送 ping,但前提是至少有一个待处理的 gRPC 调用。时间以秒为单位;设置小于 1 秒的值是错误的。默认情况下,Keep-Alive ping 处于停用状态。您应先与服务所有者协调,然后再启用此设置。例如,如需将此标志的值设置为 30 秒,应按如下方式设置:--grpc_keepalive_time=30s
--grpc_keepalive_timeout=<An immutable length of time.> 默认值:“20 秒”
为出站 gRPC 连接配置 keep-alive 超时。如果使用 --grpc_keepalive_time 启用了 keep-alive ping,则 Bazel 会在指定时间后未收到 ping 回复时使连接超时。时间以秒为单位;设置小于 1 秒的值是错误的。如果停用了 keep-alive ping,则系统会忽略此设置。
--[no]incompatible_disable_non_executable_java_binary 默认值:“false”
如果为 true,java_binary 始终可执行。create_executable 属性将被移除。
标记: loading_and_analysisincompatible_change
--[no]incompatible_repo_env_ignores_action_env 默认值:“false”
如果为 true,<code>--action_env=NAME=VALUE</code> 将不再影响代码库规则和模块扩展环境。
标记: loading_and_analysisincompatible_change
--inject_repository=<an equals-separated mapping of repository name to path> 累积多次使用
添加一个具有本地路径的新代码库,格式为 <代码库名称>=<路径>。此标志仅在启用 --enable_bzlmod 的情况下生效,相当于通过 `use_repo_rule` 将相应的 `local_repository` 添加到根模块的 MODULE.bazel 文件中。如果给定的路径是绝对路径,系统将按原样使用。如果给定的路径是相对路径,则相对于当前工作目录。如果给定的路径以“%workspace%”开头,则相对于工作区根目录(即“bazel info workspace”的输出)。如果给定的路径为空,则移除任何之前的注入。
--invocation_id=<a UUID> 默认值:""
正在运行的命令的唯一标识符,采用 UUID 格式。如果明确指定,则调用方必须确保唯一性。UUID 会输出到 stderr、BEP 和远程执行协议。
标记: bazel_monitoringbazel_internal_configuration
--override_repository=<an equals-separated mapping of repository name to path> 累积多次使用
使用 <repository name>=<path> 形式的本地路径替换仓库。如果给定的路径是绝对路径,则将按原样使用。如果给定的路径是相对路径,则相对于当前工作目录。如果给定的路径以“%workspace%”开头,则相对于工作区根目录(即“bazel info workspace”的输出)。如果给定的路径为空,则移除任何之前的替换项。
--[no]progress_in_terminal_title 默认值:“false”
在终端标题中显示命令进度。在有多个终端标签页时,可用于查看 Bazel 正在执行的操作。
--[no]show_progress 默认值:“true”
在 build 期间显示进度消息。
--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 的数字都会映射到 1。
标签: terminal_output
--[no]watchfs 默认值:“false”
在 Linux/macOS 上:如果为 true,则 Bazel 会尝试使用操作系统提供的文件监控服务来监控本地更改,而不是扫描每个文件来查找更改。在 Windows 上:此标志目前处于非操作状态,但可以与 --experimental_windows_watchfs 结合使用。在任何操作系统上:如果工作区位于网络文件系统上,并且文件是在远程机器上编辑的,则行为未定义。

分析配置文件选项

此选项会影响 Starlark 语言或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义:
--[no]incompatible_use_plus_in_repo_names 默认值:“true”
无操作。
标记: loading_and_analysis
影响日志记录详细程度、格式或位置的选项:
--dump=<text or raw> [-d] 默认:请参阅说明
以人类可读的“文本”格式或脚本友好的“原始”格式输出完整的个人资料数据转储。
标记: bazel_monitoring

Aquery 选项

继承 build 中的所有选项。

此选项会影响 Starlark 语言或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义:
--[no]incompatible_use_plus_in_repo_names 默认值:“true”
无操作。
标记: loading_and_analysis
与查询输出和语义相关的选项:
--aspect_deps=<off, conservative or precise> 默认值:“conservative”
当输出格式为 {xml,proto,record} 时,如何解决方面依赖项。“off”表示不解析任何方面依赖项;“conservative”(默认)表示添加所有已声明的方面依赖项,无论它们是否具有直接依赖项的规则类;“precise”表示仅添加那些可能处于有效状态的方面(根据直接依赖项的规则类)。请注意,精确模式需要加载其他软件包才能评估单个目标,因此比其他模式慢。另请注意,即使是精确模式也不是完全精确的:是否计算某个方面是在分析阶段决定的,而分析阶段不会在“bazel query”期间运行。
标签: build_file_semantics
--[no]consistent_labels 默认值:“false”
如果启用,每个查询命令都会发出标签,就像通过应用于 <code>Label</code> 实例的 Starlark <code>str</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]include_pruned_inputs 默认值:“true”
包括在操作执行期间被剪除的操作输入。仅影响发现输入并在之前的调用中执行过的操作。只有在同时设置了 --include_artifacts 时才会生效。
标签: terminal_output
--[no]incompatible_package_group_includes_double_slash 默认值:“true”
如果启用,在输出 package_group 的“packages”属性时,不会省略开头的“//”。
标记: terminal_outputincompatible_change
--[no]infer_universe_scope 默认值:“false”
如果设置了此标志,但未设置 --universe_scope,则 --universe_scope 的值将被推断为查询表达式中唯一目标模式的列表。请注意,对于使用全宇宙范围函数(例如 `allrdeps`)的查询表达式,推断出的 --universe_scope 值可能不是您想要的,因此只有在您知道自己在做什么的情况下才应使用此选项。如需了解详情和查看示例,请访问 https://bazel.build/reference/query#sky-query。如果设置了 --universe_scope,则忽略此选项的值。注意:此选项仅适用于“query”(即不适用于“cquery”)。
标记: loading_and_analysis
--[no]line_terminator_null 默认值:“false”
每种格式是否以 \0 而不是换行符结尾。
标签: terminal_output
--[no]nodep_deps 默认值:“true”
如果启用,则来自“nodep”属性的依赖项将包含在查询所针对的依赖关系图中。“nodep”属性的一个常见示例是“visibility”。运行并解析 `info build-language` 的输出,以了解 build 语言中的所有“nodep”属性。
标签: build_file_semantics
--output=<a string> 默认值:“text”
应打印 aquery 结果的格式。aquery 允许的值包括:text、textproto、proto、streamed_proto、jsonproto。
标签: terminal_output
--output_file=<a string> 默认值:""
指定此标志后,查询结果将直接写入此文件,并且不会向 Bazel 的标准输出流 (stdout) 打印任何内容。在基准测试中,这通常比 <code>bazel query &gt; file</code> 快。
标记: 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() 创建的可配置属性会被扁平化。对于列表类型,扁平化表示形式是一个列表,其中包含选择映射的每个值一次。标量类型会扁平化为 null。
标签: 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_classes 默认值:“false”
填充每个规则的 rule_class_key 字段;对于具有给定 rule_class_key 的第一个规则,还要填充其 rule_class_info proto 字段。rule_class_key 字段可唯一标识规则类,而 rule_class_info 字段是 Stardoc 格式的规则类 API 定义。
标签: terminal_output
--[no]proto:rule_inputs_and_outputs 默认值:“true”
是否填充 rule_input 和 rule_output 字段。
标签: terminal_output
--query_file=<a string> 默认值:""
如果设置,查询将从此处指定的文件中读取,而不是从命令行读取。如果在此处指定文件,同时指定命令行查询,则会出错。
标签: changes_inputs
--[no]relative_locations 默认值:“false”
如果为 true,则 XML 和 proto 输出中 BUILD 文件的位置将是相对位置。默认情况下,位置输出是绝对路径,并且在不同机器上不一致。您可以将此选项设置为 true,以便在不同机器上获得一致的结果。
标签: terminal_output
--[no]skyframe_state 默认值:“false”
无需执行额外分析,即可从 Skyframe 转储当前操作图。注意:目前不支持使用 --skyframe_state 指定目标。此标志仅适用于 --output=proto 或 --output=textproto。
标签: terminal_output
--[no]tool_deps 默认值:“true”
查询:如果停用,则依赖于“执行配置”的依赖项将不会包含在查询所针对的依赖关系图中。“exec 配置”依赖项边(例如从任何“proto_library”规则到 Protocol Compiler 的依赖项边)通常指向在 build 期间执行的工具,而不是同一“target”程序的一部分。 Cquery:如果停用,则过滤掉所有配置的目标,这些目标从发现此配置的顶级目标交叉执行转换。这意味着,如果顶级目标位于目标配置中,则仅返回目标配置中也包含的已配置目标。如果顶级目标位于执行配置中,则仅返回执行配置的目标。此选项不会排除已解析的工具链。
标签: build_file_semantics
--universe_scope=<comma-separated list of options> 默认值:""
以英文逗号分隔的目标模式集(加法和减法)。查询可以在指定目标传递闭包所定义的范围内执行。此选项用于 query 和 cquery 命令。 对于 cquery,此选项的输入是所有答案所构建的目标,因此此选项可能会影响配置和转换。如果未指定此选项,则顶级目标会被假定为从查询表达式解析出的目标。注意:对于 cquery,如果不指定此选项,则如果从查询表达式解析的目标无法使用顶级选项进行构建,可能会导致构建中断。
标记: loading_and_analysis
控制 build 执行的选项:
是否直接进行文件系统调用来创建符号链接树,而不是委托给辅助进程。
标记: loading_and_analysisexecutionexperimental
--[no]experimental_persistent_aar_extractor 默认值:“false”
使用 worker 启用持久性 aar 提取器。
标记: executionexperimental
--[no]experimental_remotable_source_manifests 默认值:“false”
是否使源清单操作可远程执行
标记: loading_and_analysisexecutionexperimental
--[no]experimental_split_coverage_postprocessing 默认值:“false”
如果为 true,则 Bazel 将在新 spawn 中运行测试的覆盖率后处理。
标记: executionexperimental
--[no]experimental_strict_fileset_output 默认值:“false”
如果启用此选项,文件集会将所有输出制品视为常规文件。它们不会遍历目录,也不会对符号链接敏感。
标记: executionexperimental
--[no]incompatible_modify_execution_info_additive 默认值:“false”
启用后,传递多个 --modify_execution_info 标志是累加的。如果停用,则只会考虑最后一个标志。
标记: executionaffects_outputsloading_and_analysisincompatible_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'。
标记: executionaffects_outputsloading_and_analysis
--persistent_android_dex_desugar
通过使用 worker 启用持久性 Android dex 和 desugar 操作。
展开后:
  --internal_persistent_android_dex_desugar
  --strategy=Desugar=worker
  --strategy=DexBuilder=worker

标记: host_machine_resource_optimizationsexecution
--persistent_android_resource_processor
使用工作器启用持久性 Android 资源处理器。
展开后:
  --internal_persistent_busybox_tools
  --strategy=AaptPackage=worker
  --strategy=AndroidResourceParser=worker
  --strategy=AndroidResourceValidator=worker
  --strategy=AndroidResourceCompiler=worker
  --strategy=RClassGenerator=worker
  --strategy=AndroidResourceLink=worker
  --strategy=AndroidAapt2=worker
  --strategy=AndroidAssetMerger=worker
  --strategy=AndroidResourceMerger=worker
  --strategy=AndroidCompiledResourceMerger=worker
  --strategy=ManifestMerger=worker
  --strategy=AndroidManifestMerger=worker
  --strategy=Aapt2Optimize=worker
  --strategy=AARGenerator=worker
  --strategy=ProcessDatabinding=worker
  --strategy=GenerateDataBindingBaseClasses=worker

标记: host_machine_resource_optimizationsexecution
--persistent_multiplex_android_dex_desugar
通过使用 worker 启用持久的多路复用 Android dex 和 desugar 操作。
展开后:
  --persistent_android_dex_desugar
  --internal_persistent_multiplex_android_dex_desugar

标记: host_machine_resource_optimizationsexecution
--persistent_multiplex_android_resource_processor
使用工作线程启用持久复用的 Android 资源处理器。
展开后:
  --persistent_android_resource_processor
  --modify_execution_info=AaptPackage=+supports-multiplex-workers
  --modify_execution_info=AndroidResourceParser=+supports-multiplex-workers
  --modify_execution_info=AndroidResourceValidator=+supports-multiplex-workers
  --modify_execution_info=AndroidResourceCompiler=+supports-multiplex-workers
  --modify_execution_info=RClassGenerator=+supports-multiplex-workers
  --modify_execution_info=AndroidResourceLink=+supports-multiplex-workers
  --modify_execution_info=AndroidAapt2=+supports-multiplex-workers
  --modify_execution_info=AndroidAssetMerger=+supports-multiplex-workers
  --modify_execution_info=AndroidResourceMerger=+supports-multiplex-workers
  --modify_execution_info=AndroidCompiledResourceMerger=+supports-multiplex-workers
  --modify_execution_info=ManifestMerger=+supports-multiplex-workers
  --modify_execution_info=AndroidManifestMerger=+supports-multiplex-workers
  --modify_execution_info=Aapt2Optimize=+supports-multiplex-workers
  --modify_execution_info=AARGenerator=+supports-multiplex-workers

标记: host_machine_resource_optimizationsexecution
--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_optimizationsexecution
--[no]use_target_platform_for_tests 默认值:“false”
如果为 true,则 Bazel 将使用目标平台来运行测试,而不是测试执行组。
标记: execution
用于配置执行操作所用工具链的选项:
--android_compiler=<a string> 默认值:请参阅说明
Android 目标编译器。
标记: affects_outputsloading_and_analysisloses_incremental_state
--android_manifest_merger=<legacy, android or force_android> 默认值:“android”
选择要用于 android_binary 规则的清单合并器。标志,用于帮助从旧版合并器过渡到 Android 清单合并器。
标记: affects_outputsloading_and_analysisloses_incremental_state
--android_platforms=<a build target label> 默认值:""
设置 android_binary 目标使用的平台。如果指定了多个平台,则相应二进制文件为胖 APK,其中包含每个指定目标平台的原生二进制文件。
标记: changes_inputsloading_and_analysisloses_incremental_state
--apple_crosstool_top=<a build target label> 默认值:“@bazel_tools//tools/cpp:toolchain”
要在 Apple 和 Objc 规则及其依赖项中使用的交叉工具链软件包的标签。
标记: loses_incremental_statechanges_inputs
--cc_output_directory_tag=<a string> 默认值:""
指定要添加到配置目录的后缀。
标签: affects_outputs
--compiler=<a string> 默认值:请参阅说明
用于编译目标的 C++ 编译器。
标记: loading_and_analysisexecution
--coverage_output_generator=<a build target label> 默认值:“@bazel_tools//tools/test:lcov_merger”
用于后处理原始覆盖率报告的二进制文件的位置。目前,这必须是一个包含单个文件(即二进制文件)的 filegroup。默认为“//tools/test:lcov_merger”。
标记: changes_inputsaffects_outputsloading_and_analysis
--coverage_report_generator=<a build target label> 默认值:“@bazel_tools//tools/test:coverage_report_generator”
用于生成覆盖率报告的二进制文件的位置。目前,这必须是一个包含单个文件(即二进制文件)的 filegroup。默认为“//tools/test:coverage_report_generator”。
标记: changes_inputsaffects_outputsloading_and_analysis
--coverage_support=<a build target label> 默认值:“@bazel_tools//tools/test:coverage_support”
每个收集代码覆盖率的测试操作的输入中所需的支持文件的位置。默认为“//tools/test:coverage_support”。
标记: changes_inputsaffects_outputsloading_and_analysis
--custom_malloc=<a build target label> 默认值:请参阅说明
指定自定义 malloc 实现。此设置会覆盖 build 规则中的 malloc 属性。
标记: changes_inputsaffects_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_stateloading_and_analysisexecutionexperimental
--[no]experimental_prefer_mutual_xcode 默认值:“true”
如果为 true,则使用本地和远程可用的最新 Xcode。如果为 false,或者没有共同可用的版本,则使用通过 xcode-select 选择的本地 Xcode 版本。
标记: loses_incremental_stateexperimental
--extra_execution_platforms=<comma-separated list of options> 默认值:""
可作为执行平台来运行操作的平台。平台可以按确切目标指定,也可以按目标模式指定。这些平台将优先于通过 register_execution_platforms() 在 WORKSPACE 文件中声明的平台得到考虑。此选项只能设置一次;后续实例将覆盖之前的标志设置。
标签: execution
--extra_toolchains=<comma-separated list of options> 累积多次使用
在工具链解析期间要考虑的工具链规则。可以通过确切的目标或作为目标模式来指定工具链。这些工具链将优先于通过 register_toolchains() 在 WORKSPACE 文件中声明的工具链进行考虑。
标记: affects_outputschanges_inputsloading_and_analysis
--grte_top=<a label> 默认值:请参阅说明
已签入的 libc 库的标签。默认值由交叉工具链选择,您几乎不需要替换它。
标记: action_command_linesaffects_outputs
--host_compiler=<a string> 默认值:请参阅说明
空操作标志。将在未来版本中移除。
标记: loading_and_analysisexecution
--host_grte_top=<a label> 默认值:请参阅说明
如果指定,此设置会替换执行配置的 libc 顶级目录 (--grte_top)。
标记: action_command_linesaffects_outputs
--host_platform=<a build target label> 默认值:“@bazel_tools//tools:host_platform”
描述宿主系统的平台规则的标签。
标记: affects_outputschanges_inputsloading_and_analysis
--[no]incompatible_bazel_test_exec_run_under 默认值:“false”
如果启用,则“bazel test --run_under=//:runner”会在执行配置中构建“//:runner”。如果停用,则在目标配置中构建“//:runner”。Bazel 在执行机器上执行测试,因此前者更正确。这不会影响“bazel run”,后者始终在目标配置中构建“--run_under=//foo”。
标记: affects_outputsincompatible_change
--[no]incompatible_dont_enable_host_nonhost_crosstool_features 默认值:“true”
如果为 true,Bazel 将不会在 C++ 工具链中启用“host”和“nonhost”功能(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7407)。
标记: loading_and_analysisincompatible_change
--[no]incompatible_enable_apple_toolchain_resolution 默认值:“false”
使用工具链解析来选择 Apple 规则(Starlark 和原生)的 Apple SDK
标记: loading_and_analysisincompatible_change
--[no]incompatible_remove_legacy_whole_archive 默认值:“true”
如果为 true,Bazel 默认不会将库依赖项作为整个归档进行链接(如需迁移说明,请参阅 https://github.com/bazelbuild/bazel/issues/7362)。
标记: loading_and_analysisincompatible_change
--[no]incompatible_strip_executable_safely 默认值:“false”
如果为 true,则可执行文件的剥离操作将使用标志 -x,该标志不会中断动态符号解析。
标记: action_command_linesincompatible_change
--[no]interface_shared_objects 默认值:“true”
如果工具链支持,则使用接口共享对象。所有 ELF 工具链目前都支持此设置。
标签: loading_and_analysisaffects_outputsaffects_outputs
--ios_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
指定用于构建 iOS 应用的 iOS SDK 版本。如果未指定,则使用来自“xcode_version”的默认 iOS SDK 版本。
标签: loses_incremental_state
--macos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
指定用于构建 macOS 应用的 macOS SDK 版本。如果未指定,则使用来自“xcode_version”的默认 macOS SDK 版本。
标签: loses_incremental_state
--minimum_os_version=<a string> 默认值:请参阅说明
您的编译所针对的最低操作系统版本。
标记: loading_and_analysisaffects_outputs
--platform_mappings=<a main workspace-relative path> 默认值:""
映射文件的位置,用于描述在未设置平台时要使用哪个平台,或在平台已存在时要设置哪些标志。必须相对于主工作区根目录。默认为“platform_mappings”(工作区根目录下的一个文件)。
标记: affects_outputschanges_inputsloading_and_analysisimmutable
--platforms=<a build target label> 默认值:""
描述当前命令的目标平台的平台规则的标签。
标记: affects_outputschanges_inputsloading_and_analysis
--python_path=<a string> 默认值:请参阅说明
在目标平台上调用以运行 Python 目标的 Python 解释器的绝对路径。已弃用;已通过 --incompatible_use_python_toolchains 停用。
标记: loading_and_analysisaffects_outputs
--python_top=<a build target label> 默认值:请参阅说明
py_runtime 的标签,表示在目标平台上调用以运行 Python 目标的 Python 解释器。已弃用;已通过 --incompatible_use_python_toolchains 停用。
标记: loading_and_analysisaffects_outputs
--tvos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
指定用于构建 tvOS 应用的 tvOS SDK 版本。如果未指定,则使用来自“xcode_version”的默认 tvOS SDK 版本。
标签: loses_incremental_state
--watchos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
指定用于构建 watchOS 应用的 watchOS SDK 版本。如果未指定,则使用来自“xcode_version”的默认 watchOS SDK 版本。
标签: loses_incremental_state
--xcode_version=<a string> 默认值:请参阅说明
如果指定,则使用指定版本的 Xcode 执行相关的 build 操作。如果未指定,则使用执行器的默认 Xcode 版本。
标签: loses_incremental_state
--xcode_version_config=<a build target label> 默认值:“@bazel_tools//tools/cpp:host_xcodes”
用于在 build 配置中选择 Xcode 版本的 xcode_config 规则的标签。
标记: loses_incremental_stateloading_and_analysis
用于控制命令输出的选项:
--[no]apple_generate_dsym 默认值:“false”
是否生成调试符号 (.dSYM) 文件。
标记: affects_outputsaction_command_lines
如果为 true,则为所有目标构建 runfiles 符号链接森林。如果为 false,则仅在本地操作、测试或运行命令需要时写入它们。
标签: affects_outputs
--[no]build_runfile_manifests 默认值:“true”
如果为 true,则为所有目标写入 runfiles 清单。如果为 false,则省略这些参数。如果为 false,本地测试将无法运行。
标签: affects_outputs
--[no]build_test_dwp 默认值:“false”
如果启用,在静态构建 C++ 测试并使用 fission 时,系统也会自动构建测试二进制文件的 .dwp 文件。
标记: loading_and_analysisaffects_outputs
--cc_proto_library_header_suffixes=<comma-separated set of options> 默认值:“.pb.h”
设置 cc_proto_library 创建的头文件的后缀。
标记: affects_outputsloading_and_analysis
--cc_proto_library_source_suffixes=<comma-separated set of options> 默认值:“.pb.cc”
设置 cc_proto_library 创建的源文件的后缀。
标记: affects_outputsloading_and_analysis
--[no]experimental_proto_descriptor_sets_include_source_info 默认值:“false”
在 proto_library 中针对备用 Java API 版本运行额外的操作。
标记: affects_outputsloading_and_analysisexperimental
--[no]experimental_save_feature_state 默认值:“false”
将已启用和已请求的功能的状态保存为编译的输出。
标记: affects_outputsexperimental
--fission=<a set of compilation modes> 默认值:“否”
指定哪些编译模式使用 fission 进行 C++ 编译和链接。可以是 {'fastbuild', 'dbg', 'opt'} 的任意组合,也可以是特殊值“yes”(启用所有模式)和“no”(停用所有模式)。
标记: loading_and_analysisaction_command_linesaffects_outputs
--[no]incompatible_always_include_files_in_data 默认值:“true”
如果为 true,原生规则会将数据依赖项的 <code>DefaultInfo.files</code> 添加到其 runfiles 中,这与 Starlark 规则的推荐行为一致 (https://bazel.build/extending/rules#runfiles_features_to_avoid)。
标记: affects_outputsincompatible_change
--[no]legacy_external_runfiles 默认值:“false”
如果为 true,则在 .runfiles/wsname/external/repo(以及 .runfiles/repo)下为外部代码库构建 runfiles 符号链接森林。
标签: affects_outputs
--[no]objc_generate_linkmap 默认值:“false”
指定是否生成 linkmap 文件。
标签: 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> 累积多次使用
指定可供具有目标配置的操作使用的一组环境变量。变量可以通过 <code>name</code> 指定,在这种情况下,值将从调用环境中获取;也可以通过 <code>name=value</code> 对指定,这样设置的值与调用环境无关。此选项可多次使用;对于同一变量给出的选项,以最新的为准;对于不同变量的选项,则会累积。 <br> 请注意,除非 <code>--incompatible_repo_env_ignores_action_env</code> 为 true,否则所有 <code>name=value</code> 对都将可供代码库规则使用。
标签: action_command_lines
--allowed_cpu_values=<comma-separated set of options> 默认值:""
--cpu 标志的允许值。
标记: changes_inputsaffects_outputs
--[no]android_databinding_use_androidx 默认值:“true”
生成与 AndroidX 兼容的数据绑定文件。这仅适用于数据绑定 v2。此标志为无操作。
标记: affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]android_databinding_use_v3_4_args 默认值:“true”
使用 3.4.0 实参的 Android 数据绑定 v2。此标志为无操作。
标记: affects_outputsloading_and_analysisloses_incremental_stateexperimental
--android_dynamic_mode=<off, default or fully> 默认值:“关闭”
确定当 cc_binary 未明确创建共享库时,Android 规则的 C++ 依赖项是否会动态链接。“default”表示 Bazel 将选择是否动态链接。“fully”表示所有库都将动态关联。“off”表示所有库都将以主要静态模式进行关联。
标记: affects_outputsloading_and_analysis
--android_manifest_merger_order=<alphabetical, alphabetical_by_configuration or dependency> 默认值:“alphabetical”
设置传递给 Android 二进制文件清单合并器的清单顺序。ALPHABETICAL 表示清单按相对于执行根目录的路径排序。ALPHABETICAL_BY_CONFIGURATION 表示清单按相对于输出目录中配置目录的路径进行排序。DEPENDENCY 表示清单的顺序为:每个库的清单位于其依赖项的清单之前。
标记: action_command_linesexecution
--[no]android_resource_shrinking 默认值:“false”
为使用 ProGuard 的 android_binary APK 启用资源缩减功能。
标记: affects_outputsloading_and_analysis
--[no]build_python_zip 默认值:“自动”
构建 Python 可执行压缩文件;在 Windows 上为 on,在其他平台上为 off
标记: affects_outputs
--catalyst_cpus=<comma-separated list of options> 累积多次使用
以英文逗号分隔的架构列表,用于构建 Apple Catalyst 二进制文件。
标记: loses_incremental_stateloading_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_outputsaction_command_lines
--conlyopt=<a string> 累积多次使用
编译 C 源文件时要传递给 gcc 的其他选项。
标记: action_command_linesaffects_outputs
--copt=<a string> 累积多次使用
要传递给 gcc 的其他选项。
标记: action_command_linesaffects_outputs
--cpu=<a string> 默认值:""
目标 CPU。
标记: changes_inputsaffects_outputs
--cs_fdo_absolute_path=<a string> 默认值:请参阅说明
使用 CSFDO 配置文件信息来优化编译。指定包含配置文件(原始或已编入索引的 LLVM 配置文件)的 ZIP 文件的绝对路径名。
标签: affects_outputs
--cs_fdo_instrument=<a string> 默认值:请参阅说明
生成具有上下文相关 FDO 检测功能的二进制文件。使用 Clang/LLVM 编译器时,它还接受将在运行时转储原始配置文件的目录名称。
标签: affects_outputs
--cs_fdo_profile=<a build target label> 默认值:请参阅说明
表示要用于优化的上下文相关配置文件的 cs_fdo_profile。
标签: affects_outputs
--cxxopt=<a string> 累积多次使用
在编译 C++ 源文件时要传递给 gcc 的其他选项。
标记: action_command_linesaffects_outputs
--define=<a 'name=value' assignment> 累积多次使用
每个 --define 选项都指定一个 build 变量的赋值。如果某个变量有多个值,则最后一个值胜出。
标记: changes_inputsaffects_outputs
--dynamic_mode=<off, default or fully> 默认值:“default”
确定 C++ 二进制文件是否将动态链接。“default”表示 Bazel 将选择是否动态链接。“fully”表示所有库都将动态关联。“off”表示所有库都将以主要静态模式进行关联。
标记: loading_and_analysisaffects_outputs
--[no]enable_propeller_optimize_absolute_paths 默认值:“true”
如果设置,任何使用绝对路径进行螺旋桨优化的操作都会引发错误。
标签: affects_outputs
--[no]enable_remaining_fdo_absolute_paths 默认值:“true”
如果设置,则任何使用 FDO 绝对路径的行为都会引发错误。
标签: affects_outputs
--[no]enable_runfiles 默认值:“自动”
启用 runfiles 符号链接树;默认情况下,在 Windows 上处于关闭状态,在其他平台上处于开启状态。
标签: affects_outputs
--experimental_action_listener=<a build target label> 累积多次使用
已弃用,取而代之的是方面。使用 action_listener 将 extra_action 附加到现有 build 操作。
标记: executionexperimental
--[no]experimental_android_compress_java_resources 默认值:“false”
压缩 APK 中的 Java 资源
标记: affects_outputsloading_and_analysisexperimental
--[no]experimental_android_databinding_v2 默认值:“true”
使用 Android 数据绑定 v2。此标志为无操作。
标记: affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]experimental_android_resource_shrinking 默认值:“false”
为使用 ProGuard 的 android_binary APK 启用资源缩减功能。
标记: affects_outputsloading_and_analysisexperimental
--[no]experimental_android_rewrite_dexes_with_rex 默认值:“false”
使用 rex 工具重写 dex 文件
标记: affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]experimental_collect_code_coverage_for_generated_files 默认值:“false”
如果指定,Bazel 还会为生成的文件生成收集覆盖率信息。
标记: affects_outputsexperimental
--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_linesaffects_outputsexperimental
--experimental_output_paths=<off, content or strip> 默认值:“关闭”
用于确定在输出树中规则应将输出写入何处,尤其适用于多平台 / 多配置 build。此功能尚处于高度实验阶段。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/6526。Starlark 操作可以通过向“execution_requirements”字典添加“supports-path-mapping”键来选择启用路径映射。
标记: loses_incremental_statebazel_internal_configurationaffects_outputsexecution
--experimental_override_name_platform_in_output_dir=<a 'label=value' assignment> 累积多次使用
每个条目都应采用“标签=值”的形式,其中标签是指平台,值是指要在输出路径中使用的所需简称。仅在 --experimental_platform_in_output_dir 为 true 时使用。具有最高的命名优先级。
标记: affects_outputsexperimental
--[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_outputsexperimental
--[no]experimental_py_binaries_include_label 默认值:“false”
即使在停用戳记功能的情况下,py_binary 目标也会包含其标签。
标记: affects_outputsexperimental
--[no]experimental_use_llvm_covmap 默认值:“false”
如果指定,当 collect_code_coverage 处于启用状态时,Bazel 将生成 llvm-cov 代码覆盖率映射信息,而不是 gcov 代码覆盖率映射信息。
标记: changes_inputsaffects_outputsloading_and_analysisexperimental
--[no]experimental_use_platforms_in_output_dir_legacy_heuristic 默认值:“true”
请仅在建议的迁移或测试策略中使用此标志。请注意,该启发式方法存在已知缺陷,建议迁移到仅依赖于 --experimental_override_name_platform_in_output_dir。
标记: affects_outputsexperimental
--fdo_instrument=<a string> 默认值:请参阅说明
生成带有 FDO 检测的二进制文件。使用 Clang/LLVM 编译器时,它还接受将在运行时转储原始配置文件的目录名称。
标签: affects_outputs
--fdo_optimize=<a string> 默认值:请参阅说明
使用 FDO 配置文件信息来优化编译。指定包含 .gcda 文件树、包含自动配置文件的 AFDO 文件或 LLVM 配置文件在内的 ZIP 文件的名称。此标志还接受指定为标签的文件(例如 `//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> 累积多次使用
对于在目标配置中构建的目标,给定的功能将默认处于启用或停用状态。指定 -<功能> 将停用相应功能。否定功能始终会覆盖肯定功能。另请参阅 --host_features
标记: changes_inputsaffects_outputs
--[no]force_pic 默认值:“false”
如果启用,所有 C++ 编译都会生成位置无关代码 (-fPIC),链接会优先选择 PIC 预构建库而非非 PIC 库,并且链接会生成位置无关可执行文件 (-pie)。
标记: loading_and_analysisaffects_outputs
--host_action_env=<a 'name=value' assignment with an optional value part> 累积多次使用
指定可供具有执行配置的操作使用的一组环境变量。变量可以通过名称指定(在这种情况下,系统会从调用环境中获取值),也可以通过 name=value 对指定(这样会独立于调用环境设置值)。此选项可多次使用;对于同一变量给出的选项,以最新的为准;对于不同变量的选项,则会累积。
标签: action_command_lines
--host_compilation_mode=<fastbuild, dbg or opt> 默认值:“opt”
指定 build 期间使用的工具将以何种模式构建。值:“fastbuild”“dbg”“opt”。
标记: affects_outputsaction_command_lines
--host_conlyopt=<a string> 累积多次使用
在执行配置中编译 C(而非 C++)源文件时要传递给 C 编译器的其他选项。
标记: action_command_linesaffects_outputs
--host_copt=<a string> 累积多次使用
要传递给 C 编译器(针对在执行配置中构建的工具)的其他选项。
标记: action_command_linesaffects_outputs
--host_cpu=<a string> 默认值:""
主机 CPU。
标记: changes_inputsaffects_outputs
--host_cxxopt=<a string> 累积多次使用
要传递给 C++ 编译器的其他选项,用于在执行配置中构建的工具。
标记: action_command_linesaffects_outputs
--host_features=<a string> 累积多次使用
对于在执行配置中构建的目标,给定的功能将默认处于启用或停用状态。指定 -<功能> 将停用相应功能。负特征始终会覆盖正特征。
标记: changes_inputsaffects_outputs
--host_force_python=<PY2 or PY3> 默认值:请参阅说明
替换执行配置的 Python 版本。可以是“PY2”或“PY3”。
标记: loading_and_analysisaffects_outputs
--host_linkopt=<a string> 累积多次使用
在执行配置中关联工具时,传递给链接器的其他选项。
标记: action_command_linesaffects_outputs
--host_macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
主机目标的最低兼容 macOS 版本。如果未指定,则使用“macos_sdk_version”。
标签: loses_incremental_state
--host_per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options> 累积多次使用
在编译执行配置中的某些文件时,有选择性地传递给 C/C++ 编译器的其他选项。此选项可以多次传递。语法:regex_filter@option_1,option_2,...,option_n。其中,regex_filter 表示包含和排除正则表达式模式的列表(另请参阅 --instrumentation_filter)。option_1 到 option_n 表示任意命令行选项。如果某个选项包含英文逗号,则必须使用反斜杠进行转义。选项可以包含 @。系统只会使用第一个 @ 来拆分字符串。示例:--host_per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 会将 -O0 命令行选项添加到 //foo/ 中除 bar.cc 之外的所有 cc 文件的 gcc 命令行中。
标记: action_command_linesaffects_outputs
--[no]incompatible_auto_exec_groups 默认值:“false”
启用后,系统会自动为规则使用的每个工具链创建一个执行组。为此,规则需要在其操作中指定“toolchain”参数。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/17134。
标记: affects_outputsincompatible_change
--[no]incompatible_merge_genfiles_directory 默认值:“true”
如果为 true,则 genfiles 目录会折叠到 bin 目录中。
标记: affects_outputsincompatible_change
--[no]instrument_test_targets 默认值:“false”
启用覆盖率时,指定是否考虑插桩测试规则。如果设置了此标志,则会插桩由 --instrumentation_filter 包含的测试规则。否则,测试规则始终会从覆盖率检测中排除。
标签: affects_outputs
--instrumentation_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths> 默认值:“-/javatests[/:],-/test/java[/:]”
启用覆盖率后,系统只会检测名称包含在指定基于正则表达式的过滤条件中的规则。带有“-”前缀的规则会被排除。请注意,除非启用 --instrument_test_targets,否则仅对非测试规则进行检测。
标签: affects_outputs
--ios_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
目标模拟器和设备的最低兼容 iOS 版本。如果未指定,则使用“ios_sdk_version”。
标签: loses_incremental_state
--ios_multi_cpus=<comma-separated list of options> 累积多次使用
以英文逗号分隔的架构列表,用于构建 ios_application。结果是一个包含所有指定架构的通用二进制文件。
标记: loses_incremental_stateloading_and_analysis
--[no]legacy_whole_archive 默认值:“true”
已弃用,已被 --incompatible_remove_legacy_whole_archive 取代(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7362)。如果设置为开启,则对于 linkshared=True 且 linkopts 中包含 linkstatic=True 或 '-static' 的 cc_binary 规则,使用 --whole-archive。这仅是为了实现向后兼容性。更好的替代方案是在需要时使用 alwayslink=1。
标记: action_command_linesaffects_outputsdeprecated
--linkopt=<a string> 累积多次使用
链接时要传递给 gcc 的其他选项。
标记: action_command_linesaffects_outputs
--ltobackendopt=<a string> 累积多次使用
传递给 LTO 后端步骤的其他选项(在 --features=thin_lto 下)。
标记: action_command_linesaffects_outputs
--ltoindexopt=<a string> 累积多次使用
要传递给 LTO 索引步骤的其他选项(在 --features=thin_lto 下)。
标记: action_command_linesaffects_outputs
--macos_cpus=<comma-separated list of options> 累积多次使用
以英文逗号分隔的架构列表,用于构建 Apple macOS 二进制文件。
标记: loses_incremental_stateloading_and_analysis
--macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
目标的最低兼容 macOS 版本。如果未指定,则使用“macos_sdk_version”。
标签: loses_incremental_state
--memprof_profile=<a build target label> 默认值:请参阅说明
使用 memprof 配置文件。
标签: affects_outputs
--[no]objc_debug_with_GLIBCXX 默认值:“false”
如果已设置,且编译模式设置为“dbg”,则定义 GLIBCXX_DEBUG、GLIBCXX_DEBUG_PEDANTIC 和 GLIBCPP_CONCEPT_CHECKS。
标签: action_command_lines
--[no]objc_enable_binary_stripping 默认值:“false”
是否对关联的二进制文件执行符号和死代码剥离。如果同时指定了此标志和 --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_n 表示任意命令行选项。如果某个选项包含英文逗号,则必须使用反斜杠进行转义。选项可以包含 @。系统只会使用第一个 @ 来拆分字符串。示例:--per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 会将 -O0 命令行选项添加到 //foo/ 中除 bar.cc 之外的所有 cc 文件的 gcc 命令行中。
标记: action_command_linesaffects_outputs
--per_file_ltobackendopt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options> 累积多次使用
在编译某些后端对象时,有选择地传递给 LTO 后端(在 --features=thin_lto 下)的其他选项。此选项可以多次传递。语法:regex_filter@option_1,option_2,...,option_n。其中,regex_filter 表示包含和排除正则表达式模式的列表,option_1 到 option_n 表示任意命令行选项。如果某个选项包含英文逗号,则必须使用反斜杠进行转义。选项可以包含 @。系统只会使用第一个 @ 来拆分字符串。示例:--per_file_ltobackendopt=//foo/.*\.o,-//foo/bar\.o@-O0 会将 -O0 命令行选项添加到 //foo/ 中除 bar.o 以外的所有 o 文件的 LTO 后端命令行中。
标记: action_command_linesaffects_outputs
--platform_suffix=<a string> 默认值:请参阅说明
指定要添加到配置目录的后缀。
标记: loses_incremental_stateaffects_outputsloading_and_analysis
--propeller_optimize=<a build target label> 默认值:请参阅说明
使用 Propeller 配置文件信息来优化 build 目标。Propeller 配置文件必须包含至少一个文件,即 cc 配置文件和 ld 配置文件。此标志接受必须引用螺旋桨配置文件输入文件的 build 标签。例如,定义标签的 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_linesaffects_outputs
--propeller_optimize_absolute_cc_profile=<a string> 默认值:请参阅说明
Propeller 优化 build 的 cc_profile 文件的绝对路径名。
标签: affects_outputs
--propeller_optimize_absolute_ld_profile=<a string> 默认值:请参阅说明
Propeller 优化 build 的 ld_profile 文件的绝对路径名。
标签: affects_outputs
--run_under=<a prefix in front of command> 默认值:请参阅说明
在“test”和“run”命令的可执行文件之前插入的前缀。如果值为“foo -bar”,而执行命令行是“test_binary -baz”,则最终命令行是“foo -bar test_binary -baz”。这也可以是可执行目标的标签。例如:“valgrind”“strace”“strace -c”“valgrind --quiet --num-callers=20”“//package:target”“//package:target --options”。
标签: action_command_lines
--[no]share_native_deps 默认值:“true”
如果为 true,则包含相同功能的原生库将在不同目标之间共享
标记: loading_and_analysisaffects_outputs
--[no]stamp 默认值:“false”
使用日期、用户名、主机名、工作区信息等标记二进制文件。
标记: affects_outputs
--strip=<always, sometimes or never> 默认值:“sometimes”
指定是否剥离二进制文件和共享库(使用“-Wl,--strip-debug”)。默认值“sometimes”表示仅当 --compilation_mode=fastbuild 时才剥离。
标签: affects_outputs
--stripopt=<a string> 累积多次使用
生成“<name>.stripped”二进制文件时要传递给 strip 的其他选项。
标记: action_command_linesaffects_outputs
--tvos_cpus=<comma-separated list of options> 累积多次使用
以英文逗号分隔的架构列表,用于构建 Apple tvOS 二进制文件。
标记: loses_incremental_stateloading_and_analysis
--tvos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
目标模拟器和设备的最低兼容 tvOS 版本。如果未指定,则使用“tvos_sdk_version”。
标签: loses_incremental_state
--visionos_cpus=<comma-separated list of options> 累积多次使用
以英文逗号分隔的架构列表,用于构建 Apple visionOS 二进制文件。
标记: loses_incremental_stateloading_and_analysis
--watchos_cpus=<comma-separated list of options> 累积多次使用
以英文逗号分隔的架构列表,用于构建 Apple watchOS 二进制文件。
标记: loses_incremental_stateloading_and_analysis
--watchos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
目标模拟器和设备的最低兼容 watchOS 版本。如果未指定,则使用“watchos_sdk_version”。
标签: loses_incremental_state
--xbinary_fdo=<a build target label> 默认值:请参阅说明
使用 XbinaryFDO 配置文件信息来优化编译。指定默认跨二进制配置文件名称。当此选项与 --fdo_instrument/--fdo_optimize/--fdo_profile 一起使用时,这些选项始终优先,就好像从未指定 xbinary_fdo 一样。
标记: affects_outputs
影响 Bazel 严格执行有效 build 输入(规则定义、标志组合等)的选项:
--[no]check_licenses 默认值:“false”
检查依赖软件包施加的许可限制是否与正在构建的目标的分发模式冲突。默认情况下,系统不会检查许可。
标签: build_file_semantics
--[no]check_visibility 默认值:“true”
如果停用,目标依赖项中的可见性错误将降级为警告。
标签: build_file_semantics
--[no]desugar_for_android 默认值:“true”
是否在 dexing 之前对 Java 8 字节码进行 desugar 处理。
标记: affects_outputsloading_and_analysisloses_incremental_state
--[no]desugar_java8_libs 默认值:“false”
是否在面向旧版设备的应用中包含受支持的 Java 8 库。
标记: affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]enforce_constraints 默认值:“true”
检查每个目标平台兼容的环境,如果任何目标平台具有不支持相同环境的依赖项,则报告错误
标记: build_file_semantics
--[no]experimental_check_desugar_deps 默认值:“true”
是否在 Android 二进制文件级别仔细检查正确的脱糖。
标记: eagerness_to_exitloading_and_analysisexperimental
--experimental_import_deps_checking=<a string> 默认值:请参阅说明
无操作,仅为实现向后兼容性而保留
标记: loading_and_analysis
--experimental_one_version_enforcement=<off, warning or error> 默认值:“OFF”
启用后,强制执行 java_binary 规则,确保类路径上不能包含同一类文件的多个版本。此强制执行可能会导致 build 失败,也可能只会导致警告。
标签: loading_and_analysis
--experimental_strict_java_deps=<off, warn, error, strict or default> 默认值:“default”
如果为 true,则检查 Java 目标是否明确声明所有直接使用的目标作为依赖项。
标记: build_file_semanticseagerness_to_exit
--[no]incompatible_check_testonly_for_output_files 默认值:“false”
如果已启用,请通过查找生成规则的 testonly 来检查作为输出文件的前提条件目标的 testonly。这与可见性检查相匹配。
标记: build_file_semanticsincompatible_change
--[no]incompatible_check_visibility_for_toolchains 默认值:“false”
如果启用,可见性检查也适用于工具链实现。
标记: build_file_semanticsincompatible_change
--[no]incompatible_disable_native_android_rules 默认值:“false”
如果启用,则会停用对原生 Android 规则的直接使用。请使用来自 https://github.com/bazelbuild/rules_android 的 Starlark Android 规则
标记: eagerness_to_exitincompatible_change
--[no]incompatible_disable_native_apple_binary_rule 默认值:“false”
无操作。保留在此处是为了向后兼容。
标记: eagerness_to_exitincompatible_change
--[no]incompatible_python_disable_py2 默认值:“true”
如果为 true,使用 Python 2 设置会导致错误。这包括 python_version=PY2、srcs_version=PY2 和 srcs_version=PY2ONLY。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/15684。
标记: loading_and_analysisincompatible_change
--[no]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_semanticseagerness_to_exit
--strict_proto_deps=<off, warn, error, strict or default> 默认值:“error”
除非设置为 OFF,否则会检查 proto_library 目标是否明确声明了所有直接使用的目标作为依赖项。
标记: build_file_semanticseagerness_to_exitincompatible_change
--strict_public_imports=<off, warn, error, strict or default> 默认值:“关闭”
除非设置为 OFF,否则会检查 proto_library 目标是否明确声明了“import public”中使用的所有目标为已导出。
标记: build_file_semanticseagerness_to_exitincompatible_change
--[no]strict_system_includes 默认值:“false”
如果为 true,则通过系统 include 路径 (-isystem) 找到的标头也必须声明。
标记: loading_and_analysiseagerness_to_exit
--target_environment=<a build target label> 累积多次使用
声明相应 build 的目标环境。必须是对“环境”规则的标签引用。如果指定了此属性,则所有顶级目标平台都必须与此环境兼容。
标记: changes_inputs
影响 build 签名输出的选项:
--apk_signing_method=<v1, v2, v1_v2 or v4> 默认值:“v1_v2”
用于对 APK 进行签名的实现
标记: action_command_linesaffects_outputsloading_and_analysis
--[no]device_debug_entitlements 默认值:“true”
如果已设置,且编译模式不是“opt”,则 objc 应用在签名时将包含调试授权。
标签: changes_inputs
--ios_signing_cert_name=<a string> 默认值:请参阅说明
用于 iOS 签名的证书名称。如果未设置,则会回退到配置配置文件。可能是证书的钥匙串身份偏好设置,也可能是证书的公用名(子字符串),具体请参阅 codesign 的手册页(签名身份)。
标记: action_command_lines
此选项会影响 Starlark 语言或可供 BUILD 文件、.bzl 文件或 WORKSPACE 文件访问的 build API 的语义:
--[no]incompatible_disallow_legacy_py_provider 默认值:“true”
无操作,很快就会被移除。
标记: loading_and_analysisincompatible_change
--[no]incompatible_disallow_sdk_frameworks_attributes 默认值:“false”
如果为 true,则不允许在 objc_library 和 objc_import 中使用 sdk_frameworks 和 weak_sdk_frameworks 属性。
标记: build_file_semanticsincompatible_change
如果为 true,则将 objc_library 和 objc_import 中 alwayslink 属性的默认值设为 true。
标记: build_file_semanticsincompatible_change
--[no]incompatible_python_disallow_native_rules 默认值:“false”
如果为 true,则在使用内置 py_* 规则时会发生错误;而应使用 rule_python 规则。如需了解详情和迁移说明,请参阅 https://github.com/bazelbuild/bazel/issues/17773。
标记: loading_and_analysisincompatible_change
用于控制测试环境或测试运行程序行为的选项:
--[no]allow_analysis_failures 默认值:“false”
如果为 true,则规则目标的分析失败会导致目标传播包含错误说明的 AnalysisFailureInfo 实例,而不是导致 build 失败。
标记: loading_and_analysisexperimental
--analysis_testing_deps_limit=<an integer> 默认值:“2000”
通过具有 for_analysis_testing 配置转换的规则属性设置传递依赖项的最大数量。超出此限制会导致规则错误。
标签: loading_and_analysis
--[no]break_build_on_parallel_dex2oat_failure 默认值:“false”
如果为 true,dex2oat 操作失败将导致 build 中断,而不是在测试运行时执行 dex2oat。
标记: loading_and_analysisexperimental
--default_test_resources=<a resource name followed by equal and 1 float or 4 float, e.g. memory=10,30,60,100> 累积多次使用
替换测试的默认资源量。预期格式为 <resource>=<value>。如果将单个正数指定为 <value>,则该值将替换所有测试规模的默认资源。如果指定了 4 个以英文逗号分隔的数字,它们将分别替换小型、中型、大型和超大型测试规模的资源量。值也可以是 HOST_RAM/HOST_CPU,后面可以选择性地跟上 [-|*]<float>(例如,memory=HOST_RAM*.1,HOST_RAM*.2,HOST_RAM*.3,HOST_RAM*.4)。此标志指定的默认测试资源会被标记中指定的显式资源覆盖。
--[no]experimental_android_use_parallel_dex2oat 默认值:“false”
并行使用 dex2oat,以尽可能加快 android_test 的速度。
标记: loading_and_analysishost_machine_resource_optimizationsexperimental
--[no]ios_memleaks 默认值:“false”
在 ios_test 目标中启用内存泄漏检查。
标签: action_command_lines
--ios_simulator_device=<a string> 默认值:请参阅说明
在模拟器中运行 iOS 应用时要模拟的设备,例如“iPhone 6”。您可以在运行模拟器的机器上运行“xcrun simctl list devicetypes”,以获取设备列表。
标签: test_runner
--ios_simulator_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
在运行或测试时要在模拟器上运行的 iOS 版本。如果 ios_test 规则中指定了目标设备,则忽略此属性。
标签: test_runner
--runs_per_test=<a positive integer or test_regex@runs. This flag may be passed more than once> 累积多次使用
指定运行每个测试的次数。如果任何尝试因任何原因而失败,则整个测试都被视为失败。通常,指定的值只是一个整数。示例:--runs_per_test=3 将运行所有测试 3 次。替代语法:regex_filter@runs_per_test。其中,runs_per_test 表示一个整数值,regex_filter 表示包含和排除正则表达式模式的列表(另请参阅 --instrumentation_filter)。示例:--runs_per_test=//foo/.*,-//foo/bar/.*@3 会运行 //foo/ 中的所有测试(foo/bar 下的测试除外),运行次数为 3 次。此选项可以多次传递。系统会优先采用最近传递的匹配实参。如果没有任何匹配项,则测试仅运行一次。
--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 默认值:“false”
如果为 true,未声明的测试输出将归档到 zip 文件中。
标记: test_runner
触发构建时间优化的选项:
--[no]experimental_filter_library_jar_with_program_jar 默认值:“false”
过滤 ProGuard ProgramJar 以移除 LibraryJar 中也存在的任何类。
标记: action_command_linesexperimental
--[no]experimental_inmemory_dotd_files 默认值:“true”
如果启用,C++ .d 文件将直接通过内存从远程 build 节点传递,而不是写入磁盘。
标记: loading_and_analysisexecutionaffects_outputsexperimental
--[no]experimental_inmemory_jdeps_files 默认值:“true”
如果启用,从 Java 编译生成的依赖项 (.jdeps) 文件将直接通过内存从远程 build 节点传递,而不是写入磁盘。
标记: loading_and_analysisexecutionaffects_outputsexperimental
--[no]experimental_retain_test_configuration_across_testonly 默认值:“false”
启用后,--trim_test_configuration 不会针对标记为 testonly=1 的规则剪裁测试配置。此举旨在减少非测试规则依赖于 cc_test 规则时的操作冲突问题。如果 --trim_test_configuration 为 false,则无效。
标记: loading_and_analysisloses_incremental_stateexperimental
--[no]experimental_starlark_cc_import 默认值:“false”
如果启用,则可以使用 cc_import 的 Starlark 版本。
标记: loading_and_analysisexperimental
--[no]experimental_unsupported_and_brittle_include_scanning 默认值:“false”
是否通过解析输入文件中的 #include 行来缩小 C/C++ 编译的输入范围。这样可以减小编译输入树的大小,从而提高性能和增量。不过,它也可能会破坏 build,因为 include 扫描器并未完全实现 C 预处理器语义。特别是,它无法理解动态 #include 指令,并且会忽略预处理器条件逻辑。使用时需自行承担风险。提交的与此标志相关的任何问题都将关闭。
标记: loading_and_analysisexecutionchanges_inputsexperimental
--[no]incremental_dexing 默认值:“true”
可为每个 Jar 文件单独执行大部分 dexing 工作。
标记: affects_outputsloading_and_analysisloses_incremental_state
--[no]objc_use_dotd_pruning 默认值:“true”
如果设置,则使用 clang 发出的 .d 文件来剪除传递到 objc 编译中的输入集。
标记: changes_inputsloading_and_analysis
--[no]process_headers_in_dependencies 默认值:“false”
构建目标 //a:a 时,处理 //a:a 所依赖的所有目标中的标头(如果工具链启用了标头处理)。
标签: execution
--[no]trim_test_configuration 默认值:“true”
启用后,测试相关选项将清除到 build 的顶级以下。如果此标志处于有效状态,则无法将测试构建为非测试规则的依赖项,但对测试相关选项的更改不会导致重新分析非测试规则。
标记: loading_and_analysisloses_incremental_state
影响日志记录详细程度、格式或位置的选项:
--toolchain_resolution_debug=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths> 默认值:“-.*”
在工具链解析期间打印调试信息。该标志接受一个正则表达式,系统会根据该表达式检查工具链类型和特定目标,以确定要调试的内容。多个正则表达式可以用英文逗号分隔,然后系统会分别检查每个正则表达式。注意:此标志的输出非常复杂,可能仅对工具链解析方面的专家有用。
标记: terminal_output
用于指定或更改 Bazel 命令的通用输入(不属于其他类别)的选项:
--flag_alias=<a 'name=value' flag alias> 累积多次使用
为 Starlark 标志设置简短名称。它以“<key>=<value>”形式的单个键值对作为实参。
标签: changes_inputs
--[no]incompatible_default_to_explicit_init_py 默认值:“false”
此标志会更改默认行为,使 __init__.py 文件不再在 Python 目标的 runfiles 中自动创建。具体而言,当 py_binary 或 py_test 目标的 legacy_create_init 设置为“auto”(默认值)时,当且仅当设置了此标志时,该目标才会被视为 false。请参阅 https://github.com/bazelbuild/bazel/issues/10076。
标记: affects_outputsincompatible_change
--[no]incompatible_py2_outputs_are_suffixed 默认值:“true”
如果为 true,则在 Python 2 配置中构建的目标将显示在包含后缀“-py2”的输出根目录下,而为 Python 3 构建的目标将显示在没有 Python 相关后缀的根目录下。这意味着 `bazel-bin` 便利符号链接将指向 Python 3 目标,而不是 Python 2。如果您启用此选项,还建议您启用 `--incompatible_py3_is_default`。
标记: affects_outputsincompatible_change
--[no]incompatible_py3_is_default 默认值:“true”
如果为 true,未设置其 `python_version`(或 `default_python_version`)属性的 `py_binary` 和 `py_test` 目标将默认使用 PY3 而不是 PY2。如果您设置了此标志,还建议设置 `--incompatible_py2_outputs_are_suffixed`。
标记: loading_and_analysisaffects_outputsincompatible_change
--[no]incompatible_use_python_toolchains 默认值:“true”
如果设置为 true,可执行的原生 Python 规则将使用 Python 工具链指定的 Python 运行时,而不是旧版标志(例如 --python_top)提供的运行时。
标记: loading_and_analysisincompatible_change
--python_version=<PY2 or PY3> 默认值:请参阅说明
Python 主要版本模式,可以是 `PY2` 或 `PY3`。请注意,此标志会被 `py_binary` 和 `py_test` 目标替换(即使它们未明确指定版本),因此通常没有太多理由提供此标志。
标记: loading_and_analysisaffects_outputs
未归入其他类别的其他选项:
--[no]cache_test_results [-t] 默认值:“自动”
如果设置为“自动”,则当且仅当满足以下条件时,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_outputsloading_and_analysisexperimental
--[no]experimental_fetch_all_coverage_outputs 默认值:“false”
如果为 true,则 Bazel 在覆盖率运行期间会为每个测试提取整个覆盖率数据目录。
标记: affects_outputsloading_and_analysisexperimental
--[no]experimental_generate_llvm_lcov 默认值:“false”
如果为 true,则 clang 的覆盖率将生成 LCOV 报告。
标记: affects_outputsloading_and_analysisexperimental
--[no]experimental_j2objc_header_map 默认值:“true”
是否在 J2ObjC 转译过程中并行生成 J2ObjC 标头映射。
标签: experimental
--[no]experimental_j2objc_shorter_header_path 默认值:“false”
是否生成较短的头文件路径(使用“_ios”代替“_j2objc”)。
标记: affects_outputsexperimental
--experimental_java_classpath=<off, javabuilder, bazel or bazel_no_fallback> 默认值:“javabuilder”
为 Java 编译启用缩减的类路径。
--[no]experimental_limit_android_lint_to_android_constrained_java 默认值:“false”
无操作,仅为实现向后兼容性而保留
标记: affects_outputsexperimental
--[no]experimental_run_android_lint_on_java_rules 默认值:“false”
是否验证 java_* 来源。
标记: affects_outputsexperimental
--[no]explicit_java_test_deps 默认值:“false”
在 java_test 中明确指定对 JUnit 或 Hamcrest 的依赖项,而不是意外地从 TestRunner 的依赖项中获取。目前仅适用于 Bazel。
--host_java_launcher=<a build target label> 默认值:请参阅说明
在 build 期间执行的工具所使用的 Java 启动器。
--host_javacopt=<a string> 累积多次使用
在构建期间执行的工具时要传递给 javac 的其他选项。
--host_jvmopt=<a string> 累积多次使用
在构建期间执行的工具时,要传递给 Java 虚拟机的其他选项。这些选项将添加到每个 java_binary 目标的虚拟机启动选项中。
--[no]incompatible_check_sharding_support 默认值:“true”
如果为 true,则当测试运行程序未通过在 TEST_SHARD_STATUS_FILE 中的路径上触碰文件来表明其支持分片时,Bazel 将使分片测试失败。如果为 false,不支持分片的测试运行程序会导致所有测试在每个分片中运行。
标签: incompatible_change
--[no]incompatible_exclusive_test_sandboxed 默认值:“true”
如果为 true,则独占性测试将以沙盒策略运行。添加“local”标记以强制在本地运行独占测试
标记: incompatible_change
--[no]incompatible_strict_action_env 默认值:“false”
如果为 true,Bazel 会使用一个 PATH 具有静态值的环境,并且不会继承 LD_LIBRARY_PATH。如果您想从客户端继承特定的环境变量,请使用 --action_env=ENV_VARIABLE,但请注意,如果使用共享缓存,这样做可能会阻止跨用户缓存。
标记: loading_and_analysisincompatible_change
--j2objc_translation_flags=<comma-separated list of options> 累积多次使用
要传递给 J2ObjC 工具的其他选项。
--java_debug
使 Java 测试的 Java 虚拟机在开始测试之前等待来自符合 JDWP 标准的调试器(例如 jdb)的连接。表示 -test_output=streamed。
展开后:
  --test_arg=--wrapper_script_flag=--debug
  --test_output=streamed
  --test_strategy=exclusive
  --test_timeout=9999
  --nocache_test_results
--[no]java_deps 默认值:“true”
针对每个 Java 目标生成依赖项信息(目前为编译时类路径)。
--[no]java_header_compilation 默认值:“true”
直接从源代码编译 ijars。
--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 虚拟机的其他选项。这些选项将添加到每个 java_binary 目标的虚拟机启动选项中。
--legacy_main_dex_list_generator=<a build target label> 默认值:请参阅说明
指定用于生成类列表的二进制文件,在编译旧版 multidex 时,该列表中的类必须位于主 dex 中。
--optimizing_dexer=<a build target label> 默认值:请参阅说明
指定用于在不分片的情况下执行 dexing 的二进制文件。
--plugin=<a build target label> 累积多次使用
要在 build 中使用的插件。目前适用于 java_plugin。
--proguard_top=<a build target label> 默认值:请参阅说明
指定在构建 Java 二进制文件时用于移除代码的 ProGuard 版本。
--proto_compiler=<a build target label> 默认值:“@bazel_tools//tools/proto:protoc”
proto 编译器的标签。
标记: affects_outputsloading_and_analysis
--[no]proto_profile 默认值:“true”
是否将 profile_path 传递给 proto 编译器。
标记: affects_outputsloading_and_analysis
--proto_profile_path=<a build target label> 默认值:请参阅说明
要作为 profile_path 传递给 proto 编译器的配置文件。如果未设置,但 --proto_profile 为 true(默认值),则从 --fdo_optimize 推断路径。
标记: affects_outputsloading_and_analysis
--proto_toolchain_for_cc=<a build target label> 默认值:“@bazel_tools//tools/proto:cc_toolchain”
proto_lang_toolchain() 的标签,用于描述如何编译 C++ proto
标记: affects_outputsloading_and_analysis
--proto_toolchain_for_j2objc=<a build target label> 默认值:“@bazel_tools//tools/j2objc:j2objc_proto_toolchain”
proto_lang_toolchain() 的标签,用于描述如何编译 j2objc proto
标记: affects_outputsloading_and_analysis
--proto_toolchain_for_java=<a build target label> 默认值:“@bazel_tools//tools/proto:java_toolchain”
proto_lang_toolchain() 的标签,用于描述如何编译 Java proto
标记: affects_outputsloading_and_analysis
--proto_toolchain_for_javalite=<a build target label> 默认值:“@bazel_tools//tools/proto:javalite_toolchain”
proto_lang_toolchain() 的标签,用于描述如何编译 JavaLite proto
标记: affects_outputsloading_and_analysis
--protocopt=<a string> 累积多次使用
要传递给 protobuf 编译器的其他选项。
标签: affects_outputs
--[no]runs_per_test_detects_flakes 默认值:“false”
如果为 true,则至少有一次运行/尝试通过且至少有一次运行/尝试失败的任何分片都会获得 FLAKY 状态。
--shell_executable=<a path> 默认值:请参阅说明
供 Bazel 使用的 shell 可执行文件的绝对路径。如果未设置此变量,但在首次调用 Bazel(启动 Bazel 服务器)时设置了 BAZEL_SH 环境变量,则 Bazel 会使用该变量。如果两者均未设置,Bazel 会使用硬编码的默认路径,具体取决于其运行的操作系统(Windows:c:/msys64/usr/bin/bash.exe;FreeBSD:/usr/local/bin/bash;所有其他操作系统:/bin/bash)。请注意,使用与 bash 不兼容的 shell 可能会导致生成的二进制文件出现 build 失败或运行时失败。
标签: 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 属性,则“explicit”表示仅使用分片。“disabled”表示从不使用测试分片。“forced=k”可强制执行“k”个分片以进行测试,而无论“shard_count”BUILD 属性如何。
--tool_java_language_version=<a string> 默认值:""
用于执行构建期间所需工具的 Java 语言版本
--tool_java_runtime_version=<a string> 默认值:“remotejdk_11”
在 build 期间用于执行工具的 Java 运行时版本
--[no]use_ijars 默认值:“true”
如果启用,此选项会导致 Java 编译使用接口 jar。这会加快增量编译速度,但错误消息可能会有所不同。

构建选项

控制 build 执行的选项:
--[no]check_up_to_date 默认值:“false”
不执行 build,仅检查是否为最新版本。 如果所有目标都是最新状态,则构建会成功完成。如果需要执行任何步骤,系统会报告错误,并且构建会失败。
标签: execution
--dynamic_local_execution_delay=<an integer> 默认值:“1000”
如果在构建期间远程执行至少一次比本地执行快,本地执行应延迟多少毫秒?
标记: executionhost_machine_resource_optimizations
--dynamic_local_strategy=<a '[name=]value1[,..,valueN]' assignment> 累积多次使用
要用于指定助记符的本地策略(按顺序排列)- 系统会使用第一个适用的策略。例如,`worker,sandboxed` 会使用 worker 策略运行支持持久型工作器的操作,并使用沙盒策略运行所有其他操作。如果未提供助记符,则将策略列表用作所有助记符的后备。默认回退列表为“worker,sandboxed”,如果设置了“experimental_local_lockfree_output”,则为“worker,sandboxed,standalone”。采用 [mnemonic=]local_strategy[,local_strategy,...]
标记: executionhost_machine_resource_optimizations
--dynamic_remote_strategy=<a '[name=]value1[,..,valueN]' assignment> 累积多次使用
要用于给定助记符的远程策略(按顺序)- 系统会使用第一个适用的策略。如果未提供助记符,则将策略列表用作所有助记符的后备。默认回退列表为“remote”,因此通常无需明确设置此标志。接受 [mnemonic=]remote_strategy[,remote_strategy,...]
标记: executionhost_machine_resource_optimizations
--experimental_docker_image=<a string> 默认值:""
指定一个 Docker 映像名称(例如“ubuntu:latest”),当使用 docker 策略且操作本身在平台描述的 remote_execution_properties 中尚无 container-image 属性时,该名称应用于执行沙盒操作。此标志的值会原封不动地传递给“docker run”,因此它支持与 Docker 本身相同的语法和机制。
标签: execution
--[no]experimental_docker_use_customized_images 默认值:“true”
如果已启用,则在使用 Docker 映像之前,将当前用户的 UID 和 GID 注入到该映像中。如果您的 build / 测试依赖于用户在容器内拥有名称和主目录,则必须执行此操作。此功能默认处于开启状态,但如果您的情况不适用自动图片自定义功能,或者您知道自己不需要此功能,可以将其停用。
标签: execution
--[no]experimental_dynamic_exclude_tools 默认值:“true”
设置后,为工具构建的目标不受动态执行的影响。此类目标极不可能以增量方式构建,因此不值得花费本地周期。
标记: executionhost_machine_resource_optimizations
--experimental_dynamic_local_load_factor=<a double> 默认值:“0”
控制动态执行在本地机器上施加的负载量。此标志用于调整在动态执行中并发调度的操作数量。它基于 Blaze 认为可用的 CPU 数量,该数量可通过 --local_cpu_resources 标志进行控制。 如果此标志为 0,则所有操作都会立即在本地安排。如果 > 0,则本地调度的操作数量受可用 CPU 数量的限制。如果 < 1,则当等待调度的操作数量较多时,使用负载系数来减少本地调度的操作数量。这样可以减轻本地机器在干净构建情况下的负载,因为本地机器在这种情况下贡献不大。
标记: executionhost_machine_resource_optimizations
--experimental_dynamic_slow_remote_time=<An immutable length of time.> 默认值:“0”
如果 >0,则动态运行的操作必须先远程运行一段时间,然后我们才会优先考虑其本地执行,以避免远程超时。这可能会隐藏远程执行系统上的一些问题。在未监控远程执行问题的情况下,请勿开启此功能。
标记: executionhost_machine_resource_optimizations
--[no]experimental_enable_docker_sandbox 默认值:“false”
启用基于 Docker 的沙盒。如果未安装 Docker,此选项无效。
标签: execution
--[no]experimental_inmemory_sandbox_stashes 默认值:“false”
如果设置为 true,则会在内存中跟踪 reuse_sandbox_directories 的暂存沙盒的内容。这样可以减少重用期间所需的 I/O 量。此标志可能会缩短实际运行时间,具体取决于 build。根据 build 的不同,此标志可能会使用大量额外的内存。
标记: host_machine_resource_optimizationsexecution
--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,则在操作完成后立即删除沙盒树(导致操作完成延迟)。如果大于零,则在 build 运行时,在大小为 1 的异步线程池中执行此类树的删除操作,并在服务器空闲时将线程池大小增加到此标志指定的大小。
标记: host_machine_resource_optimizationsexecution
--experimental_sandbox_enforce_resources_regexp=<a valid Java regular expression> 默认值:""
如果为 true,则助记符与输入正则表达式匹配的操作将强制执行资源请求作为限制,从而替换 --experimental_sandbox_limits 的值(如果资源类型支持)。例如,声明 cpu:3 和 resources:memory:10 的测试将以最多 3 个 CPU 和 10 兆字节的内存运行。
标签: execution
--experimental_sandbox_limits=<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"> 累积多次使用
如果 > 0,则每个 Linux 沙盒的指定资源将限制为给定数量。需要 --incompatible_use_new_cgroup_implementation 并会替换 --experimental_sandbox_memory_limit_mb。需要 cgroups v1 或 v2,以及用户对 cgroups 目录的权限。
标记: 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 时有效。
标记: executionhost_machine_resource_optimizations
--[no]experimental_split_xml_generation 默认值:“true”
如果设置了此标志,并且测试操作未生成 test.xml 文件,则 Bazel 会使用单独的操作来生成包含测试日志的虚拟 test.xml 文件。否则,Bazel 会在测试操作中生成 test.xml。
标签: execution
--experimental_total_worker_memory_limit_mb=<an integer number of MBs, or "HOST_RAM", optionally followed by [-|*]<float>.> 默认值:“0”
如果此限制大于零,则当所有工作器的总内存用量超过此限制时,可能会终止空闲工作器。
标记: executionhost_machine_resource_optimizations
--[no]experimental_use_hermetic_linux_sandbox 默认值:“false”
如果设置为 true,则不装载根目录,仅装载通过 sandbox_add_mount_pair 提供的目录。输入文件将硬链接到沙盒,而不是从沙盒符号链接到输入文件。如果操作输入文件位于与沙盒不同的文件系统上,则会改为复制输入文件。
标签: execution
--[no]experimental_use_semaphore_for_jobs 默认值:“true”
如果设置为 true,则另外使用信号量来限制并发作业的数量。
标记: host_machine_resource_optimizationsexecution
--[no]experimental_use_windows_sandbox 默认值:“false”
使用 Windows 沙盒运行操作。如果为“是”,则通过 --experimental_windows_sandbox_path 提供的二进制文件必须有效,并且与受支持的 sandboxfs 版本相对应。如果为“自动”,则二进制文件可能缺失或不兼容。
标签: execution
--experimental_windows_sandbox_path=<a string> 默认值:“BazelSandbox.exe”
当 --experimental_use_windows_sandbox 为 true 时,要使用的 Windows 沙盒二进制文件的路径。如果是裸名称,则使用在 PATH 中找到的该名称的第一个二进制文件。
标签: execution
--experimental_worker_allowlist=<comma-separated set of options> 默认值:请参阅说明
如果非空,则仅允许使用具有指定工作器密钥助记符的持久工作器。
标记: executionhost_machine_resource_optimizations
--[no]experimental_worker_cancellation 默认值:“false”
如果启用,Bazel 可能会向支持它们的工作人员发送取消请求。
标签: execution
--experimental_worker_memory_limit_mb=<an integer number of MBs, or "HOST_RAM", optionally followed by [-|*]<float>.> 默认值:“0”
如果此限制大于零,则当工作器的内存用量超出此限制时,工作器可能会被终止。如果未与动态执行和 `--experimental_dynamic_ignore_local_signals=9` 一起使用,这可能会导致 build 崩溃。
标记: executionhost_machine_resource_optimizations
--experimental_worker_metrics_poll_interval=<An immutable length of time.> 默认值:“5s”
收集工作器指标与可能尝试逐出之间的时间间隔。出于性能方面的原因,实际值不能小于 1 秒。
标记: executionhost_machine_resource_optimizations
--[no]experimental_worker_multiplex_sandboxing 默认值:“false”
如果启用,具有“supports-multiplex-sandboxing”执行要求的复用工作器将在沙盒环境中运行,每个工作请求使用单独的沙盒目录。在动态执行策略下运行时,具有执行要求的复用工作器始终处于沙盒状态,无论此标志如何设置。
标签: execution
--[no]experimental_worker_sandbox_hardening 默认值:“false”
如果启用,则在实现允许的情况下,工作器将在强化沙盒中运行。如果启用了强化,则不同工作器的临时目录是不同的。
标签: execution
--experimental_worker_sandbox_inmemory_tracking=<a string> 累积多次使用
一种工作器密钥助记符,其沙盒目录的内容在内存中进行跟踪。这可能会以增加内存使用量为代价来提高 build 性能。仅影响沙盒工作器。可针对不同的助记符多次指定。
标签: execution
--[no]experimental_worker_strict_flagfiles 默认值:“false”
如果启用,不遵循工作器规范的工作器的操作实参将导致错误。工作器实参必须正好有一个 @flagfile 实参,且该实参位于实参列表的末尾。
标签: execution
--genrule_strategy=<comma-separated list of options> 默认值:""
指定如何执行 genrule。此标志即将被逐步淘汰。请改用 --spawn_strategy=<value> 控制所有操作,或使用 --strategy=Genrule=<value> 仅控制 genrule。
标签: execution
--[no]incompatible_sandbox_hermetic_tmp 默认值:“true”
如果设置为 true,则每个 Linux 沙盒都将有自己的专用空目录,该目录会装载为 /tmp,而不是与主机文件系统共享 /tmp。使用 --sandbox_add_mount_pair=/tmp 可在所有沙盒中继续看到主机的 /tmp。
标签: execution
--[no]incompatible_use_new_cgroup_implementation 默认值:“false”
如果为 true,则使用新的 cgroup 实现。旧版实现仅支持内存控制器,并忽略 --experimental_sandbox_limits 的值。
标签: execution
--[no]internal_spawn_scheduler 默认值:“true”
占位选项,以便我们可以在 Blaze 中判断是否启用了生成调度程序。
标记: executionhost_machine_resource_optimizations
--jobs=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5"> [-j] 默认值:“自动”
要运行的并发作业数。接受整数或关键字(“auto”“HOST_CPUS”“HOST_RAM”),可以选择后跟运算([-|*]<float>),例如:“auto”“HOST_CPUS*.5”。值必须介于 1 到 5000 之间。值高于 2500 可能会导致内存问题。“自动”会根据主机资源计算合理的默认值。
标记: host_machine_resource_optimizationsexecution
--[no]keep_going [-k] 默认值:“false”
在出错后尽可能继续。虽然无法分析失败的目标及其依赖项,但可以分析这些目标的其他前提条件。
标签: eagerness_to_exit
--loading_phase_threads=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5"> 默认值:“自动”
用于加载/分析阶段的并行线程数。接受整数或关键字(“auto”“HOST_CPUS”“HOST_RAM”),可以选择后跟运算符号([-|*]<float>),例如:“auto”“HOST_CPUS*.5”。“自动”会根据主机资源设置合理的默认值。不得少于 1。
标签: bazel_internal_configuration
--[no]reuse_sandbox_directories 默认值:“true”
如果设置为 true,则可重复使用沙盒化非 worker 执行所用的目录,以避免不必要的设置费用。
标记: host_machine_resource_optimizationsexecution
--sandbox_base=<a string> 默认值:""
允许沙盒在此路径下创建其沙盒目录。指定 tmpfs 上的路径(例如 /run/shm),以便在 build / 测试具有许多输入文件时尽可能大幅提升性能。注意:您需要在 tmpfs 上有足够的 RAM 和可用空间来存储运行操作生成的输出文件和中间文件。
标记: host_machine_resource_optimizationsexecution
--[no]sandbox_explicit_pseudoterminal 默认值:“false”
明确启用沙盒操作的伪终端创建。某些 Linux 发行版要求在沙盒内将进程的组 ID 设置为“tty”,以便伪终端正常运行。如果此标志导致问题,可以将其停用,以便使用其他群组。
标签: execution
--sandbox_tmpfs_path=<an absolute path> 累积多次使用
对于沙盒化操作,在此绝对路径上装载一个空的、可写入的目录(如果沙盒化实现支持,否则忽略)。
标记: host_machine_resource_optimizationsexecution
--[no]skip_incompatible_explicit_targets 默认值:“false”
跳过在命令行中明确列出的不兼容目标平台。默认情况下,构建此类目标会导致错误,但启用此选项后,系统会以静默方式跳过这些目标。请参阅:https://bazel.build/extending/platforms#skipping-incompatible-targets
标签: loading_and_analysis
--spawn_strategy=<comma-separated list of options> 默认值:""
指定默认情况下如何执行 spawn 操作。接受以英文逗号分隔的策略列表,优先级从高到低。对于每个操作,Bazel 会选择可以执行该操作的优先级最高的策略。默认值为“remote,worker,sandboxed,local”。如需了解详情,请访问 https://blog.bazel.build/2019/06/19/list-strategy.html。
标签: execution
--strategy=<a '[name=]value1[,..,valueN]' assignment> 累积多次使用
指定如何分发其他 spawn 操作的编译。接受以英文逗号分隔的策略列表,优先级从高到低。对于每个操作,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> 累积多次使用
替换应使用哪种 spawn 策略来执行描述与特定 regex_filter 匹配的 spawn 操作。如需详细了解 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_extra_flag=Javac=--debug)。
标记: executionhost_machine_resource_optimizations
--worker_max_instances=<[name=]value, where value is an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5"> 累积多次使用
如果使用“worker”策略,每种类型的持久性工作器可以启动多少个实例。可以指定为 [name=value],以便为每个助记符提供不同的值。此限制基于工作器密钥,这些密钥不仅根据助记符区分,还根据启动标志和环境区分,因此在某些情况下,每个助记符的工作器数量可能超出此标志指定的数量。接受整数或关键字(“auto”“HOST_CPUS”“HOST_RAM”),可以选择后跟运算([-|*]<float>),例如:“auto”“HOST_CPUS*.5”。“自动”会根据机器容量计算合理的默认值。“=value”可为未指定的助记符设置默认值。
标记: executionhost_machine_resource_optimizations
--worker_max_multiplex_instances=<[name=]value, where value is an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5"> 累积多次使用
如果使用“worker”策略和 --worker_multiplex,一个多路复用工作器进程可以并行接收多少个 WorkRequest。可以指定为 [name=value],以便为每个助记符提供不同的值。此限制基于工作器密钥,这些密钥不仅根据助记符区分,还根据启动标志和环境区分,因此在某些情况下,每个助记符的工作器数量可能超出此标志指定的数量。接受整数或关键字(“auto”“HOST_CPUS”“HOST_RAM”),可以选择后跟运算([-|*]<float>),例如:“auto”“HOST_CPUS*.5”。“自动”会根据机器容量计算合理的默认值。“=value”可为未指定的助记符设置默认值。
标记: executionhost_machine_resource_optimizations
--[no]worker_multiplex 默认值:“true”
如果已启用,工作器将使用多路复用(如果支持)。
标记: executionhost_machine_resource_optimizations
--[no]worker_quit_after_build 默认值:“false”
如果启用,所有工作器会在构建完成后退出。
标记: executionhost_machine_resource_optimizations
--[no]worker_sandboxing 默认值:“false”
如果启用,单路复用工作器将在沙盒化环境中运行。在动态执行策略下运行时,单工 worker 始终处于沙盒状态,无论此标志如何设置。
标签: execution
--[no]worker_verbose 默认值:“false”
如果启用,则在启动、关闭工作器时打印详细消息...
控制命令输出的选项:
--[no]build 默认值:“true”
执行 build;这是常规行为。指定 --nobuild 会导致 build 在执行 build 操作之前停止,如果软件包加载和分析阶段成功完成,则返回零;此模式对于测试这些阶段很有用。
标记: executionaffects_outputs
--[no]experimental_use_validation_aspect 默认值:“false”
是否使用方面运行验证操作(以便与测试并行运行)。
标记: executionaffects_outputs
--output_groups=<comma-separated list of options> 累积多次使用
以英文逗号分隔的输出组名称列表,每个名称可以选择性地添加 + 或 - 前缀。带有 + 前缀的组会添加到默认的输出组集中,而带有 - 前缀的组会从默认的输出组集中移除。如果至少有一个组未添加前缀,则系统会省略默认的一组输出组。例如,--output_groups=+foo,+bar 会构建默认集、foo 和 bar 的并集,而 --output_groups=foo,bar 会替换默认集,以便仅构建 foo 和 bar。
标记: executionaffects_outputs
--[no]run_validations 默认值:“true”
是否在 build 过程中运行验证操作。请参阅 https://bazel.build/extending/rules#validation_actions
标记: executionaffects_outputs
--serialized_frontier_profile=<a string> 默认值:""
转储序列化前沿字节的配置文件。指定输出路径。
标记: bazel_monitoring
允许用户配置预期输出(影响其值,而非存在)的选项:
--aspects=<comma-separated list of options> 累积多次使用
要应用于顶级目标的方面(以英文逗号分隔的列表)。在列表中,如果方面 some_aspect 通过 required_aspect_providers 指定了必需的方面提供程序,则在方面列表中位于 some_aspect 之前且其已公布的提供程序满足 some_aspect 的必需方面提供程序的每个方面之后,系统都会运行 some_aspect。此外,some_aspect 将在 requires 属性指定的所有必需方面运行之后运行。然后,some_aspect 将有权访问这些方面提供程序的值。<bzl-file-label>%<aspect_name>,例如“//tools:my_def.bzl%my_aspect”,其中“my_aspect”是文件 tools/my_def.bzl 中的顶级值
--bep_maximum_open_remote_upload_files=<an integer> 默认值:“-1”
在 BEP 制品上传期间允许的最大打开文件数。
标签: affects_outputs
此标志用于控制如何管理便利符号链接(构建后显示在工作区中的符号链接)。可能的值: normal(默认):系统将根据 build 确定创建或删除每种便捷符号链接。 clean:所有符号链接都将被无条件删除。 ignore:系统不会创建或清理符号链接。 log_only:生成日志消息,就像传递了“normal”一样,但实际上不执行任何文件系统操作(对工具很有用)。 请注意,只有名称由 --symlink_prefix 的当前值生成的符号链接会受到影响;如果前缀发生变化,任何预先存在的符号链接都不会受到影响。
标签: affects_outputs
此标志用于控制是否将 build eventConvenienceSymlinksIdentified 发布到 BuildEventProtocol。如果值为 true,BuildEventProtocol 将包含一个条目,其中列出了工作区中创建的所有便捷符号链接。如果为 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”
如果设置为“minimal”,则不会将任何远程构建输出下载到本地机器,本地操作所需的输出除外。如果设置为“toplevel”,则行为与“minimal”类似,但它还会将顶级目标的输出下载到本地机器。如果网络带宽是瓶颈,这两种选项都可以显著缩短构建时间。
标签: affects_outputs
创建符号链接,而不是将远程构建输出下载到本地机器。符号链接的目标可以模板字符串的形式指定。此模板字符串可能包含 {hash} 和 {size_bytes},它们分别会扩展为对象的哈希和大小(以字节为单位)。例如,这些符号链接可能指向一个 FUSE 文件系统,该文件系统会根据需要从 CAS 加载对象。
标签: affects_outputs
--remote_download_toplevel
仅将顶级目标的远程输出下载到本地机器。此标志是 --remote_download_outputs=toplevel 的别名。
展开后:
  --remote_download_outputs=toplevel

标记: affects_outputs
在 build 之后创建的任何便捷符号链接的前缀。如果省略,默认值为 build 工具的名称,后跟一个连字符。如果传递了“/”,则不会创建任何符号链接,也不会发出任何警告。警告:针对“/”的特殊功能即将被弃用;请改用 --experimental_convenience_symlinks=ignore。
标记: affects_outputs
影响 Bazel 严格执行有效 build 输入(规则定义、标志组合等)的选项:
--[no]experimental_docker_privileged 默认值:“false”
如果启用,Bazel 在运行操作时会将 --privileged 标志传递给“docker run”。您的 build 可能需要此功能,但它也可能会降低密封性。
标签: execution
无操作
标记: host_machine_resource_optimizationsexecution
--[no]incompatible_legacy_local_fallback 默认值:“false”
如果设置为 true,则启用从沙盒策略到本地策略的旧版隐式回退。此标志最终将默认设为 false,然后变为无操作。请改用 --strategy、--spawn_strategy 或 --dynamic_local_strategy 来配置回退。
标记: executionincompatible_change
--sandbox_add_mount_pair=<a single path or a 'source:target' pair> 累积多次使用
添加要在沙盒中装载的其他路径对。
标签: execution
--sandbox_block_path=<a string> 累积多次使用
对于沙盒化操作,禁止访问此路径。
标签: execution
--[no]sandbox_default_allow_network 默认值:“true”
默认允许操作进行网络访问;这可能不适用于所有沙盒实现。
标签: execution
--[no]sandbox_fake_hostname 默认值:“false”
将沙盒操作的当前主机名更改为“localhost”。
标签: execution
--[no]sandbox_fake_username 默认值:“false”
将当前用户名更改为“nobody”,以执行沙盒操作。
标签: execution
--sandbox_writable_path=<a string> 累积多次使用
对于沙盒化操作,使沙盒中的现有目录可写入(如果沙盒化实现支持,否则忽略)。
标记: execution
此选项会影响 Starlark 语言或可供 BUILD 文件、.bzl 文件或 WORKSPACE 文件访问的 build API 的语义:
--[no]incompatible_config_setting_private_default_visibility 默认值:“false”
如果 incompatible_enforce_config_setting_visibility=false,则此值为 noop。否则,如果此标志为 false,则任何没有明确 visibility 属性的 config_setting 都是 //visibility:public。如果此标志为 true,则 config_setting 遵循与其他所有规则相同的可见性逻辑。请参阅 https://github.com/bazelbuild/bazel/issues/12933。
标记: loading_and_analysisincompatible_change
--[no]incompatible_enforce_config_setting_visibility 默认值:“true”
如果为 true,则强制执行 config_setting 可见性限制。如果为 false,则每个 config_setting 对每个目标都可见。请参阅 https://github.com/bazelbuild/bazel/issues/12932。
标记: loading_and_analysisincompatible_change
--[no]incompatible_use_plus_in_repo_names 默认值:“true”
无操作。
标记: loading_and_analysis
用于控制测试环境或测试运行程序行为的选项:
--[no]check_tests_up_to_date 默认值:“false”
不运行测试,仅检查测试是否为最新版本。如果所有测试结果都是最新的,则测试成功完成。如果需要构建或执行任何测试,系统会报告错误,并且测试会失败。此选项意味着 --check_up_to_date 行为。
标签: execution
--flaky_test_attempts=<a positive integer, the string "default", or test_regex@attempts. This flag may be passed more than once> 累积多次使用
如果任何测试失败,系统将重试测试,重试次数最多为指定次数。在测试摘要中,需要多次尝试才能通过的测试会被标记为“FLAKY”。通常,指定的值只是一个整数或字符串“default”。如果为整数,则所有测试将运行最多 N 次。如果为“default”,则常规测试仅尝试一次,而明确标记为不稳定的测试(通过 flaky=1 属性)则尝试三次。替代语法:regex_filter@flaky_test_attempts。其中,flaky_test_attempts 与上文相同,regex_filter 表示包含和排除正则表达式模式的列表(另请参阅 --runs_per_test)。示例:--flaky_test_attempts=//foo/.*,-//foo/bar/.*@3 会将 //foo/ 中的所有测试(foo/bar 下的测试除外)运行 3 次,以消除不稳定情况。此选项可以多次传递。系统会优先采用最近传递的匹配实参。如果没有匹配项,行为与上述“默认”行为相同。
标签: execution
--local_test_jobs=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5"> 默认值:“自动”
要并发运行的本地测试作业数上限。接受整数或关键字(“auto”“HOST_CPUS”“HOST_RAM”),可以选择后跟运算([-|*]<float>),例如:“auto”“HOST_CPUS*.5”。0 表示本地资源将限制并发运行的本地测试作业数。将此值设置得大于 --jobs 的值是无效的。
标签: execution
--[no]test_keep_going 默认值:“true”
如果停用,任何未通过的测试都会导致整个 build 停止。默认情况下,即使某些测试未通过,也会运行所有测试。
标签: execution
--test_strategy=<a string> 默认值:""
指定运行测试时要使用的策略。
标签: execution
--test_tmpdir=<a path> 默认值:请参阅说明
指定“bazel test”要使用的基本临时目录。
触发构建时间优化的选项:
--cache_computed_file_digests=<a long integer> 默认值:“50000”
如果大于 0,则配置 Bazel 根据文件元数据在内存中缓存文件摘要,而不是在每次需要时都从磁盘重新计算摘要。将其设置为 0 可确保正确性,因为并非所有文件更改都可以从文件元数据中注意到。如果不为 0,则该数字表示要缓存的文件摘要数量,即缓存的大小。
--[no]experimental_cpu_load_scheduling 默认值:“false”
启用基于 CPU 负载的实验性本地执行调度,而不是逐个估计操作。实验性调度表明,在具有大量核心的强大机器上,大型本地 build 可带来巨大好处。建议与 --local_resources=cpu=HOST_CPUS 搭配使用
标记: execution
--experimental_dynamic_ignore_local_signals=<a comma-separated list of signal numbers> 默认值:请参阅说明
接受操作系统信号编号列表。如果动态执行的本地分支因收到上述任何信号而被终止,则允许远程分支完成执行。对于持久工作器,此设置仅影响会终止工作器进程的信号。
标签: execution
--[no]experimental_enable_skyfocus 默认值:“false”
如果为 true,则启用 --experimental_working_set 的使用,以减少增量构建的 Bazel 内存占用。此功能称为“天空对焦”。
标签: host_machine_resource_optimizations
--experimental_working_set=<comma-separated list of options> 默认值:""
Skyfocus 的工作集。以英文逗号分隔的工作区根相对路径的形式指定。这是一个有状态标志。定义工作集会将其保留以供后续调用,直到使用新集重新定义为止。
标签: host_machine_resource_optimizations
--local_cpu_resources=<an integer, or "HOST_CPUS", optionally followed by [-|*]<float>.> 默认值:“HOST_CPUS”
明确设置可供 Bazel 用于在本地执行构建操作的本地 CPU 核心总数。接受整数或“HOST_CPUS”,可选择后跟 [-|*]<float>(例如,HOST_CPUS*.5,以使用一半的可用 CPU 核心)。默认情况下,("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”,可选择性地后跟 [-|*]<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 的分配,可以选择性地后跟 [-|*]<float>(例如,memory=HOST_RAM*.5 表示使用一半的可用 RAM)。可多次使用以指定多种类型的资源。Bazel 会根据可用资源和所需资源来限制并发运行的操作。测试可以使用“resources:<resource name>:<amount>”格式的标记来声明所需的资源量。替换由 --local_{cpu|ram|extra}_resources 指定的资源。
标记: host_machine_resource_optimizations
影响日志记录详细程度、格式或位置的选项:
--build_event_upload_max_retries=<an integer> 默认值:“4”
Bazel 应重试上传 build 事件的最大次数。
标签: bazel_internal_configuration
--[no]debug_spawn_scheduler 默认值:“false”
--[no]experimental_bep_target_summary 默认值:“false”
是否发布 TargetSummary 事件。
--[no]experimental_build_event_expand_filesets 默认值:“false”
如果为 true,则在呈现输出文件时,展开 BEP 中的 Fileset。
标签: affects_outputs
如果为 true,则在呈现输出文件时,完全解析 BEP 中的相对 Fileset 符号链接。需要 --experimental_build_event_expand_filesets。
标签: affects_outputs
--experimental_build_event_output_group_mode=<an output group name followed by an OutputGroupFileMode, e.g. default=both> 累积多次使用
指定输出组的文件在 TargetComplete/AspectComplete BEP 事件中的表示方式。值是将输出组名称分配给“NAMED_SET_OF_FILES_ONLY”“INLINE_ONLY”或“BOTH”中的一个。默认值为“NAMED_SET_OF_FILES_ONLY”。如果输出组重复出现,则使用最后显示的值。默认值将覆盖工件的模式设置为 BOTH:--experimental_build_event_output_group_mode=baseline.lcov=both
标记: affects_outputs
--experimental_build_event_upload_retry_minimum_delay=<An immutable length of time.> 默认值:“1s”
BEP 上传失败时,指数退避重试的初始最短延迟时间。(指数:1.6)
标记: bazel_internal_configuration
--experimental_build_event_upload_strategy=<a string> 默认值:请参阅说明
选择如何上传 build 事件协议中引用的制品。
标签: affects_outputs
--[no]experimental_docker_verbose 默认值:“false”
如果启用,Bazel 将打印有关 Docker 沙盒策略的更详细的消息。
标签: execution
--[no]experimental_materialize_param_files_directly 默认值:“false”
如果需要将参数文件具体化,请直接写入磁盘。
标签: execution
--experimental_repository_resolved_file=<a string> 默认值:""
如果非空,则写入一个 Starlark 值,其中包含已执行的所有 Starlark 代码库规则的已解析信息。
标签: affects_outputs
--[no]experimental_run_bep_event_include_residue 默认值:“false”
是否在可能包含命令行残留的运行 build 事件中包含命令行残留。默认情况下,残余不会包含在可能包含残余的运行命令 build 事件中。
标签: affects_outputs
--experimental_skyfocus_dump_keys=<none, count or verbose> 默认值:“none”
用于调试 Skyfocus。转储聚焦的 SkyKeys(根、叶、聚焦的依赖项、聚焦的反向依赖项)。
标签: terminal_output
--[no]experimental_skyfocus_dump_post_gc_stats 默认值:“false”
用于调试 Skyfocus。如果启用,则在聚焦之前/之后触发手动 GC,以报告堆大小缩减情况。这会增加 Skyfocus 延迟时间。
标签: terminal_output
--experimental_skyfocus_handling_strategy=<strict or warn> 默认值:“strict”
Skyfocus 处理工作集之外的更改的策略。
标签: eagerness_to_exit
--[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 默认值:“false”
使用此标志可禁止在 TargetComplete 事件中生成旧版 important_outputs 字段。Bazel 到 ResultStore/BTX 集成需要 important_outputs。
标签: affects_outputs
--[no]materialize_param_files 默认值:“false”
即使使用远程操作执行,也会将中间参数文件写入输出树。在调试操作时很有用。这是由 --subcommands 和 --verbose_failures 隐含的。
标签: execution
--max_config_changes_to_show=<an integer> 默认值:“3”
如果因 build 选项发生更改而舍弃分析缓存,则显示最多指定数量的已更改选项名称。如果给定的数字为 -1,则会显示所有已更改的选项。
标签: terminal_output
--max_test_output_bytes=<an integer> 默认值:“-1”
指定在 --test_output 为“errors”或“all”时可输出的最大单次测试日志大小。有助于避免因测试输出过于嘈杂而导致输出不堪重负。测试标头包含在日志大小中。负值表示没有限制。输出要么全部成功,要么全部失败。
标记: test_runnerterminal_outputexecution
--output_filter=<a valid Java regular expression> 默认值:请参阅说明
仅显示名称与所提供的正则表达式匹配的规则的警告和操作输出。
标签: affects_outputs
--progress_report_interval=<an integer in 0-3600 range> 默认值:“0”
在报告仍在运行的作业之间等待的秒数。默认值 0 表示第一个报告将在 10 秒后打印,然后是 30 秒,之后每分钟报告一次进度。启用 --curses 后,系统会每秒报告一次进度。
标签: affects_outputs
--remote_print_execution_messages=<failure, success or all> 默认值:“failure”
选择何时打印远程执行消息。有效值为“failure”(仅在失败时打印)、“success”(仅在成功时打印)和“all”(始终打印)。
标签: terminal_output
--[no]sandbox_debug 默认值:“false”
为沙盒功能启用调试功能。这包括两点:首先,构建后沙盒根内容保持不变;其次,在执行时打印额外的调试信息。这有助于 Bazel 或 Starlark 规则的开发者调试因缺少输入文件等而导致的失败问题。
标记: terminal_output
--show_result=<an integer> 默认值:“1”
显示 build 的结果。对于每个目标,说明是否已更新到最新状态,如果已更新,则列出已构建的输出文件。打印的文件是方便复制和粘贴到 shell 以执行的字符串。 此选项需要一个整数实参,即目标数量的阈值,如果目标数量高于此阈值,则不会打印结果信息。因此,零会导致消息被抑制,而 MAX_INT 会导致始终打印结果。默认值为 1。 如果未针对目标构建任何内容,则可能会省略其结果,以使输出低于阈值。
标签: affects_outputs
--[no]subcommands [-s] 默认值:“false”
显示 build 期间执行的子命令。相关标志:--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_runnerterminal_outputexecution
--test_summary=<short, terse, detailed, none or testcase> 默认值:“short”
指定所需的测试摘要格式。有效值为“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
--target_pattern_file=<a string> 默认值:""
如果设置,build 将从此处指定的文件中读取模式,而不是从命令行读取。如果同时指定文件和命令行模式,则会出错。
标记: changes_inputs
远程缓存和执行选项:
--experimental_circuit_breaker_strategy=<failure> 默认值:请参阅说明
指定断路器要使用的策略。可用的策略为“failure”。如果选项的值无效,则行为与未设置该选项时相同。
标签: execution
--experimental_remote_cache_compression_threshold=<an integer> 默认值:“100”
使用 zstd 压缩/解压缩所需的最小 blob 大小。除非设置了 --remote_cache_compression,否则此标志无效。
--experimental_remote_cache_eviction_retries=<an integer> 默认值:“5”
如果 build 遇到暂时性远程缓存错误(否则会导致 build 失败),则重试的最大次数。例如,当制品从远程缓存中逐出时,或者在某些缓存失败情况下,就会应用此值。非零值会隐式将 --incompatible_remote_use_new_exit_code_for_lost_inputs 设置为 true。每次尝试都会生成新的调用 ID。如果您生成了调用 ID 并通过 --invocation_id 将其提供给 Bazel,则不应使用此标志。请改为设置标志 --incompatible_remote_use_new_exit_code_for_lost_inputs 并检查退出代码 39。
标签: execution
--[no]experimental_remote_cache_lease_extension 默认值:“false”
如果设为 true,Bazel 会在构建期间通过定期向远程缓存发送 `FindMissingBlobs` 调用来延长远程操作输出的租期。此频率基于 `--experimental_remote_cache_ttl` 的值。
--experimental_remote_cache_ttl=<An immutable length of time.> 默认值:“3h”
远程缓存中 blob 的保证最小 TTL(在最近通过 ActionResult 或 FindMissingBlobs 等方式引用其摘要后)。Bazel 会根据 blob 的 TTL 进行多项优化,例如,在增量构建中不会重复调用 GetActionResult。该值应略小于实际 TTL,因为服务器返回摘要与 Bazel 接收摘要之间存在时间差。
标签: execution
--experimental_remote_capture_corrupted_outputs=<a path> 默认值:请参阅说明
用于捕获损坏输出的目录的路径。
--[no]experimental_remote_discard_merkle_trees 默认值:“true”
如果设置为 true,则在调用 GetActionResult() 和 Execute() 期间,舍弃输入根的 Merkle 树和关联的输入映射的内存中副本。这会显著减少内存使用量,但确实需要 Bazel 在远程缓存未命中和重试时重新计算它们。
--experimental_remote_downloader=<a string> 默认值:请参阅说明
要用作远程下载代理的远程资产 API 端点 URI。支持的架构包括 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_downloader_propagate_credentials 默认值:“false”
是否将凭据从 netrc 和凭据帮助程序传播到远程下载器服务器。服务器实现需要支持新的 `http_header_url:<url-index>:<header-key>` 限定符,其中 `<url-index>` 是 FetchBlobRequest 的 `uris` 字段中网址的从 0 开始的位置。网址专用标头应优先于全局标头。
--[no]experimental_remote_execution_keepalive 默认值:“false”
是否为远程执行调用使用 keepalive。
--experimental_remote_failure_rate_threshold=<an integer in 0-100 range> 默认值:“10”
设置特定时间窗口内允许的失败率(以百分比表示),超过该失败率后,系统会停止调用远程缓存/执行器。默认值为 10。如果将此值设为 0,则表示没有限制。
标签: execution
--experimental_remote_failure_window_interval=<An immutable length of time.> 默认值:“60 秒”
计算远程请求失败率的时间间隔。如果值为零或负数,则失败时长将按整个执行时长计算。可以使用以下单位:天 (d)、小时 (h)、分钟 (m)、秒 (s) 和毫秒 (ms)。如果省略单位,则值默认以秒为单位。
标签: execution
--[no]experimental_remote_mark_tool_inputs 默认值:“false”
如果设置为 true,Bazel 会将输入标记为远程执行器的工具输入。这可用于实现远程持久工作器。
--[no]experimental_remote_merkle_tree_cache 默认值:“false”
如果设置为 true,则会记忆 Merkle 树计算结果,以提高远程缓存命中检查速度。缓存的内存占用空间由 --experimental_remote_merkle_tree_cache_size 控制。
--experimental_remote_merkle_tree_cache_size=<a long integer> 默认值:“1000”
要记忆的 Merkle 树的数量,以提高远程缓存命中检查速度。即使缓存会根据 Java 对软引用的处理方式自动修剪,但如果设置得过高,仍可能会出现内存不足错误。如果设置为 0,则缓存大小不受限制。最佳值因项目规模而异。默认值为 1000。
--experimental_remote_output_service=<a string> 默认值:请参阅说明
远程输出服务端点的 HOST 或 HOST:PORT。支持的架构包括 grpc、grpcs(启用 TLS 的 grpc)和 unix(本地 UNIX 套接字)。如果未提供架构,Bazel 将默认使用 grpcs。指定 grpc:// 或 unix: 架构以停用 TLS。
--experimental_remote_output_service_output_path_prefix=<a string> 默认值:""
由 --experimental_remote_output_service 管理的输出目录的内容所放置的路径。build 使用的实际输出目录将是此路径的后代,并由输出服务确定。
--[no]experimental_remote_require_cached 默认值:“false”
如果设置为 true,则强制要求缓存所有可远程运行的操作,否则构建会失败。这有助于排查不确定性问题,因为它可以检查应该缓存的操作是否实际已缓存,而不会错误地将新结果注入缓存中。
--experimental_remote_scrubbing_config=<Converts to a Scrubber> 默认值:请参阅说明
使用提供的配置文件启用远程缓存键清理功能,该文件必须是文本格式的协议缓冲区(请参阅 src/main/protobuf/remote_scrubbing.proto)。 此功能旨在促进在不同平台上执行但以同一平台为目标平台的 action 之间共享远程/磁盘缓存。应极其谨慎地使用,因为设置不当可能会导致缓存条目意外共享,并导致 build 不正确。 清理不会影响操作的执行方式,只会影响其远程/磁盘缓存键的计算方式,以便检索或存储操作结果。清理后的操作与远程执行不兼容,将始终在本地执行。 修改清理配置不会使本地文件系统或内部缓存中的输出失效;需要进行干净构建才能重新执行受影响的操作。 为了成功使用此功能,您可能需要将自定义 --host_platform 与 --experimental_platform_in_output_dir(用于规范化输出前缀)和 --incompatible_strict_action_env(用于规范化环境变量)一起设置。
--[no]guard_against_concurrent_changes 默认值:“精简版”
将其设置为“full”,以在将操作的所有输入文件上传到远程缓存之前,检查这些文件的 ctime。在某些情况下,Linux 内核可能会延迟写入文件,从而导致误报。默认值为“lite”,表示仅检查主代码库中的源文件。将其设置为“关闭”会停用所有检查。不建议这样做,因为当以源文件为输入的操作正在执行时,如果源文件发生更改,可能会污染缓存。
标签: execution
--[no]incompatible_remote_use_new_exit_code_for_lost_inputs 默认值:“true”
如果设置为 true,当远程缓存错误(包括缓存逐出)导致 build 失败时,Bazel 将使用新的退出代码 39 而不是 34。
标签: incompatible_change
--[no]remote_accept_cached 默认值:“true”
是否接受远程缓存的操作结果。
--remote_build_event_upload=<all or minimal> 默认值:“minimal”
如果设置为“all”,则 BEP 引用的所有本地输出都会上传到远程缓存。 如果设置为“minimal”,则 BEP 引用的本地输出不会上传到远程缓存,但对 BEP 的使用者重要的文件(例如测试日志和时间分析)除外。即使远程缓存中缺少文件,文件的 URI 也始终使用 bytestream:// 方案。 默认为“minimal”。
--remote_bytestream_uri_prefix=<a string> 默认值:请参阅说明
将写入 build 事件流的 bytestream:// URI 中要使用的主机名和实例名称。使用代理执行 build 时可以设置此选项,这会导致 --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_async 默认值:“true”
如果为 true,则将操作结果上传到磁盘或远程缓存将在后台进行,而不会阻止操作完成。某些操作与后台上传不兼容,即使设置了此标志,也可能仍会阻止上传。
--[no]remote_cache_compression 默认值:“false”
如果启用,则在缓存 blob 的大小至少为 --experimental_remote_cache_compression_threshold 时,使用 zstd 压缩/解压缩这些 blob。
--remote_cache_header=<a 'name=value' assignment> 累积多次使用
指定将包含在缓存请求中的标头:--remote_cache_header=Name=Value。可以通过多次指定此标志来传递多个标头。同一名称的多个值将转换为以英文逗号分隔的列表。
--remote_default_exec_properties=<a 'name=value' assignment> 累积多次使用
如果执行平台尚未设置 exec_properties,则将默认执行属性设置为用作远程执行平台。
标签: affects_outputs
--remote_default_platform_properties=<a string> 默认值:""
如果执行平台尚未设置 remote_execution_properties,则设置要为远程执行 API 设置的默认平台属性。如果选择宿主平台作为远程执行的执行平台,系统也会使用此值。
--remote_download_regex=<a valid Java regular expression> 累积多次使用
强制下载路径与此模式匹配的远程 build 输出,无论是否设置了 --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 protobuf,每条消息都以一个 varint 为前缀,用于表示后续序列化 protobuf 消息的大小,如方法 LogEntry.writeDelimitedTo(OutputStream) 所执行的那样。
--remote_header=<a 'name=value' assignment> 累积多次使用
指定将包含在请求中的标头:--remote_header=Name=Value。可以通过多次指定此标志来传递多个标头。同一名称的多个值将转换为以英文逗号分隔的列表。
--remote_instance_name=<a string> 默认值:""
要在远程执行 API 中作为 instance_name 传递的值。
--[no]remote_local_fallback 默认值:“false”
如果远程执行失败,是否回退到独立本地执行策略。
--remote_local_fallback_strategy=<a string> 默认值:“local”
已弃用。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7480。
--remote_max_connections=<an integer> 默认值:“100”
限制与远程缓存/执行器的并发连接数上限。默认情况下,值为 100。如果将此值设为 0,则表示没有限制。 对于 HTTP 远程缓存,一个 TCP 连接一次只能处理一个请求,因此 Bazel 最多可以发出 --remote_max_connections 个并发请求。对于 gRPC 远程缓存/执行器,一个 gRPC 通道通常可以处理 100 多个并发请求,因此 Bazel 可以发出大约 `--remote_max_connections * 100` 个并发请求。
标签: host_machine_resource_optimizations
--remote_proxy=<a string> 默认值:请参阅说明
通过代理连接到远程缓存。目前,此标志只能用于配置 Unix 网域套接字 (unix:/path/to/socket)。
--remote_result_cache_priority=<an integer> 默认值:“0”
要存储在远程缓存中的远程操作的相对优先级。特定优先级值的语义取决于服务器。
--remote_retries=<an integer> 默认值:“5”
重试暂时性错误的尝试次数上限。如果设置为 0,则停用重试。
--remote_retry_max_delay=<An immutable length of time.> 默认值:“5s”
远程重试尝试之间的最大退避延迟时间。可以使用以下单位:天 (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”
强制构建标记为“manual”的测试目标。系统不会处理“手动”测试。此选项会强制构建它们(但不执行)。
--build_tag_filters=<comma-separated list of options> 默认值:""
指定以英文逗号分隔的标记列表。每个标记都可以选择性地以“-”开头,以指定排除的标记。系统只会构建包含至少一个包含标记且不包含任何排除标记的目标。此选项不会影响通过“test”命令执行的测试集;这些测试集由测试过滤选项(例如“--test_tag_filters”)控制。
--[no]build_tests_only 默认值:“false”
如果指定,则只会构建 *_test 和 test_suite 规则,而忽略命令行上指定的其他目标。默认情况下,系统会构建所有请求的内容。
--combined_report=<none or lcov> 默认值:“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%,但会使后续增量 build 变慢。
--disk_cache=<a path> 默认值:请参阅说明
Bazel 可在其中读取和写入操作及操作输出的目录的路径。如果该目录不存在,系统会创建该目录。
--embed_label=<a one-line string> 默认值:""
在二进制文件中嵌入源代码控制修订版本或发布标签
--execution_log_binary_file=<a path> 默认值:请参阅说明
根据 src/main/protobuf/spawn.proto,将执行的 spawn 以长度分隔的 SpawnExec proto 记录到此文件中。建议使用 --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,将执行的 spawn 记录到此文件中,作为长度分隔的 ExecLogEntry proto。整个文件都经过 zstd 压缩。相关标志:--execution_log_binary_file(二进制 protobuf 格式;互斥)、--execution_log_json_file(文本 JSON 格式;互斥)、--subcommands(用于在终端输出中显示子命令)。
--execution_log_json_file=<a path> 默认值:请参阅说明
根据 src/main/protobuf/spawn.proto,将执行的 spawn 以 SpawnExec proto 的换行符分隔的 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,该命令将使用依赖项的任何缓存版本,如果不存在任何缓存版本,该命令将失败。
--local_termination_grace_seconds=<an integer> 默认值:“15”
因超时而终止本地进程与强制关闭本地进程之间的等待时间。
--package_path=<colon-separated list of options> 默认值:“%workspace%”
以英文冒号分隔的软件包搜索位置列表。以“%workspace%”开头的元素相对于封闭的工作区。如果省略或为空,则默认为“bazel info default-package-path”的输出。
--[no]show_loading_progress 默认值:“true”
如果启用,会导致 Bazel 打印“正在加载软件包:”消息。
--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> 默认值:""
在 build 开始时调用的命令,用于以键/值对的形式提供有关工作区的状态信息。如需了解完整规格,请参阅《用户手册》。另请参阅 tools/buildstamp/get_workspace_status 以获取示例。
控制 build 执行的选项:
是否直接进行文件系统调用来创建符号链接树,而不是委托给辅助进程。
标记: loading_and_analysisexecutionexperimental
--[no]experimental_persistent_aar_extractor 默认值:“false”
使用 worker 启用持久性 aar 提取器。
标记: executionexperimental
--[no]experimental_remotable_source_manifests 默认值:“false”
是否使源清单操作可远程执行
标记: loading_and_analysisexecutionexperimental
--[no]experimental_split_coverage_postprocessing 默认值:“false”
如果为 true,则 Bazel 将在新 spawn 中运行测试的覆盖率后处理。
标记: executionexperimental
--[no]experimental_strict_fileset_output 默认值:“false”
如果启用此选项,文件集会将所有输出制品视为常规文件。它们不会遍历目录,也不会对符号链接敏感。
标记: executionexperimental
--[no]incompatible_modify_execution_info_additive 默认值:“false”
启用后,传递多个 --modify_execution_info 标志是累加的。如果停用,则只会考虑最后一个标志。
标记: executionaffects_outputsloading_and_analysisincompatible_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'。
标记: executionaffects_outputsloading_and_analysis
--persistent_android_dex_desugar
通过使用 worker 启用持久性 Android dex 和 desugar 操作。
展开后:
  --internal_persistent_android_dex_desugar
  --strategy=Desugar=worker
  --strategy=DexBuilder=worker

标记: host_machine_resource_optimizationsexecution
--persistent_android_resource_processor
使用工作器启用持久性 Android 资源处理器。
展开后:
  --internal_persistent_busybox_tools
  --strategy=AaptPackage=worker
  --strategy=AndroidResourceParser=worker
  --strategy=AndroidResourceValidator=worker
  --strategy=AndroidResourceCompiler=worker
  --strategy=RClassGenerator=worker
  --strategy=AndroidResourceLink=worker
  --strategy=AndroidAapt2=worker
  --strategy=AndroidAssetMerger=worker
  --strategy=AndroidResourceMerger=worker
  --strategy=AndroidCompiledResourceMerger=worker
  --strategy=ManifestMerger=worker
  --strategy=AndroidManifestMerger=worker
  --strategy=Aapt2Optimize=worker
  --strategy=AARGenerator=worker
  --strategy=ProcessDatabinding=worker
  --strategy=GenerateDataBindingBaseClasses=worker

标记: host_machine_resource_optimizationsexecution
--persistent_multiplex_android_dex_desugar
通过使用 worker 启用持久的多路复用 Android dex 和 desugar 操作。
展开后:
  --persistent_android_dex_desugar
  --internal_persistent_multiplex_android_dex_desugar

标记: host_machine_resource_optimizationsexecution
--persistent_multiplex_android_resource_processor
使用工作线程启用持久复用的 Android 资源处理器。
展开后:
  --persistent_android_resource_processor
  --modify_execution_info=AaptPackage=+supports-multiplex-workers
  --modify_execution_info=AndroidResourceParser=+supports-multiplex-workers
  --modify_execution_info=AndroidResourceValidator=+supports-multiplex-workers
  --modify_execution_info=AndroidResourceCompiler=+supports-multiplex-workers
  --modify_execution_info=RClassGenerator=+supports-multiplex-workers
  --modify_execution_info=AndroidResourceLink=+supports-multiplex-workers
  --modify_execution_info=AndroidAapt2=+supports-multiplex-workers
  --modify_execution_info=AndroidAssetMerger=+supports-multiplex-workers
  --modify_execution_info=AndroidResourceMerger=+supports-multiplex-workers
  --modify_execution_info=AndroidCompiledResourceMerger=+supports-multiplex-workers
  --modify_execution_info=ManifestMerger=+supports-multiplex-workers
  --modify_execution_info=AndroidManifestMerger=+supports-multiplex-workers
  --modify_execution_info=Aapt2Optimize=+supports-multiplex-workers
  --modify_execution_info=AARGenerator=+supports-multiplex-workers

标记: host_machine_resource_optimizationsexecution
--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_optimizationsexecution
--[no]use_target_platform_for_tests 默认值:“false”
如果为 true,则 Bazel 将使用目标平台来运行测试,而不是测试执行组。
标记: execution
用于配置执行操作所用工具链的选项:
--android_compiler=<a string> 默认值:请参阅说明
Android 目标编译器。
标记: affects_outputsloading_and_analysisloses_incremental_state
--android_manifest_merger=<legacy, android or force_android> 默认值:“android”
选择要用于 android_binary 规则的清单合并器。标志,用于帮助从旧版合并器过渡到 Android 清单合并器。
标记: affects_outputsloading_and_analysisloses_incremental_state
--android_platforms=<a build target label> 默认值:""
设置 android_binary 目标使用的平台。如果指定了多个平台,则相应二进制文件为胖 APK,其中包含每个指定目标平台的原生二进制文件。
标记: changes_inputsloading_and_analysisloses_incremental_state
--apple_crosstool_top=<a build target label> 默认值:“@bazel_tools//tools/cpp:toolchain”
要在 Apple 和 Objc 规则及其依赖项中使用的交叉工具链软件包的标签。
标记: loses_incremental_statechanges_inputs
--cc_output_directory_tag=<a string> 默认值:""
指定要添加到配置目录的后缀。
标签: affects_outputs
--compiler=<a string> 默认值:请参阅说明
用于编译目标的 C++ 编译器。
标记: loading_and_analysisexecution
--coverage_output_generator=<a build target label> 默认值:“@bazel_tools//tools/test:lcov_merger”
用于后处理原始覆盖率报告的二进制文件的位置。目前,这必须是一个包含单个文件(即二进制文件)的 filegroup。默认为“//tools/test:lcov_merger”。
标记: changes_inputsaffects_outputsloading_and_analysis
--coverage_report_generator=<a build target label> 默认值:“@bazel_tools//tools/test:coverage_report_generator”
用于生成覆盖率报告的二进制文件的位置。目前,这必须是一个包含单个文件(即二进制文件)的 filegroup。默认为“//tools/test:coverage_report_generator”。
标记: changes_inputsaffects_outputsloading_and_analysis
--coverage_support=<a build target label> 默认值:“@bazel_tools//tools/test:coverage_support”
每个收集代码覆盖率的测试操作的输入中所需的支持文件的位置。默认为“//tools/test:coverage_support”。
标记: changes_inputsaffects_outputsloading_and_analysis
--custom_malloc=<a build target label> 默认值:请参阅说明
指定自定义 malloc 实现。此设置会覆盖 build 规则中的 malloc 属性。
标记: changes_inputsaffects_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_stateloading_and_analysisexecutionexperimental
--[no]experimental_prefer_mutual_xcode 默认值:“true”
如果为 true,则使用本地和远程可用的最新 Xcode。如果为 false,或者没有共同可用的版本,则使用通过 xcode-select 选择的本地 Xcode 版本。
标记: loses_incremental_stateexperimental
--extra_execution_platforms=<comma-separated list of options> 默认值:""
可作为执行平台来运行操作的平台。平台可以按确切目标指定,也可以按目标模式指定。这些平台将优先于通过 register_execution_platforms() 在 WORKSPACE 文件中声明的平台得到考虑。此选项只能设置一次;后续实例将覆盖之前的标志设置。
标签: execution
--extra_toolchains=<comma-separated list of options> 累积多次使用
在工具链解析期间要考虑的工具链规则。可以通过确切的目标或作为目标模式来指定工具链。这些工具链将优先于通过 register_toolchains() 在 WORKSPACE 文件中声明的工具链进行考虑。
标记: affects_outputschanges_inputsloading_and_analysis
--grte_top=<a label> 默认值:请参阅说明
已签入的 libc 库的标签。默认值由交叉工具链选择,您几乎不需要替换它。
标记: action_command_linesaffects_outputs
--host_compiler=<a string> 默认值:请参阅说明
空操作标志。将在未来版本中移除。
标记: loading_and_analysisexecution
--host_grte_top=<a label> 默认值:请参阅说明
如果指定,此设置会替换执行配置的 libc 顶级目录 (--grte_top)。
标记: action_command_linesaffects_outputs
--host_platform=<a build target label> 默认值:“@bazel_tools//tools:host_platform”
描述宿主系统的平台规则的标签。
标记: affects_outputschanges_inputsloading_and_analysis
--[no]incompatible_bazel_test_exec_run_under 默认值:“false”
如果启用,则“bazel test --run_under=//:runner”会在执行配置中构建“//:runner”。如果停用,则在目标配置中构建“//:runner”。Bazel 在执行机器上执行测试,因此前者更正确。这不会影响“bazel run”,后者始终在目标配置中构建“--run_under=//foo”。
标记: affects_outputsincompatible_change
--[no]incompatible_dont_enable_host_nonhost_crosstool_features 默认值:“true”
如果为 true,Bazel 将不会在 C++ 工具链中启用“host”和“nonhost”功能(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7407)。
标记: loading_and_analysisincompatible_change
--[no]incompatible_enable_apple_toolchain_resolution 默认值:“false”
使用工具链解析来选择 Apple 规则(Starlark 和原生)的 Apple SDK
标记: loading_and_analysisincompatible_change
--[no]incompatible_remove_legacy_whole_archive 默认值:“true”
如果为 true,Bazel 默认不会将库依赖项作为整个归档进行链接(如需迁移说明,请参阅 https://github.com/bazelbuild/bazel/issues/7362)。
标记: loading_and_analysisincompatible_change
--[no]incompatible_strip_executable_safely 默认值:“false”
如果为 true,则可执行文件的剥离操作将使用标志 -x,该标志不会中断动态符号解析。
标记: action_command_linesincompatible_change
--[no]interface_shared_objects 默认值:“true”
如果工具链支持,则使用接口共享对象。所有 ELF 工具链目前都支持此设置。
标签: loading_and_analysisaffects_outputsaffects_outputs
--ios_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
指定用于构建 iOS 应用的 iOS SDK 版本。如果未指定,则使用来自“xcode_version”的默认 iOS SDK 版本。
标签: loses_incremental_state
--macos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
指定用于构建 macOS 应用的 macOS SDK 版本。如果未指定,则使用来自“xcode_version”的默认 macOS SDK 版本。
标签: loses_incremental_state
--minimum_os_version=<a string> 默认值:请参阅说明
您的编译所针对的最低操作系统版本。
标记: loading_and_analysisaffects_outputs
--platform_mappings=<a main workspace-relative path> 默认值:""
映射文件的位置,用于描述在未设置平台时要使用哪个平台,或在平台已存在时要设置哪些标志。必须相对于主工作区根目录。默认为“platform_mappings”(工作区根目录下的一个文件)。
标记: affects_outputschanges_inputsloading_and_analysisimmutable
--platforms=<a build target label> 默认值:""
描述当前命令的目标平台的平台规则的标签。
标记: affects_outputschanges_inputsloading_and_analysis
--python_path=<a string> 默认值:请参阅说明
在目标平台上调用以运行 Python 目标的 Python 解释器的绝对路径。已弃用;已通过 --incompatible_use_python_toolchains 停用。
标记: loading_and_analysisaffects_outputs
--python_top=<a build target label> 默认值:请参阅说明
py_runtime 的标签,表示在目标平台上调用以运行 Python 目标的 Python 解释器。已弃用;已通过 --incompatible_use_python_toolchains 停用。
标记: loading_and_analysisaffects_outputs
--tvos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
指定用于构建 tvOS 应用的 tvOS SDK 版本。如果未指定,则使用来自“xcode_version”的默认 tvOS SDK 版本。
标签: loses_incremental_state
--watchos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
指定用于构建 watchOS 应用的 watchOS SDK 版本。如果未指定,则使用来自“xcode_version”的默认 watchOS SDK 版本。
标签: loses_incremental_state
--xcode_version=<a string> 默认值:请参阅说明
如果指定,则使用指定版本的 Xcode 执行相关的 build 操作。如果未指定,则使用执行器的默认 Xcode 版本。
标签: loses_incremental_state
--xcode_version_config=<a build target label> 默认值:“@bazel_tools//tools/cpp:host_xcodes”
用于在 build 配置中选择 Xcode 版本的 xcode_config 规则的标签。
标记: loses_incremental_stateloading_and_analysis
用于控制命令输出的选项:
--[no]apple_generate_dsym 默认值:“false”
是否生成调试符号 (.dSYM) 文件。
标记: affects_outputsaction_command_lines
如果为 true,则为所有目标构建 runfiles 符号链接森林。如果为 false,则仅在本地操作、测试或运行命令需要时写入它们。
标签: affects_outputs
--[no]build_runfile_manifests 默认值:“true”
如果为 true,则为所有目标写入 runfiles 清单。如果为 false,则省略这些参数。如果为 false,本地测试将无法运行。
标签: affects_outputs
--[no]build_test_dwp 默认值:“false”
如果启用,在静态构建 C++ 测试并使用 fission 时,系统也会自动构建测试二进制文件的 .dwp 文件。
标记: loading_and_analysisaffects_outputs
--cc_proto_library_header_suffixes=<comma-separated set of options> 默认值:“.pb.h”
设置 cc_proto_library 创建的头文件的后缀。
标记: affects_outputsloading_and_analysis
--cc_proto_library_source_suffixes=<comma-separated set of options> 默认值:“.pb.cc”
设置 cc_proto_library 创建的源文件的后缀。
标记: affects_outputsloading_and_analysis
--[no]experimental_proto_descriptor_sets_include_source_info 默认值:“false”
在 proto_library 中针对备用 Java API 版本运行额外的操作。
标记: affects_outputsloading_and_analysisexperimental
--[no]experimental_save_feature_state 默认值:“false”
将已启用和已请求的功能的状态保存为编译的输出。
标记: affects_outputsexperimental
--fission=<a set of compilation modes> 默认值:“否”
指定哪些编译模式使用 fission 进行 C++ 编译和链接。可以是 {'fastbuild', 'dbg', 'opt'} 的任意组合,也可以是特殊值“yes”(启用所有模式)和“no”(停用所有模式)。
标记: loading_and_analysisaction_command_linesaffects_outputs
--[no]incompatible_always_include_files_in_data 默认值:“true”
如果为 true,原生规则会将数据依赖项的 <code>DefaultInfo.files</code> 添加到其 runfiles 中,这与 Starlark 规则的推荐行为一致 (https://bazel.build/extending/rules#runfiles_features_to_avoid)。
标记: affects_outputsincompatible_change
--[no]legacy_external_runfiles 默认值:“false”
如果为 true,则在 .runfiles/wsname/external/repo(以及 .runfiles/repo)下为外部代码库构建 runfiles 符号链接森林。
标签: affects_outputs
--[no]objc_generate_linkmap 默认值:“false”
指定是否生成 linkmap 文件。
标签: 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> 累积多次使用
指定可供具有目标配置的操作使用的一组环境变量。变量可以通过 <code>name</code> 指定,在这种情况下,值将从调用环境中获取;也可以通过 <code>name=value</code> 对指定,这样设置的值与调用环境无关。此选项可多次使用;对于同一变量给出的选项,以最新的为准;对于不同变量的选项,则会累积。 <br> 请注意,除非 <code>--incompatible_repo_env_ignores_action_env</code> 为 true,否则所有 <code>name=value</code> 对都将可供代码库规则使用。
标签: action_command_lines
--allowed_cpu_values=<comma-separated set of options> 默认值:""
--cpu 标志的允许值。
标记: changes_inputsaffects_outputs
--[no]android_databinding_use_androidx 默认值:“true”
生成与 AndroidX 兼容的数据绑定文件。这仅适用于数据绑定 v2。此标志为无操作。
标记: affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]android_databinding_use_v3_4_args 默认值:“true”
使用 3.4.0 实参的 Android 数据绑定 v2。此标志为无操作。
标记: affects_outputsloading_and_analysisloses_incremental_stateexperimental
--android_dynamic_mode=<off, default or fully> 默认值:“关闭”
确定当 cc_binary 未明确创建共享库时,Android 规则的 C++ 依赖项是否会动态链接。“default”表示 Bazel 将选择是否动态链接。“fully”表示所有库都将动态关联。“off”表示所有库都将以主要静态模式进行关联。
标记: affects_outputsloading_and_analysis
--android_manifest_merger_order=<alphabetical, alphabetical_by_configuration or dependency> 默认值:“alphabetical”
设置传递给 Android 二进制文件清单合并器的清单顺序。ALPHABETICAL 表示清单按相对于执行根目录的路径排序。ALPHABETICAL_BY_CONFIGURATION 表示清单按相对于输出目录中配置目录的路径进行排序。DEPENDENCY 表示清单的顺序为:每个库的清单位于其依赖项的清单之前。
标记: action_command_linesexecution
--[no]android_resource_shrinking 默认值:“false”
为使用 ProGuard 的 android_binary APK 启用资源缩减功能。
标记: affects_outputsloading_and_analysis
--[no]build_python_zip 默认值:“自动”
构建 Python 可执行压缩文件;在 Windows 上为 on,在其他平台上为 off
标记: affects_outputs
--catalyst_cpus=<comma-separated list of options> 累积多次使用
以英文逗号分隔的架构列表,用于构建 Apple Catalyst 二进制文件。
标记: loses_incremental_stateloading_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_outputsaction_command_lines
--conlyopt=<a string> 累积多次使用
编译 C 源文件时要传递给 gcc 的其他选项。
标记: action_command_linesaffects_outputs
--copt=<a string> 累积多次使用
要传递给 gcc 的其他选项。
标记: action_command_linesaffects_outputs
--cpu=<a string> 默认值:""
目标 CPU。
标记: changes_inputsaffects_outputs
--cs_fdo_absolute_path=<a string> 默认值:请参阅说明
使用 CSFDO 配置文件信息来优化编译。指定包含配置文件(原始或已编入索引的 LLVM 配置文件)的 ZIP 文件的绝对路径名。
标签: affects_outputs
--cs_fdo_instrument=<a string> 默认值:请参阅说明
生成具有上下文相关 FDO 检测功能的二进制文件。使用 Clang/LLVM 编译器时,它还接受将在运行时转储原始配置文件的目录名称。
标签: affects_outputs
--cs_fdo_profile=<a build target label> 默认值:请参阅说明
表示要用于优化的上下文相关配置文件的 cs_fdo_profile。
标签: affects_outputs
--cxxopt=<a string> 累积多次使用
在编译 C++ 源文件时要传递给 gcc 的其他选项。
标记: action_command_linesaffects_outputs
--define=<a 'name=value' assignment> 累积多次使用
每个 --define 选项都指定一个 build 变量的赋值。如果某个变量有多个值,则最后一个值胜出。
标记: changes_inputsaffects_outputs
--dynamic_mode=<off, default or fully> 默认值:“default”
确定 C++ 二进制文件是否将动态链接。“default”表示 Bazel 将选择是否动态链接。“fully”表示所有库都将动态关联。“off”表示所有库都将以主要静态模式进行关联。
标记: loading_and_analysisaffects_outputs
--[no]enable_propeller_optimize_absolute_paths 默认值:“true”
如果设置,任何使用绝对路径进行螺旋桨优化的操作都会引发错误。
标签: affects_outputs
--[no]enable_remaining_fdo_absolute_paths 默认值:“true”
如果设置,则任何使用 FDO 绝对路径的行为都会引发错误。
标签: affects_outputs
--[no]enable_runfiles 默认值:“自动”
启用 runfiles 符号链接树;默认情况下,在 Windows 上处于关闭状态,在其他平台上处于开启状态。
标签: affects_outputs
--experimental_action_listener=<a build target label> 累积多次使用
已弃用,取而代之的是方面。使用 action_listener 将 extra_action 附加到现有 build 操作。
标记: executionexperimental
--[no]experimental_android_compress_java_resources 默认值:“false”
压缩 APK 中的 Java 资源
标记: affects_outputsloading_and_analysisexperimental
--[no]experimental_android_databinding_v2 默认值:“true”
使用 Android 数据绑定 v2。此标志为无操作。
标记: affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]experimental_android_resource_shrinking 默认值:“false”
为使用 ProGuard 的 android_binary APK 启用资源缩减功能。
标记: affects_outputsloading_and_analysisexperimental
--[no]experimental_android_rewrite_dexes_with_rex 默认值:“false”
使用 rex 工具重写 dex 文件
标记: affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]experimental_collect_code_coverage_for_generated_files 默认值:“false”
如果指定,Bazel 还会为生成的文件生成收集覆盖率信息。
标记: affects_outputsexperimental
--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_linesaffects_outputsexperimental
--experimental_output_paths=<off, content or strip> 默认值:“关闭”
用于确定在输出树中规则应将输出写入何处,尤其适用于多平台 / 多配置 build。此功能尚处于高度实验阶段。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/6526。Starlark 操作可以通过向“execution_requirements”字典添加“supports-path-mapping”键来选择启用路径映射。
标记: loses_incremental_statebazel_internal_configurationaffects_outputsexecution
--experimental_override_name_platform_in_output_dir=<a 'label=value' assignment> 累积多次使用
每个条目都应采用“标签=值”的形式,其中标签是指平台,值是指要在输出路径中使用的所需简称。仅在 --experimental_platform_in_output_dir 为 true 时使用。具有最高的命名优先级。
标记: affects_outputsexperimental
--[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_outputsexperimental
--[no]experimental_py_binaries_include_label 默认值:“false”
即使在停用戳记功能的情况下,py_binary 目标也会包含其标签。
标记: affects_outputsexperimental
--[no]experimental_use_llvm_covmap 默认值:“false”
如果指定,当 collect_code_coverage 处于启用状态时,Bazel 将生成 llvm-cov 代码覆盖率映射信息,而不是 gcov 代码覆盖率映射信息。
标记: changes_inputsaffects_outputsloading_and_analysisexperimental
--[no]experimental_use_platforms_in_output_dir_legacy_heuristic 默认值:“true”
请仅在建议的迁移或测试策略中使用此标志。请注意,该启发式方法存在已知缺陷,建议迁移到仅依赖于 --experimental_override_name_platform_in_output_dir。
标记: affects_outputsexperimental
--fdo_instrument=<a string> 默认值:请参阅说明
生成带有 FDO 检测的二进制文件。使用 Clang/LLVM 编译器时,它还接受将在运行时转储原始配置文件的目录名称。
标签: affects_outputs
--fdo_optimize=<a string> 默认值:请参阅说明
使用 FDO 配置文件信息来优化编译。指定包含 .gcda 文件树、包含自动配置文件的 AFDO 文件或 LLVM 配置文件在内的 ZIP 文件的名称。此标志还接受指定为标签的文件(例如 `//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> 累积多次使用
对于在目标配置中构建的目标,给定的功能将默认处于启用或停用状态。指定 -<功能> 将停用相应功能。否定功能始终会覆盖肯定功能。另请参阅 --host_features
标记: changes_inputsaffects_outputs
--[no]force_pic 默认值:“false”
如果启用,所有 C++ 编译都会生成位置无关代码 (-fPIC),链接会优先选择 PIC 预构建库而非非 PIC 库,并且链接会生成位置无关可执行文件 (-pie)。
标记: loading_and_analysisaffects_outputs
--host_action_env=<a 'name=value' assignment with an optional value part> 累积多次使用
指定可供具有执行配置的操作使用的一组环境变量。变量可以通过名称指定(在这种情况下,系统会从调用环境中获取值),也可以通过 name=value 对指定(这样会独立于调用环境设置值)。此选项可多次使用;对于同一变量给出的选项,以最新的为准;对于不同变量的选项,则会累积。
标签: action_command_lines
--host_compilation_mode=<fastbuild, dbg or opt> 默认值:“opt”
指定 build 期间使用的工具将以何种模式构建。值:“fastbuild”“dbg”“opt”。
标记: affects_outputsaction_command_lines
--host_conlyopt=<a string> 累积多次使用
在执行配置中编译 C(而非 C++)源文件时要传递给 C 编译器的其他选项。
标记: action_command_linesaffects_outputs
--host_copt=<a string> 累积多次使用
要传递给 C 编译器(针对在执行配置中构建的工具)的其他选项。
标记: action_command_linesaffects_outputs
--host_cpu=<a string> 默认值:""
主机 CPU。
标记: changes_inputsaffects_outputs
--host_cxxopt=<a string> 累积多次使用
要传递给 C++ 编译器的其他选项,用于在执行配置中构建的工具。
标记: action_command_linesaffects_outputs
--host_features=<a string> 累积多次使用
对于在执行配置中构建的目标,给定的功能将默认处于启用或停用状态。指定 -<功能> 将停用相应功能。负特征始终会覆盖正特征。
标记: changes_inputsaffects_outputs
--host_force_python=<PY2 or PY3> 默认值:请参阅说明
替换执行配置的 Python 版本。可以是“PY2”或“PY3”。
标记: loading_and_analysisaffects_outputs
--host_linkopt=<a string> 累积多次使用
在执行配置中关联工具时,传递给链接器的其他选项。
标记: action_command_linesaffects_outputs
--host_macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
主机目标的最低兼容 macOS 版本。如果未指定,则使用“macos_sdk_version”。
标签: loses_incremental_state
--host_per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options> 累积多次使用
在编译执行配置中的某些文件时,有选择性地传递给 C/C++ 编译器的其他选项。此选项可以多次传递。语法:regex_filter@option_1,option_2,...,option_n。其中,regex_filter 表示包含和排除正则表达式模式的列表(另请参阅 --instrumentation_filter)。option_1 到 option_n 表示任意命令行选项。如果某个选项包含英文逗号,则必须使用反斜杠进行转义。选项可以包含 @。系统只会使用第一个 @ 来拆分字符串。示例:--host_per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 会将 -O0 命令行选项添加到 //foo/ 中除 bar.cc 之外的所有 cc 文件的 gcc 命令行中。
标记: action_command_linesaffects_outputs
--[no]incompatible_auto_exec_groups 默认值:“false”
启用后,系统会自动为规则使用的每个工具链创建一个执行组。为此,规则需要在其操作中指定“toolchain”参数。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/17134。
标记: affects_outputsincompatible_change
--[no]incompatible_merge_genfiles_directory 默认值:“true”
如果为 true,则 genfiles 目录会折叠到 bin 目录中。
标记: affects_outputsincompatible_change
--[no]instrument_test_targets 默认值:“false”
启用覆盖率时,指定是否考虑插桩测试规则。如果设置了此标志,则会插桩由 --instrumentation_filter 包含的测试规则。否则,测试规则始终会从覆盖率检测中排除。
标签: affects_outputs
--instrumentation_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths> 默认值:“-/javatests[/:],-/test/java[/:]”
启用覆盖率后,系统只会检测名称包含在指定基于正则表达式的过滤条件中的规则。带有“-”前缀的规则会被排除。请注意,除非启用 --instrument_test_targets,否则仅对非测试规则进行检测。
标签: affects_outputs
--ios_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
目标模拟器和设备的最低兼容 iOS 版本。如果未指定,则使用“ios_sdk_version”。
标签: loses_incremental_state
--ios_multi_cpus=<comma-separated list of options> 累积多次使用
以英文逗号分隔的架构列表,用于构建 ios_application。结果是一个包含所有指定架构的通用二进制文件。
标记: loses_incremental_stateloading_and_analysis
--[no]legacy_whole_archive 默认值:“true”
已弃用,已被 --incompatible_remove_legacy_whole_archive 取代(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7362)。如果设置为开启,则对于 linkshared=True 且 linkopts 中包含 linkstatic=True 或 '-static' 的 cc_binary 规则,使用 --whole-archive。这仅是为了实现向后兼容性。更好的替代方案是在需要时使用 alwayslink=1。
标记: action_command_linesaffects_outputsdeprecated
--linkopt=<a string> 累积多次使用
链接时要传递给 gcc 的其他选项。
标记: action_command_linesaffects_outputs
--ltobackendopt=<a string> 累积多次使用
传递给 LTO 后端步骤的其他选项(在 --features=thin_lto 下)。
标记: action_command_linesaffects_outputs
--ltoindexopt=<a string> 累积多次使用
要传递给 LTO 索引步骤的其他选项(在 --features=thin_lto 下)。
标记: action_command_linesaffects_outputs
--macos_cpus=<comma-separated list of options> 累积多次使用
以英文逗号分隔的架构列表,用于构建 Apple macOS 二进制文件。
标记: loses_incremental_stateloading_and_analysis
--macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
目标的最低兼容 macOS 版本。如果未指定,则使用“macos_sdk_version”。
标签: loses_incremental_state
--memprof_profile=<a build target label> 默认值:请参阅说明
使用 memprof 配置文件。
标签: affects_outputs
--[no]objc_debug_with_GLIBCXX 默认值:“false”
如果已设置,且编译模式设置为“dbg”,则定义 GLIBCXX_DEBUG、GLIBCXX_DEBUG_PEDANTIC 和 GLIBCPP_CONCEPT_CHECKS。
标签: action_command_lines
--[no]objc_enable_binary_stripping 默认值:“false”
是否对关联的二进制文件执行符号和死代码剥离。如果同时指定了此标志和 --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_n 表示任意命令行选项。如果某个选项包含英文逗号,则必须使用反斜杠进行转义。选项可以包含 @。系统只会使用第一个 @ 来拆分字符串。示例:--per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 会将 -O0 命令行选项添加到 //foo/ 中除 bar.cc 之外的所有 cc 文件的 gcc 命令行中。
标记: action_command_linesaffects_outputs
--per_file_ltobackendopt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options> 累积多次使用
在编译某些后端对象时,有选择地传递给 LTO 后端(在 --features=thin_lto 下)的其他选项。此选项可以多次传递。语法:regex_filter@option_1,option_2,...,option_n。其中,regex_filter 表示包含和排除正则表达式模式的列表,option_1 到 option_n 表示任意命令行选项。如果某个选项包含英文逗号,则必须使用反斜杠进行转义。选项可以包含 @。系统只会使用第一个 @ 来拆分字符串。示例:--per_file_ltobackendopt=//foo/.*\.o,-//foo/bar\.o@-O0 会将 -O0 命令行选项添加到 //foo/ 中除 bar.o 以外的所有 o 文件的 LTO 后端命令行中。
标记: action_command_linesaffects_outputs
--platform_suffix=<a string> 默认值:请参阅说明
指定要添加到配置目录的后缀。
标记: loses_incremental_stateaffects_outputsloading_and_analysis
--propeller_optimize=<a build target label> 默认值:请参阅说明
使用 Propeller 配置文件信息来优化 build 目标。Propeller 配置文件必须包含至少一个文件,即 cc 配置文件和 ld 配置文件。此标志接受必须引用螺旋桨配置文件输入文件的 build 标签。例如,定义标签的 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_linesaffects_outputs
--propeller_optimize_absolute_cc_profile=<a string> 默认值:请参阅说明
Propeller 优化 build 的 cc_profile 文件的绝对路径名。
标签: affects_outputs
--propeller_optimize_absolute_ld_profile=<a string> 默认值:请参阅说明
Propeller 优化 build 的 ld_profile 文件的绝对路径名。
标签: affects_outputs
--run_under=<a prefix in front of command> 默认值:请参阅说明
在“test”和“run”命令的可执行文件之前插入的前缀。如果值为“foo -bar”,而执行命令行是“test_binary -baz”,则最终命令行是“foo -bar test_binary -baz”。这也可以是可执行目标的标签。例如:“valgrind”“strace”“strace -c”“valgrind --quiet --num-callers=20”“//package:target”“//package:target --options”。
标签: action_command_lines
--[no]share_native_deps 默认值:“true”
如果为 true,则包含相同功能的原生库将在不同目标之间共享
标记: loading_and_analysisaffects_outputs
--[no]stamp 默认值:“false”
使用日期、用户名、主机名、工作区信息等标记二进制文件。
标记: affects_outputs
--strip=<always, sometimes or never> 默认值:“sometimes”
指定是否剥离二进制文件和共享库(使用“-Wl,--strip-debug”)。默认值“sometimes”表示仅当 --compilation_mode=fastbuild 时才剥离。
标签: affects_outputs
--stripopt=<a string> 累积多次使用
生成“<name>.stripped”二进制文件时要传递给 strip 的其他选项。
标记: action_command_linesaffects_outputs
--tvos_cpus=<comma-separated list of options> 累积多次使用
以英文逗号分隔的架构列表,用于构建 Apple tvOS 二进制文件。
标记: loses_incremental_stateloading_and_analysis
--tvos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
目标模拟器和设备的最低兼容 tvOS 版本。如果未指定,则使用“tvos_sdk_version”。
标签: loses_incremental_state
--visionos_cpus=<comma-separated list of options> 累积多次使用
以英文逗号分隔的架构列表,用于构建 Apple visionOS 二进制文件。
标记: loses_incremental_stateloading_and_analysis
--watchos_cpus=<comma-separated list of options> 累积多次使用
以英文逗号分隔的架构列表,用于构建 Apple watchOS 二进制文件。
标记: loses_incremental_stateloading_and_analysis
--watchos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
目标模拟器和设备的最低兼容 watchOS 版本。如果未指定,则使用“watchos_sdk_version”。
标签: loses_incremental_state
--xbinary_fdo=<a build target label> 默认值:请参阅说明
使用 XbinaryFDO 配置文件信息来优化编译。指定默认跨二进制配置文件名称。当此选项与 --fdo_instrument/--fdo_optimize/--fdo_profile 一起使用时,这些选项始终优先,就好像从未指定 xbinary_fdo 一样。
标记: affects_outputs
影响 Bazel 严格执行有效 build 输入(规则定义、标志组合等)的选项:
--[no]check_licenses 默认值:“false”
检查依赖软件包施加的许可限制是否与正在构建的目标的分发模式冲突。默认情况下,系统不会检查许可。
标签: build_file_semantics
--[no]check_visibility 默认值:“true”
如果停用,目标依赖项中的可见性错误将降级为警告。
标签: build_file_semantics
--[no]desugar_for_android 默认值:“true”
是否在 dexing 之前对 Java 8 字节码进行 desugar 处理。
标记: affects_outputsloading_and_analysisloses_incremental_state
--[no]desugar_java8_libs 默认值:“false”
是否在面向旧版设备的应用中包含受支持的 Java 8 库。
标记: affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]enforce_constraints 默认值:“true”
检查每个目标平台兼容的环境,如果任何目标平台具有不支持相同环境的依赖项,则报告错误
标记: build_file_semantics
--[no]experimental_check_desugar_deps 默认值:“true”
是否在 Android 二进制文件级别仔细检查正确的脱糖。
标记: eagerness_to_exitloading_and_analysisexperimental
--experimental_import_deps_checking=<a string> 默认值:请参阅说明
无操作,仅为实现向后兼容性而保留
标记: loading_and_analysis
--experimental_one_version_enforcement=<off, warning or error> 默认值:“OFF”
启用后,强制执行 java_binary 规则,确保类路径上不能包含同一类文件的多个版本。此强制执行可能会导致 build 失败,也可能只会导致警告。
标签: loading_and_analysis
--experimental_strict_java_deps=<off, warn, error, strict or default> 默认值:“default”
如果为 true,则检查 Java 目标是否明确声明所有直接使用的目标作为依赖项。
标记: build_file_semanticseagerness_to_exit
--[no]incompatible_check_testonly_for_output_files 默认值:“false”
如果已启用,请通过查找生成规则的 testonly 来检查作为输出文件的前提条件目标的 testonly。这与可见性检查相匹配。
标记: build_file_semanticsincompatible_change
--[no]incompatible_check_visibility_for_toolchains 默认值:“false”
如果启用,可见性检查也适用于工具链实现。
标记: build_file_semanticsincompatible_change
--[no]incompatible_disable_native_android_rules 默认值:“false”
如果启用,则会停用对原生 Android 规则的直接使用。请使用来自 https://github.com/bazelbuild/rules_android 的 Starlark Android 规则
标记: eagerness_to_exitincompatible_change
--[no]incompatible_disable_native_apple_binary_rule 默认值:“false”
无操作。保留在此处是为了向后兼容。
标记: eagerness_to_exitincompatible_change
--[no]incompatible_python_disable_py2 默认值:“true”
如果为 true,使用 Python 2 设置会导致错误。这包括 python_version=PY2、srcs_version=PY2 和 srcs_version=PY2ONLY。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/15684。
标记: loading_and_analysisincompatible_change
--[no]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_semanticseagerness_to_exit
--strict_proto_deps=<off, warn, error, strict or default> 默认值:“error”
除非设置为 OFF,否则会检查 proto_library 目标是否明确声明了所有直接使用的目标作为依赖项。
标记: build_file_semanticseagerness_to_exitincompatible_change
--strict_public_imports=<off, warn, error, strict or default> 默认值:“关闭”
除非设置为 OFF,否则会检查 proto_library 目标是否明确声明了“import public”中使用的所有目标为已导出。
标记: build_file_semanticseagerness_to_exitincompatible_change
--[no]strict_system_includes 默认值:“false”
如果为 true,则通过系统 include 路径 (-isystem) 找到的标头也必须声明。
标记: loading_and_analysiseagerness_to_exit
--target_environment=<a build target label> 累积多次使用
声明相应 build 的目标环境。必须是对“环境”规则的标签引用。如果指定了此属性,则所有顶级目标平台都必须与此环境兼容。
标记: changes_inputs
影响 build 签名输出的选项:
--apk_signing_method=<v1, v2, v1_v2 or v4> 默认值:“v1_v2”
用于对 APK 进行签名的实现
标记: action_command_linesaffects_outputsloading_and_analysis
--[no]device_debug_entitlements 默认值:“true”
如果已设置,且编译模式不是“opt”,则 objc 应用在签名时将包含调试授权。
标签: changes_inputs
--ios_signing_cert_name=<a string> 默认值:请参阅说明
用于 iOS 签名的证书名称。如果未设置,则会回退到配置配置文件。可能是证书的钥匙串身份偏好设置,也可能是证书的公用名(子字符串),具体请参阅 codesign 的手册页(签名身份)。
标记: action_command_lines
此选项会影响 Starlark 语言或可供 BUILD 文件、.bzl 文件或 WORKSPACE 文件访问的 build API 的语义:
--[no]incompatible_disallow_legacy_py_provider 默认值:“true”
无操作,很快就会被移除。
标记: loading_and_analysisincompatible_change
--[no]incompatible_disallow_sdk_frameworks_attributes 默认值:“false”
如果为 true,则不允许在 objc_library 和 objc_import 中使用 sdk_frameworks 和 weak_sdk_frameworks 属性。
标记: build_file_semanticsincompatible_change
如果为 true,则将 objc_library 和 objc_import 中 alwayslink 属性的默认值设为 true。
标记: build_file_semanticsincompatible_change
--[no]incompatible_python_disallow_native_rules 默认值:“false”
如果为 true,则在使用内置 py_* 规则时会发生错误;而应使用 rule_python 规则。如需了解详情和迁移说明,请参阅 https://github.com/bazelbuild/bazel/issues/17773。
标记: loading_and_analysisincompatible_change
用于控制测试环境或测试运行程序行为的选项:
--[no]allow_analysis_failures 默认值:“false”
如果为 true,则规则目标的分析失败会导致目标传播包含错误说明的 AnalysisFailureInfo 实例,而不是导致 build 失败。
标记: loading_and_analysisexperimental
--analysis_testing_deps_limit=<an integer> 默认值:“2000”
通过具有 for_analysis_testing 配置转换的规则属性设置传递依赖项的最大数量。超出此限制会导致规则错误。
标签: loading_and_analysis
--[no]break_build_on_parallel_dex2oat_failure 默认值:“false”
如果为 true,dex2oat 操作失败将导致 build 中断,而不是在测试运行时执行 dex2oat。
标记: loading_and_analysisexperimental
--default_test_resources=<a resource name followed by equal and 1 float or 4 float, e.g. memory=10,30,60,100> 累积多次使用
替换测试的默认资源量。预期格式为 <resource>=<value>。如果将单个正数指定为 <value>,则该值将替换所有测试规模的默认资源。如果指定了 4 个以英文逗号分隔的数字,它们将分别替换小型、中型、大型和超大型测试规模的资源量。值也可以是 HOST_RAM/HOST_CPU,后面可以选择性地跟上 [-|*]<float>(例如,memory=HOST_RAM*.1,HOST_RAM*.2,HOST_RAM*.3,HOST_RAM*.4)。此标志指定的默认测试资源会被标记中指定的显式资源覆盖。
--[no]experimental_android_use_parallel_dex2oat 默认值:“false”
并行使用 dex2oat,以尽可能加快 android_test 的速度。
标记: loading_and_analysishost_machine_resource_optimizationsexperimental
--[no]ios_memleaks 默认值:“false”
在 ios_test 目标中启用内存泄漏检查。
标签: action_command_lines
--ios_simulator_device=<a string> 默认值:请参阅说明
在模拟器中运行 iOS 应用时要模拟的设备,例如“iPhone 6”。您可以在运行模拟器的机器上运行“xcrun simctl list devicetypes”,以获取设备列表。
标签: test_runner
--ios_simulator_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
在运行或测试时要在模拟器上运行的 iOS 版本。如果 ios_test 规则中指定了目标设备,则忽略此属性。
标签: test_runner
--runs_per_test=<a positive integer or test_regex@runs. This flag may be passed more than once> 累积多次使用
指定运行每个测试的次数。如果任何尝试因任何原因而失败,则整个测试都被视为失败。通常,指定的值只是一个整数。示例:--runs_per_test=3 将运行所有测试 3 次。替代语法:regex_filter@runs_per_test。其中,runs_per_test 表示一个整数值,regex_filter 表示包含和排除正则表达式模式的列表(另请参阅 --instrumentation_filter)。示例:--runs_per_test=//foo/.*,-//foo/bar/.*@3 会运行 //foo/ 中的所有测试(foo/bar 下的测试除外),运行次数为 3 次。此选项可以多次传递。系统会优先采用最近传递的匹配实参。如果没有任何匹配项,则测试仅运行一次。
--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 默认值:“false”
如果为 true,未声明的测试输出将归档到 zip 文件中。
标记: test_runner
触发构建时间优化的选项:
--[no]experimental_filter_library_jar_with_program_jar 默认值:“false”
过滤 ProGuard ProgramJar 以移除 LibraryJar 中也存在的任何类。
标记: action_command_linesexperimental
--[no]experimental_inmemory_dotd_files 默认值:“true”
如果启用,C++ .d 文件将直接通过内存从远程 build 节点传递,而不是写入磁盘。
标记: loading_and_analysisexecutionaffects_outputsexperimental
--[no]experimental_inmemory_jdeps_files 默认值:“true”
如果启用,从 Java 编译生成的依赖项 (.jdeps) 文件将直接通过内存从远程 build 节点传递,而不是写入磁盘。
标记: loading_and_analysisexecutionaffects_outputsexperimental
--[no]experimental_retain_test_configuration_across_testonly 默认值:“false”
启用后,--trim_test_configuration 不会针对标记为 testonly=1 的规则剪裁测试配置。此举旨在减少非测试规则依赖于 cc_test 规则时的操作冲突问题。如果 --trim_test_configuration 为 false,则无效。
标记: loading_and_analysisloses_incremental_stateexperimental
--[no]experimental_starlark_cc_import 默认值:“false”
如果启用,则可以使用 cc_import 的 Starlark 版本。
标记: loading_and_analysisexperimental
--[no]experimental_unsupported_and_brittle_include_scanning 默认值:“false”
是否通过解析输入文件中的 #include 行来缩小 C/C++ 编译的输入范围。这样可以减小编译输入树的大小,从而提高性能和增量。不过,它也可能会破坏 build,因为 include 扫描器并未完全实现 C 预处理器语义。特别是,它无法理解动态 #include 指令,并且会忽略预处理器条件逻辑。使用时需自行承担风险。提交的与此标志相关的任何问题都将关闭。
标记: loading_and_analysisexecutionchanges_inputsexperimental
--[no]incremental_dexing 默认值:“true”
可为每个 Jar 文件单独执行大部分 dexing 工作。
标记: affects_outputsloading_and_analysisloses_incremental_state
--[no]objc_use_dotd_pruning 默认值:“true”
如果设置,则使用 clang 发出的 .d 文件来剪除传递到 objc 编译中的输入集。
标记: changes_inputsloading_and_analysis
--[no]process_headers_in_dependencies 默认值:“false”
构建目标 //a:a 时,处理 //a:a 所依赖的所有目标中的标头(如果工具链启用了标头处理)。
标签: execution
--[no]trim_test_configuration 默认值:“true”
启用后,测试相关选项将清除到 build 的顶级以下。如果此标志处于有效状态,则无法将测试构建为非测试规则的依赖项,但对测试相关选项的更改不会导致重新分析非测试规则。
标记: loading_and_analysisloses_incremental_state
影响日志记录详细程度、格式或位置的选项:
--toolchain_resolution_debug=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths> 默认值:“-.*”
在工具链解析期间打印调试信息。该标志接受一个正则表达式,系统会根据该表达式检查工具链类型和特定目标,以确定要调试的内容。多个正则表达式可以用英文逗号分隔,然后系统会分别检查每个正则表达式。注意:此标志的输出非常复杂,可能仅对工具链解析方面的专家有用。
标记: terminal_output
用于指定或更改 Bazel 命令的通用输入(不属于其他类别)的选项:
--flag_alias=<a 'name=value' flag alias> 累积多次使用
为 Starlark 标志设置简短名称。它以“<key>=<value>”形式的单个键值对作为实参。
标签: changes_inputs
--[no]incompatible_default_to_explicit_init_py 默认值:“false”
此标志会更改默认行为,使 __init__.py 文件不再在 Python 目标的 runfiles 中自动创建。具体而言,当 py_binary 或 py_test 目标的 legacy_create_init 设置为“auto”(默认值)时,当且仅当设置了此标志时,该目标才会被视为 false。请参阅 https://github.com/bazelbuild/bazel/issues/10076。
标记: affects_outputsincompatible_change
--[no]incompatible_py2_outputs_are_suffixed 默认值:“true”
如果为 true,则在 Python 2 配置中构建的目标将显示在包含后缀“-py2”的输出根目录下,而为 Python 3 构建的目标将显示在没有 Python 相关后缀的根目录下。这意味着 `bazel-bin` 便利符号链接将指向 Python 3 目标,而不是 Python 2。如果您启用此选项,还建议您启用 `--incompatible_py3_is_default`。
标记: affects_outputsincompatible_change
--[no]incompatible_py3_is_default 默认值:“true”
如果为 true,未设置其 `python_version`(或 `default_python_version`)属性的 `py_binary` 和 `py_test` 目标将默认使用 PY3 而不是 PY2。如果您设置了此标志,还建议设置 `--incompatible_py2_outputs_are_suffixed`。
标记: loading_and_analysisaffects_outputsincompatible_change
--[no]incompatible_use_python_toolchains 默认值:“true”
如果设置为 true,可执行的原生 Python 规则将使用 Python 工具链指定的 Python 运行时,而不是旧版标志(例如 --python_top)提供的运行时。
标记: loading_and_analysisincompatible_change
--python_version=<PY2 or PY3> 默认值:请参阅说明
Python 主要版本模式,可以是 `PY2` 或 `PY3`。请注意,此标志会被 `py_binary` 和 `py_test` 目标替换(即使它们未明确指定版本),因此通常没有太多理由提供此标志。
标记: loading_and_analysisaffects_outputs
未归入其他类别的其他选项:
--[no]cache_test_results [-t] 默认值:“自动”
如果设置为“自动”,则当且仅当满足以下条件时,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_outputsloading_and_analysisexperimental
--[no]experimental_fetch_all_coverage_outputs 默认值:“false”
如果为 true,则 Bazel 在覆盖率运行期间会为每个测试提取整个覆盖率数据目录。
标记: affects_outputsloading_and_analysisexperimental
--[no]experimental_generate_llvm_lcov 默认值:“false”
如果为 true,则 clang 的覆盖率将生成 LCOV 报告。
标记: affects_outputsloading_and_analysisexperimental
--[no]experimental_j2objc_header_map 默认值:“true”
是否在 J2ObjC 转译过程中并行生成 J2ObjC 标头映射。
标签: experimental
--[no]experimental_j2objc_shorter_header_path 默认值:“false”
是否生成较短的头文件路径(使用“_ios”代替“_j2objc”)。
标记: affects_outputsexperimental
--experimental_java_classpath=<off, javabuilder, bazel or bazel_no_fallback> 默认值:“javabuilder”
为 Java 编译启用缩减的类路径。
--[no]experimental_limit_android_lint_to_android_constrained_java 默认值:“false”
无操作,仅为实现向后兼容性而保留
标记: affects_outputsexperimental
--[no]experimental_run_android_lint_on_java_rules 默认值:“false”
是否验证 java_* 来源。
标记: affects_outputsexperimental
--[no]explicit_java_test_deps 默认值:“false”
在 java_test 中明确指定对 JUnit 或 Hamcrest 的依赖项,而不是意外地从 TestRunner 的依赖项中获取。目前仅适用于 Bazel。
--host_java_launcher=<a build target label> 默认值:请参阅说明
在 build 期间执行的工具所使用的 Java 启动器。
--host_javacopt=<a string> 累积多次使用
在构建期间执行的工具时要传递给 javac 的其他选项。
--host_jvmopt=<a string> 累积多次使用
在构建期间执行的工具时,要传递给 Java 虚拟机的其他选项。这些选项将添加到每个 java_binary 目标的虚拟机启动选项中。
--[no]incompatible_check_sharding_support 默认值:“true”
如果为 true,则当测试运行程序未通过在 TEST_SHARD_STATUS_FILE 中的路径上触碰文件来表明其支持分片时,Bazel 将使分片测试失败。如果为 false,不支持分片的测试运行程序会导致所有测试在每个分片中运行。
标签: incompatible_change
--[no]incompatible_exclusive_test_sandboxed 默认值:“true”
如果为 true,则独占性测试将以沙盒策略运行。添加“local”标记以强制在本地运行独占测试
标记: incompatible_change
--[no]incompatible_strict_action_env 默认值:“false”
如果为 true,Bazel 会使用一个 PATH 具有静态值的环境,并且不会继承 LD_LIBRARY_PATH。如果您想从客户端继承特定的环境变量,请使用 --action_env=ENV_VARIABLE,但请注意,如果使用共享缓存,这样做可能会阻止跨用户缓存。
标记: loading_and_analysisincompatible_change
--j2objc_translation_flags=<comma-separated list of options> 累积多次使用
要传递给 J2ObjC 工具的其他选项。
--java_debug
使 Java 测试的 Java 虚拟机在开始测试之前等待来自符合 JDWP 标准的调试器(例如 jdb)的连接。表示 -test_output=streamed。
展开后:
  --test_arg=--wrapper_script_flag=--debug
  --test_output=streamed
  --test_strategy=exclusive
  --test_timeout=9999
  --nocache_test_results
--[no]java_deps 默认值:“true”
针对每个 Java 目标生成依赖项信息(目前为编译时类路径)。
--[no]java_header_compilation 默认值:“true”
直接从源代码编译 ijars。
--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 虚拟机的其他选项。这些选项将添加到每个 java_binary 目标的虚拟机启动选项中。
--legacy_main_dex_list_generator=<a build target label> 默认值:请参阅说明
指定用于生成类列表的二进制文件,在编译旧版 multidex 时,该列表中的类必须位于主 dex 中。
--optimizing_dexer=<a build target label> 默认值:请参阅说明
指定用于在不分片的情况下执行 dexing 的二进制文件。
--plugin=<a build target label> 累积多次使用
要在 build 中使用的插件。目前适用于 java_plugin。
--proguard_top=<a build target label> 默认值:请参阅说明
指定在构建 Java 二进制文件时用于移除代码的 ProGuard 版本。
--proto_compiler=<a build target label> 默认值:“@bazel_tools//tools/proto:protoc”
proto 编译器的标签。
标记: affects_outputsloading_and_analysis
--[no]proto_profile 默认值:“true”
是否将 profile_path 传递给 proto 编译器。
标记: affects_outputsloading_and_analysis
--proto_profile_path=<a build target label> 默认值:请参阅说明
要作为 profile_path 传递给 proto 编译器的配置文件。如果未设置,但 --proto_profile 为 true(默认值),则从 --fdo_optimize 推断路径。
标记: affects_outputsloading_and_analysis
--proto_toolchain_for_cc=<a build target label> 默认值:“@bazel_tools//tools/proto:cc_toolchain”
proto_lang_toolchain() 的标签,用于描述如何编译 C++ proto
标记: affects_outputsloading_and_analysis
--proto_toolchain_for_j2objc=<a build target label> 默认值:“@bazel_tools//tools/j2objc:j2objc_proto_toolchain”
proto_lang_toolchain() 的标签,用于描述如何编译 j2objc proto
标记: affects_outputsloading_and_analysis
--proto_toolchain_for_java=<a build target label> 默认值:“@bazel_tools//tools/proto:java_toolchain”
proto_lang_toolchain() 的标签,用于描述如何编译 Java proto
标记: affects_outputsloading_and_analysis
--proto_toolchain_for_javalite=<a build target label> 默认值:“@bazel_tools//tools/proto:javalite_toolchain”
proto_lang_toolchain() 的标签,用于描述如何编译 JavaLite proto
标记: affects_outputsloading_and_analysis
--protocopt=<a string> 累积多次使用
要传递给 protobuf 编译器的其他选项。
标签: affects_outputs
--[no]runs_per_test_detects_flakes 默认值:“false”
如果为 true,则至少有一次运行/尝试通过且至少有一次运行/尝试失败的任何分片都会获得 FLAKY 状态。
--shell_executable=<a path> 默认值:请参阅说明
供 Bazel 使用的 shell 可执行文件的绝对路径。如果未设置此变量,但在首次调用 Bazel(启动 Bazel 服务器)时设置了 BAZEL_SH 环境变量,则 Bazel 会使用该变量。如果两者均未设置,Bazel 会使用硬编码的默认路径,具体取决于其运行的操作系统(Windows:c:/msys64/usr/bin/bash.exe;FreeBSD:/usr/local/bin/bash;所有其他操作系统:/bin/bash)。请注意,使用与 bash 不兼容的 shell 可能会导致生成的二进制文件出现 build 失败或运行时失败。
标签: 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 属性,则“explicit”表示仅使用分片。“disabled”表示从不使用测试分片。“forced=k”可强制执行“k”个分片以进行测试,而无论“shard_count”BUILD 属性如何。
--tool_java_language_version=<a string> 默认值:""
用于执行构建期间所需工具的 Java 语言版本
--tool_java_runtime_version=<a string> 默认值:“remotejdk_11”
在 build 期间用于执行工具的 Java 运行时版本
--[no]use_ijars 默认值:“true”
如果启用,此选项会导致 Java 编译使用接口 jar。这会加快增量编译速度,但错误消息可能会有所不同。

Canonicalize-flags 选项

继承 build 中的所有选项。

用于控制命令输出的选项:
--[no]canonicalize_policy 默认值:“false”
输出扩展和过滤后的规范政策。为了保持输出的简洁性,当此选项设置为 true 时,系统将不会显示规范化的命令实参。请注意,由 --for_command 指定的命令会影响过滤后的政策,如果未指定任何命令,则默认命令为“build”。
标记: affects_outputsterminal_output
--[no]experimental_include_default_values 默认值:“true”
是否在输出中包含设置为默认值的 Starlark 选项。
标志: affects_outputsterminal_output
此选项会影响 Starlark 语言或可供 BUILD 文件、.bzl 文件或 WORKSPACE 文件访问的 build API 的语义:
--[no]incompatible_config_setting_private_default_visibility 默认值:“false”
如果 incompatible_enforce_config_setting_visibility=false,则此值为 noop。否则,如果此标志为 false,则任何没有明确 visibility 属性的 config_setting 都是 //visibility:public。如果此标志为 true,则 config_setting 遵循与其他所有规则相同的可见性逻辑。请参阅 https://github.com/bazelbuild/bazel/issues/12933。
标记: loading_and_analysisincompatible_change
--[no]incompatible_enforce_config_setting_visibility 默认值:“true”
如果为 true,则强制执行 config_setting 可见性限制。如果为 false,则每个 config_setting 对每个目标都可见。请参阅 https://github.com/bazelbuild/bazel/issues/12932。
标记: loading_and_analysisincompatible_change
--[no]incompatible_use_plus_in_repo_names 默认值:“true”
无操作。
标记: loading_and_analysis
指定或更改 Bazel 命令的通用输入(不属于其他类别)的选项:
--for_command=<a string> 默认值:“build”
应规范化选项的命令。
标记: affects_outputsterminal_output
--invocation_policy=<a string> 默认值:""
将调用政策应用于要规范化的选项。
标记: affects_outputsterminal_output
未归入其他类别的其他选项:
--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,该命令将使用依赖项的任何缓存版本,如果不存在任何缓存版本,该命令将失败。
--package_path=<colon-separated list of options> 默认值:“%workspace%”
以英文冒号分隔的软件包搜索位置列表。以“%workspace%”开头的元素相对于封闭的工作区。如果省略或为空,则默认为“bazel info default-package-path”的输出。
--[no]show_loading_progress 默认值:“true”
如果启用,会导致 Bazel 打印“正在加载软件包:”消息。

清理选项

继承 build 中的所有选项。

用于控制命令输出的选项:
--[no]async 默认值:“false”
如果为 true,则输出清理是异步的。此命令完成后,即使删除操作可能仍在后台继续进行,也可以安全地在同一客户端中执行新命令。
标签: host_machine_resource_optimizations
--[no]expunge 默认值:“false”
如果为 true,则 clean 会移除相应 bazel 实例的整个工作树,其中包括所有由 bazel 创建的临时文件和 build 输出文件,并停止正在运行的 bazel 服务器。
标签: host_machine_resource_optimizations
--expunge_async
如果指定,clean 会异步移除相应 bazel 实例的整个工作树,其中包括所有 bazel 创建的临时文件和 build 输出文件,并停止正在运行的 bazel 服务器。此命令完成后,即使删除操作可能仍在后台继续进行,也可以安全地在同一客户端中执行新命令。
展开后:
  --expunge
  --async

标记: host_machine_resource_optimizations
此选项会影响 Starlark 语言的语义或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API。:
--[no]incompatible_use_plus_in_repo_names 默认值:“true”
无操作。
标记: loading_and_analysis

配置选项

保险方案

继承自 test 的所有选项。

此选项会影响 Starlark 语言或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义:
--[no]incompatible_use_plus_in_repo_names 默认值:“true”
无操作。
标记: loading_and_analysis

Cquery 选项

继承自 test 的所有选项。

此选项会影响 Starlark 语言或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义:
--[no]incompatible_use_plus_in_repo_names 默认值:“true”
无操作。
标记: loading_and_analysis
与查询输出和语义相关的选项:
--aspect_deps=<off, conservative or precise> 默认值:“conservative”
当输出格式为 {xml,proto,record} 时,如何解决方面依赖项。“off”表示不解析任何方面依赖项;“conservative”(默认)表示添加所有已声明的方面依赖项,无论它们是否具有直接依赖项的规则类;“precise”表示仅添加那些可能处于有效状态的方面(根据直接依赖项的规则类)。请注意,精确模式需要加载其他软件包才能评估单个目标,因此比其他模式慢。另请注意,即使是精确模式也不是完全精确的:是否计算某个方面是在分析阶段决定的,而分析阶段不会在“bazel query”期间运行。
标签: build_file_semantics
--[no]consistent_labels 默认值:“false”
如果启用,每个查询命令都会发出标签,就像通过应用于 <code>Label</code> 实例的 Starlark <code>str</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_outputincompatible_change
--[no]infer_universe_scope 默认值:“false”
如果设置了此标志,但未设置 --universe_scope,则 --universe_scope 的值将被推断为查询表达式中唯一目标模式的列表。请注意,对于使用全宇宙范围函数(例如 `allrdeps`)的查询表达式,推断出的 --universe_scope 值可能不是您想要的,因此只有在您知道自己在做什么的情况下才应使用此选项。如需了解详情和查看示例,请访问 https://bazel.build/reference/query#sky-query。如果设置了 --universe_scope,则忽略此选项的值。注意:此选项仅适用于“query”(即不适用于“cquery”)。
标记: loading_and_analysis
--[no]line_terminator_null 默认值:“false”
每种格式是否以 \0 而不是换行符结尾。
标签: terminal_output
--[no]nodep_deps 默认值:“true”
如果启用,则来自“nodep”属性的依赖项将包含在查询所针对的依赖关系图中。“nodep”属性的一个常见示例是“visibility”。运行并解析 `info build-language` 的输出,以了解 build 语言中的所有“nodep”属性。
标签: build_file_semantics
--output=<a string> 默认值:“label”
应以何种格式输出 cquery 结果。cquery 允许的值包括:label、label_kind、textproto、transitions、proto、streamed_proto、jsonproto。如果您选择“过渡”,还必须指定 --transitions=(lite|full) 选项。
标签: terminal_output
--output_file=<a string> 默认值:""
指定此标志后,查询结果将直接写入此文件,并且不会向 Bazel 的标准输出流 (stdout) 打印任何内容。在基准测试中,这通常比 <code>bazel query &gt; file</code> 快。
标记: 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() 创建的可配置属性会被扁平化。对于列表类型,扁平化表示形式是一个列表,其中包含选择映射的每个值一次。标量类型会扁平化为 null。
标签: build_file_semantics
--[no]proto:include_attribute_source_aspects 默认值:“false”
使用属性的来源方面填充每个属性的 source_aspect_name proto 字段(如果属性没有来源方面,则填充空字符串)。
标签: terminal_output
--[no]proto:include_configurations 默认值:“true”
如果启用,proto 输出将包含有关配置的信息。如果停用,cquery proto 输出格式将类似于查询输出格式。
标签: affects_outputs
--[no]proto:include_synthetic_attribute_hash 默认值:“false”
是否计算并填充 $internal_attr_hash 属性。
标签: terminal_output
--[no]proto:instantiation_stack 默认值:“false”
填充每个规则的实例化调用堆栈。请注意,这需要堆栈存在
标记: terminal_output
--[no]proto:locations 默认值:“true”
:是否在 proto 输出中输出位置信息。
标签: terminal_output
--proto:output_rule_attrs=<comma-separated list of options> 默认值:“all”
以英文逗号分隔的要包含在输出中的属性列表。默认为所有属性。设置为空字符串表示不输出任何属性。此选项适用于 --output=proto。
标签: terminal_output
--[no]proto:rule_classes 默认值:“false”
填充每个规则的 rule_class_key 字段;对于具有给定 rule_class_key 的第一个规则,还要填充其 rule_class_info proto 字段。rule_class_key 字段可唯一标识规则类,而 rule_class_info 字段是 Stardoc 格式的规则类 API 定义。
标签: 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> 默认值:“关闭”
显示规则及其传递依赖项所需的配置 fragment。这有助于评估配置的目标图可以精简多少。
标签: 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 的依赖项边)通常指向在 build 期间执行的工具,而不是同一“target”程序的一部分。 Cquery:如果停用,则过滤掉所有配置的目标,这些目标从发现此配置的顶级目标交叉执行转换。这意味着,如果顶级目标位于目标配置中,则仅返回目标配置中也包含的已配置目标。如果顶级目标位于执行配置中,则仅返回执行配置的目标。此选项不会排除已解析的工具链。
标签: build_file_semantics
--transitions=<full, lite or none> 默认值:“none”
cquery 将打印过渡信息的格式。
标签: affects_outputs
--universe_scope=<comma-separated list of options> 默认值:""
以英文逗号分隔的目标模式集(加法和减法)。查询可以在指定目标传递闭包所定义的范围内执行。此选项用于 query 和 cquery 命令。 对于 cquery,此选项的输入是所有答案所构建的目标,因此此选项可能会影响配置和转换。如果未指定此选项,则顶级目标会被假定为从查询表达式解析出的目标。注意:对于 cquery,如果不指定此选项,则如果从查询表达式解析的目标无法使用顶级选项进行构建,可能会导致构建中断。
标记: loading_and_analysis
控制 build 执行的选项:
是否直接进行文件系统调用来创建符号链接树,而不是委托给辅助进程。
标记: loading_and_analysisexecutionexperimental
--[no]experimental_persistent_aar_extractor 默认值:“false”
使用 worker 启用持久性 aar 提取器。
标记: executionexperimental
--[no]experimental_remotable_source_manifests 默认值:“false”
是否使源清单操作可远程执行
标记: loading_and_analysisexecutionexperimental
--[no]experimental_split_coverage_postprocessing 默认值:“false”
如果为 true,则 Bazel 将在新 spawn 中运行测试的覆盖率后处理。
标记: executionexperimental
--[no]experimental_strict_fileset_output 默认值:“false”
如果启用此选项,文件集会将所有输出制品视为常规文件。它们不会遍历目录,也不会对符号链接敏感。
标记: executionexperimental
--[no]incompatible_modify_execution_info_additive 默认值:“false”
启用后,传递多个 --modify_execution_info 标志是累加的。如果停用,则只会考虑最后一个标志。
标记: executionaffects_outputsloading_and_analysisincompatible_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'。
标记: executionaffects_outputsloading_and_analysis
--persistent_android_dex_desugar
通过使用 worker 启用持久性 Android dex 和 desugar 操作。
展开后:
  --internal_persistent_android_dex_desugar
  --strategy=Desugar=worker
  --strategy=DexBuilder=worker

标记: host_machine_resource_optimizationsexecution
--persistent_android_resource_processor
使用工作器启用持久性 Android 资源处理器。
展开后:
  --internal_persistent_busybox_tools
  --strategy=AaptPackage=worker
  --strategy=AndroidResourceParser=worker
  --strategy=AndroidResourceValidator=worker
  --strategy=AndroidResourceCompiler=worker
  --strategy=RClassGenerator=worker
  --strategy=AndroidResourceLink=worker
  --strategy=AndroidAapt2=worker
  --strategy=AndroidAssetMerger=worker
  --strategy=AndroidResourceMerger=worker
  --strategy=AndroidCompiledResourceMerger=worker
  --strategy=ManifestMerger=worker
  --strategy=AndroidManifestMerger=worker
  --strategy=Aapt2Optimize=worker
  --strategy=AARGenerator=worker
  --strategy=ProcessDatabinding=worker
  --strategy=GenerateDataBindingBaseClasses=worker

标记: host_machine_resource_optimizationsexecution
--persistent_multiplex_android_dex_desugar
通过使用 worker 启用持久的多路复用 Android dex 和 desugar 操作。
展开后:
  --persistent_android_dex_desugar
  --internal_persistent_multiplex_android_dex_desugar

标记: host_machine_resource_optimizationsexecution
--persistent_multiplex_android_resource_processor
使用工作线程启用持久复用的 Android 资源处理器。
展开后:
  --persistent_android_resource_processor
  --modify_execution_info=AaptPackage=+supports-multiplex-workers
  --modify_execution_info=AndroidResourceParser=+supports-multiplex-workers
  --modify_execution_info=AndroidResourceValidator=+supports-multiplex-workers
  --modify_execution_info=AndroidResourceCompiler=+supports-multiplex-workers
  --modify_execution_info=RClassGenerator=+supports-multiplex-workers
  --modify_execution_info=AndroidResourceLink=+supports-multiplex-workers
  --modify_execution_info=AndroidAapt2=+supports-multiplex-workers
  --modify_execution_info=AndroidAssetMerger=+supports-multiplex-workers
  --modify_execution_info=AndroidResourceMerger=+supports-multiplex-workers
  --modify_execution_info=AndroidCompiledResourceMerger=+supports-multiplex-workers
  --modify_execution_info=ManifestMerger=+supports-multiplex-workers
  --modify_execution_info=AndroidManifestMerger=+supports-multiplex-workers
  --modify_execution_info=Aapt2Optimize=+supports-multiplex-workers
  --modify_execution_info=AARGenerator=+supports-multiplex-workers

标记: host_machine_resource_optimizationsexecution
--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_optimizationsexecution
--[no]use_target_platform_for_tests 默认值:“false”
如果为 true,则 Bazel 将使用目标平台来运行测试,而不是测试执行组。
标记: execution
用于配置执行操作所用工具链的选项:
--android_compiler=<a string> 默认值:请参阅说明
Android 目标编译器。
标记: affects_outputsloading_and_analysisloses_incremental_state
--android_manifest_merger=<legacy, android or force_android> 默认值:“android”
选择要用于 android_binary 规则的清单合并器。标志,用于帮助从旧版合并器过渡到 Android 清单合并器。
标记: affects_outputsloading_and_analysisloses_incremental_state
--android_platforms=<a build target label> 默认值:""
设置 android_binary 目标使用的平台。如果指定了多个平台,则相应二进制文件为胖 APK,其中包含每个指定目标平台的原生二进制文件。
标记: changes_inputsloading_and_analysisloses_incremental_state
--apple_crosstool_top=<a build target label> 默认值:“@bazel_tools//tools/cpp:toolchain”
要在 Apple 和 Objc 规则及其依赖项中使用的交叉工具链软件包的标签。
标记: loses_incremental_statechanges_inputs
--cc_output_directory_tag=<a string> 默认值:""
指定要添加到配置目录的后缀。
标签: affects_outputs
--compiler=<a string> 默认值:请参阅说明
用于编译目标的 C++ 编译器。
标记: loading_and_analysisexecution
--coverage_output_generator=<a build target label> 默认值:“@bazel_tools//tools/test:lcov_merger”
用于后处理原始覆盖率报告的二进制文件的位置。目前,这必须是一个包含单个文件(即二进制文件)的 filegroup。默认为“//tools/test:lcov_merger”。
标记: changes_inputsaffects_outputsloading_and_analysis
--coverage_report_generator=<a build target label> 默认值:“@bazel_tools//tools/test:coverage_report_generator”
用于生成覆盖率报告的二进制文件的位置。目前,这必须是一个包含单个文件(即二进制文件)的 filegroup。默认为“//tools/test:coverage_report_generator”。
标记: changes_inputsaffects_outputsloading_and_analysis
--coverage_support=<a build target label> 默认值:“@bazel_tools//tools/test:coverage_support”
每个收集代码覆盖率的测试操作的输入中所需的支持文件的位置。默认为“//tools/test:coverage_support”。
标记: changes_inputsaffects_outputsloading_and_analysis
--custom_malloc=<a build target label> 默认值:请参阅说明
指定自定义 malloc 实现。此设置会覆盖 build 规则中的 malloc 属性。
标记: changes_inputsaffects_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_stateloading_and_analysisexecutionexperimental
--[no]experimental_prefer_mutual_xcode 默认值:“true”
如果为 true,则使用本地和远程可用的最新 Xcode。如果为 false,或者没有共同可用的版本,则使用通过 xcode-select 选择的本地 Xcode 版本。
标记: loses_incremental_stateexperimental
--extra_execution_platforms=<comma-separated list of options> 默认值:""
可作为执行平台来运行操作的平台。平台可以按确切目标指定,也可以按目标模式指定。这些平台将优先于通过 register_execution_platforms() 在 WORKSPACE 文件中声明的平台得到考虑。此选项只能设置一次;后续实例将覆盖之前的标志设置。
标签: execution
--extra_toolchains=<comma-separated list of options> 累积多次使用
在工具链解析期间要考虑的工具链规则。可以通过确切的目标或作为目标模式来指定工具链。这些工具链将优先于通过 register_toolchains() 在 WORKSPACE 文件中声明的工具链进行考虑。
标记: affects_outputschanges_inputsloading_and_analysis
--grte_top=<a label> 默认值:请参阅说明
已签入的 libc 库的标签。默认值由交叉工具链选择,您几乎不需要替换它。
标记: action_command_linesaffects_outputs
--host_compiler=<a string> 默认值:请参阅说明
空操作标志。将在未来版本中移除。
标记: loading_and_analysisexecution
--host_grte_top=<a label> 默认值:请参阅说明
如果指定,此设置会替换执行配置的 libc 顶级目录 (--grte_top)。
标记: action_command_linesaffects_outputs
--host_platform=<a build target label> 默认值:“@bazel_tools//tools:host_platform”
描述宿主系统的平台规则的标签。
标记: affects_outputschanges_inputsloading_and_analysis
--[no]incompatible_bazel_test_exec_run_under 默认值:“false”
如果启用,则“bazel test --run_under=//:runner”会在执行配置中构建“//:runner”。如果停用,则在目标配置中构建“//:runner”。Bazel 在执行机器上执行测试,因此前者更正确。这不会影响“bazel run”,后者始终在目标配置中构建“--run_under=//foo”。
标记: affects_outputsincompatible_change
--[no]incompatible_dont_enable_host_nonhost_crosstool_features 默认值:“true”
如果为 true,Bazel 将不会在 C++ 工具链中启用“host”和“nonhost”功能(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7407)。
标记: loading_and_analysisincompatible_change
--[no]incompatible_enable_apple_toolchain_resolution 默认值:“false”
使用工具链解析来选择 Apple 规则(Starlark 和原生)的 Apple SDK
标记: loading_and_analysisincompatible_change
--[no]incompatible_remove_legacy_whole_archive 默认值:“true”
如果为 true,Bazel 默认不会将库依赖项作为整个归档进行链接(如需迁移说明,请参阅 https://github.com/bazelbuild/bazel/issues/7362)。
标记: loading_and_analysisincompatible_change
--[no]incompatible_strip_executable_safely 默认值:“false”
如果为 true,则可执行文件的剥离操作将使用标志 -x,该标志不会中断动态符号解析。
标记: action_command_linesincompatible_change
--[no]interface_shared_objects 默认值:“true”
如果工具链支持,则使用接口共享对象。所有 ELF 工具链目前都支持此设置。
标签: loading_and_analysisaffects_outputsaffects_outputs
--ios_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
指定用于构建 iOS 应用的 iOS SDK 版本。如果未指定,则使用来自“xcode_version”的默认 iOS SDK 版本。
标签: loses_incremental_state
--macos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
指定用于构建 macOS 应用的 macOS SDK 版本。如果未指定,则使用来自“xcode_version”的默认 macOS SDK 版本。
标签: loses_incremental_state
--minimum_os_version=<a string> 默认值:请参阅说明
您的编译所针对的最低操作系统版本。
标记: loading_and_analysisaffects_outputs
--platform_mappings=<a main workspace-relative path> 默认值:""
映射文件的位置,用于描述在未设置平台时要使用哪个平台,或在平台已存在时要设置哪些标志。必须相对于主工作区根目录。默认为“platform_mappings”(工作区根目录下的一个文件)。
标记: affects_outputschanges_inputsloading_and_analysisimmutable
--platforms=<a build target label> 默认值:""
描述当前命令的目标平台的平台规则的标签。
标记: affects_outputschanges_inputsloading_and_analysis
--python_path=<a string> 默认值:请参阅说明
在目标平台上调用以运行 Python 目标的 Python 解释器的绝对路径。已弃用;已通过 --incompatible_use_python_toolchains 停用。
标记: loading_and_analysisaffects_outputs
--python_top=<a build target label> 默认值:请参阅说明
py_runtime 的标签,表示在目标平台上调用以运行 Python 目标的 Python 解释器。已弃用;已通过 --incompatible_use_python_toolchains 停用。
标记: loading_and_analysisaffects_outputs
--tvos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
指定用于构建 tvOS 应用的 tvOS SDK 版本。如果未指定,则使用来自“xcode_version”的默认 tvOS SDK 版本。
标签: loses_incremental_state
--watchos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
指定用于构建 watchOS 应用的 watchOS SDK 版本。如果未指定,则使用来自“xcode_version”的默认 watchOS SDK 版本。
标签: loses_incremental_state
--xcode_version=<a string> 默认值:请参阅说明
如果指定,则使用指定版本的 Xcode 执行相关的 build 操作。如果未指定,则使用执行器的默认 Xcode 版本。
标签: loses_incremental_state
--xcode_version_config=<a build target label> 默认值:“@bazel_tools//tools/cpp:host_xcodes”
用于在 build 配置中选择 Xcode 版本的 xcode_config 规则的标签。
标记: loses_incremental_stateloading_and_analysis
用于控制命令输出的选项:
--[no]apple_generate_dsym 默认值:“false”
是否生成调试符号 (.dSYM) 文件。
标记: affects_outputsaction_command_lines
如果为 true,则为所有目标构建 runfiles 符号链接森林。如果为 false,则仅在本地操作、测试或运行命令需要时写入它们。
标签: affects_outputs
--[no]build_runfile_manifests 默认值:“true”
如果为 true,则为所有目标写入 runfiles 清单。如果为 false,则省略这些参数。如果为 false,本地测试将无法运行。
标签: affects_outputs
--[no]build_test_dwp 默认值:“false”
如果启用,在静态构建 C++ 测试并使用 fission 时,系统也会自动构建测试二进制文件的 .dwp 文件。
标记: loading_and_analysisaffects_outputs
--cc_proto_library_header_suffixes=<comma-separated set of options> 默认值:“.pb.h”
设置 cc_proto_library 创建的头文件的后缀。
标记: affects_outputsloading_and_analysis
--cc_proto_library_source_suffixes=<comma-separated set of options> 默认值:“.pb.cc”
设置 cc_proto_library 创建的源文件的后缀。
标记: affects_outputsloading_and_analysis
--[no]experimental_proto_descriptor_sets_include_source_info 默认值:“false”
在 proto_library 中针对备用 Java API 版本运行额外的操作。
标记: affects_outputsloading_and_analysisexperimental
--[no]experimental_save_feature_state 默认值:“false”
将已启用和已请求的功能的状态保存为编译的输出。
标记: affects_outputsexperimental
--fission=<a set of compilation modes> 默认值:“否”
指定哪些编译模式使用 fission 进行 C++ 编译和链接。可以是 {'fastbuild', 'dbg', 'opt'} 的任意组合,也可以是特殊值“yes”(启用所有模式)和“no”(停用所有模式)。
标记: loading_and_analysisaction_command_linesaffects_outputs
--[no]incompatible_always_include_files_in_data 默认值:“true”
如果为 true,原生规则会将数据依赖项的 <code>DefaultInfo.files</code> 添加到其 runfiles 中,这与 Starlark 规则的推荐行为一致 (https://bazel.build/extending/rules#runfiles_features_to_avoid)。
标记: affects_outputsincompatible_change
--[no]legacy_external_runfiles 默认值:“false”
如果为 true,则在 .runfiles/wsname/external/repo(以及 .runfiles/repo)下为外部代码库构建 runfiles 符号链接森林。
标签: affects_outputs
--[no]objc_generate_linkmap 默认值:“false”
指定是否生成 linkmap 文件。
标签: 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> 累积多次使用
指定可供具有目标配置的操作使用的一组环境变量。变量可以通过 <code>name</code> 指定,在这种情况下,值将从调用环境中获取;也可以通过 <code>name=value</code> 对指定,这样设置的值与调用环境无关。此选项可多次使用;对于同一变量给出的选项,以最新的为准;对于不同变量的选项,则会累积。 <br> 请注意,除非 <code>--incompatible_repo_env_ignores_action_env</code> 为 true,否则所有 <code>name=value</code> 对都将可供代码库规则使用。
标签: action_command_lines
--allowed_cpu_values=<comma-separated set of options> 默认值:""
--cpu 标志的允许值。
标记: changes_inputsaffects_outputs
--[no]android_databinding_use_androidx 默认值:“true”
生成与 AndroidX 兼容的数据绑定文件。这仅适用于数据绑定 v2。此标志为无操作。
标记: affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]android_databinding_use_v3_4_args 默认值:“true”
使用 3.4.0 实参的 Android 数据绑定 v2。此标志为无操作。
标记: affects_outputsloading_and_analysisloses_incremental_stateexperimental
--android_dynamic_mode=<off, default or fully> 默认值:“关闭”
确定当 cc_binary 未明确创建共享库时,Android 规则的 C++ 依赖项是否会动态链接。“default”表示 Bazel 将选择是否动态链接。“fully”表示所有库都将动态关联。“off”表示所有库都将以主要静态模式进行关联。
标记: affects_outputsloading_and_analysis
--android_manifest_merger_order=<alphabetical, alphabetical_by_configuration or dependency> 默认值:“alphabetical”
设置传递给 Android 二进制文件清单合并器的清单顺序。ALPHABETICAL 表示清单按相对于执行根目录的路径排序。ALPHABETICAL_BY_CONFIGURATION 表示清单按相对于输出目录中配置目录的路径进行排序。DEPENDENCY 表示清单的顺序为:每个库的清单位于其依赖项的清单之前。
标记: action_command_linesexecution
--[no]android_resource_shrinking 默认值:“false”
为使用 ProGuard 的 android_binary APK 启用资源缩减功能。
标记: affects_outputsloading_and_analysis
--[no]build_python_zip 默认值:“自动”
构建 Python 可执行压缩文件;在 Windows 上为 on,在其他平台上为 off
标记: affects_outputs
--catalyst_cpus=<comma-separated list of options> 累积多次使用
以英文逗号分隔的架构列表,用于构建 Apple Catalyst 二进制文件。
标记: loses_incremental_stateloading_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_outputsaction_command_lines
--conlyopt=<a string> 累积多次使用
编译 C 源文件时要传递给 gcc 的其他选项。
标记: action_command_linesaffects_outputs
--copt=<a string> 累积多次使用
要传递给 gcc 的其他选项。
标记: action_command_linesaffects_outputs
--cpu=<a string> 默认值:""
目标 CPU。
标记: changes_inputsaffects_outputs
--cs_fdo_absolute_path=<a string> 默认值:请参阅说明
使用 CSFDO 配置文件信息来优化编译。指定包含配置文件(原始或已编入索引的 LLVM 配置文件)的 ZIP 文件的绝对路径名。
标签: affects_outputs
--cs_fdo_instrument=<a string> 默认值:请参阅说明
生成具有上下文相关 FDO 检测功能的二进制文件。使用 Clang/LLVM 编译器时,它还接受将在运行时转储原始配置文件的目录名称。
标签: affects_outputs
--cs_fdo_profile=<a build target label> 默认值:请参阅说明
表示要用于优化的上下文相关配置文件的 cs_fdo_profile。
标签: affects_outputs
--cxxopt=<a string> 累积多次使用
在编译 C++ 源文件时要传递给 gcc 的其他选项。
标记: action_command_linesaffects_outputs
--define=<a 'name=value' assignment> 累积多次使用
每个 --define 选项都指定一个 build 变量的赋值。如果某个变量有多个值,则最后一个值胜出。
标记: changes_inputsaffects_outputs
--dynamic_mode=<off, default or fully> 默认值:“default”
确定 C++ 二进制文件是否将动态链接。“default”表示 Bazel 将选择是否动态链接。“fully”表示所有库都将动态关联。“off”表示所有库都将以主要静态模式进行关联。
标记: loading_and_analysisaffects_outputs
--[no]enable_propeller_optimize_absolute_paths 默认值:“true”
如果设置,任何使用绝对路径进行螺旋桨优化的操作都会引发错误。
标签: affects_outputs
--[no]enable_remaining_fdo_absolute_paths 默认值:“true”
如果设置,则任何使用 FDO 绝对路径的行为都会引发错误。
标签: affects_outputs
--[no]enable_runfiles 默认值:“自动”
启用 runfiles 符号链接树;默认情况下,在 Windows 上处于关闭状态,在其他平台上处于开启状态。
标签: affects_outputs
--experimental_action_listener=<a build target label> 累积多次使用
已弃用,取而代之的是方面。使用 action_listener 将 extra_action 附加到现有 build 操作。
标记: executionexperimental
--[no]experimental_android_compress_java_resources 默认值:“false”
压缩 APK 中的 Java 资源
标记: affects_outputsloading_and_analysisexperimental
--[no]experimental_android_databinding_v2 默认值:“true”
使用 Android 数据绑定 v2。此标志为无操作。
标记: affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]experimental_android_resource_shrinking 默认值:“false”
为使用 ProGuard 的 android_binary APK 启用资源缩减功能。
标记: affects_outputsloading_and_analysisexperimental
--[no]experimental_android_rewrite_dexes_with_rex 默认值:“false”
使用 rex 工具重写 dex 文件
标记: affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]experimental_collect_code_coverage_for_generated_files 默认值:“false”
如果指定,Bazel 还会为生成的文件生成收集覆盖率信息。
标记: affects_outputsexperimental
--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_linesaffects_outputsexperimental
--experimental_output_paths=<off, content or strip> 默认值:“关闭”
用于确定在输出树中规则应将输出写入何处,尤其适用于多平台 / 多配置 build。此功能尚处于高度实验阶段。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/6526。Starlark 操作可以通过向“execution_requirements”字典添加“supports-path-mapping”键来选择启用路径映射。
标记: loses_incremental_statebazel_internal_configurationaffects_outputsexecution
--experimental_override_name_platform_in_output_dir=<a 'label=value' assignment> 累积多次使用
每个条目都应采用“标签=值”的形式,其中标签是指平台,值是指要在输出路径中使用的所需简称。仅在 --experimental_platform_in_output_dir 为 true 时使用。具有最高的命名优先级。
标记: affects_outputsexperimental
--[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_outputsexperimental
--[no]experimental_py_binaries_include_label 默认值:“false”
即使在停用戳记功能的情况下,py_binary 目标也会包含其标签。
标记: affects_outputsexperimental
--[no]experimental_use_llvm_covmap 默认值:“false”
如果指定,当 collect_code_coverage 处于启用状态时,Bazel 将生成 llvm-cov 代码覆盖率映射信息,而不是 gcov 代码覆盖率映射信息。
标记: changes_inputsaffects_outputsloading_and_analysisexperimental
--[no]experimental_use_platforms_in_output_dir_legacy_heuristic 默认值:“true”
请仅在建议的迁移或测试策略中使用此标志。请注意,该启发式方法存在已知缺陷,建议迁移到仅依赖于 --experimental_override_name_platform_in_output_dir。
标记: affects_outputsexperimental
--fdo_instrument=<a string> 默认值:请参阅说明
生成带有 FDO 检测的二进制文件。使用 Clang/LLVM 编译器时,它还接受将在运行时转储原始配置文件的目录名称。
标签: affects_outputs
--fdo_optimize=<a string> 默认值:请参阅说明
使用 FDO 配置文件信息来优化编译。指定包含 .gcda 文件树、包含自动配置文件的 AFDO 文件或 LLVM 配置文件在内的 ZIP 文件的名称。此标志还接受指定为标签的文件(例如 `//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> 累积多次使用
对于在目标配置中构建的目标,给定的功能将默认处于启用或停用状态。指定 -<功能> 将停用相应功能。否定功能始终会覆盖肯定功能。另请参阅 --host_features
标记: changes_inputsaffects_outputs
--[no]force_pic 默认值:“false”
如果启用,所有 C++ 编译都会生成位置无关代码 (-fPIC),链接会优先选择 PIC 预构建库而非非 PIC 库,并且链接会生成位置无关可执行文件 (-pie)。
标记: loading_and_analysisaffects_outputs
--host_action_env=<a 'name=value' assignment with an optional value part> 累积多次使用
指定可供具有执行配置的操作使用的一组环境变量。变量可以通过名称指定(在这种情况下,系统会从调用环境中获取值),也可以通过 name=value 对指定(这样会独立于调用环境设置值)。此选项可多次使用;对于同一变量给出的选项,以最新的为准;对于不同变量的选项,则会累积。
标签: action_command_lines
--host_compilation_mode=<fastbuild, dbg or opt> 默认值:“opt”
指定 build 期间使用的工具将以何种模式构建。值:“fastbuild”“dbg”“opt”。
标记: affects_outputsaction_command_lines
--host_conlyopt=<a string> 累积多次使用
在执行配置中编译 C(而非 C++)源文件时要传递给 C 编译器的其他选项。
标记: action_command_linesaffects_outputs
--host_copt=<a string> 累积多次使用
要传递给 C 编译器(针对在执行配置中构建的工具)的其他选项。
标记: action_command_linesaffects_outputs
--host_cpu=<a string> 默认值:""
主机 CPU。
标记: changes_inputsaffects_outputs
--host_cxxopt=<a string> 累积多次使用
要传递给 C++ 编译器的其他选项,用于在执行配置中构建的工具。
标记: action_command_linesaffects_outputs
--host_features=<a string> 累积多次使用
对于在执行配置中构建的目标,给定的功能将默认处于启用或停用状态。指定 -<功能> 将停用相应功能。负特征始终会覆盖正特征。
标记: changes_inputsaffects_outputs
--host_force_python=<PY2 or PY3> 默认值:请参阅说明
替换执行配置的 Python 版本。可以是“PY2”或“PY3”。
标记: loading_and_analysisaffects_outputs
--host_linkopt=<a string> 累积多次使用
在执行配置中关联工具时,传递给链接器的其他选项。
标记: action_command_linesaffects_outputs
--host_macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
主机目标的最低兼容 macOS 版本。如果未指定,则使用“macos_sdk_version”。
标签: loses_incremental_state
--host_per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options> 累积多次使用
在编译执行配置中的某些文件时,有选择性地传递给 C/C++ 编译器的其他选项。此选项可以多次传递。语法:regex_filter@option_1,option_2,...,option_n。其中,regex_filter 表示包含和排除正则表达式模式的列表(另请参阅 --instrumentation_filter)。option_1 到 option_n 表示任意命令行选项。如果某个选项包含英文逗号,则必须使用反斜杠进行转义。选项可以包含 @。系统只会使用第一个 @ 来拆分字符串。示例:--host_per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 会将 -O0 命令行选项添加到 //foo/ 中除 bar.cc 之外的所有 cc 文件的 gcc 命令行中。
标记: action_command_linesaffects_outputs
--[no]incompatible_auto_exec_groups 默认值:“false”
启用后,系统会自动为规则使用的每个工具链创建一个执行组。为此,规则需要在其操作中指定“toolchain”参数。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/17134。
标记: affects_outputsincompatible_change
--[no]incompatible_merge_genfiles_directory 默认值:“true”
如果为 true,则 genfiles 目录会折叠到 bin 目录中。
标记: affects_outputsincompatible_change
--[no]instrument_test_targets 默认值:“false”
启用覆盖率时,指定是否考虑插桩测试规则。如果设置了此标志,则会插桩由 --instrumentation_filter 包含的测试规则。否则,测试规则始终会从覆盖率检测中排除。
标签: affects_outputs
--instrumentation_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths> 默认值:“-/javatests[/:],-/test/java[/:]”
启用覆盖率后,系统只会检测名称包含在指定基于正则表达式的过滤条件中的规则。带有“-”前缀的规则会被排除。请注意,除非启用 --instrument_test_targets,否则仅对非测试规则进行检测。
标签: affects_outputs
--ios_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
目标模拟器和设备的最低兼容 iOS 版本。如果未指定,则使用“ios_sdk_version”。
标签: loses_incremental_state
--ios_multi_cpus=<comma-separated list of options> 累积多次使用
以英文逗号分隔的架构列表,用于构建 ios_application。结果是一个包含所有指定架构的通用二进制文件。
标记: loses_incremental_stateloading_and_analysis
--[no]legacy_whole_archive 默认值:“true”
已弃用,已被 --incompatible_remove_legacy_whole_archive 取代(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7362)。如果设置为开启,则对于 linkshared=True 且 linkopts 中包含 linkstatic=True 或 '-static' 的 cc_binary 规则,使用 --whole-archive。这仅是为了实现向后兼容性。更好的替代方案是在需要时使用 alwayslink=1。
标记: action_command_linesaffects_outputsdeprecated
--linkopt=<a string> 累积多次使用
链接时要传递给 gcc 的其他选项。
标记: action_command_linesaffects_outputs
--ltobackendopt=<a string> 累积多次使用
传递给 LTO 后端步骤的其他选项(在 --features=thin_lto 下)。
标记: action_command_linesaffects_outputs
--ltoindexopt=<a string> 累积多次使用
要传递给 LTO 索引步骤的其他选项(在 --features=thin_lto 下)。
标记: action_command_linesaffects_outputs
--macos_cpus=<comma-separated list of options> 累积多次使用
以英文逗号分隔的架构列表,用于构建 Apple macOS 二进制文件。
标记: loses_incremental_stateloading_and_analysis
--macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
目标的最低兼容 macOS 版本。如果未指定,则使用“macos_sdk_version”。
标签: loses_incremental_state
--memprof_profile=<a build target label> 默认值:请参阅说明
使用 memprof 配置文件。
标签: affects_outputs
--[no]objc_debug_with_GLIBCXX 默认值:“false”
如果已设置,且编译模式设置为“dbg”,则定义 GLIBCXX_DEBUG、GLIBCXX_DEBUG_PEDANTIC 和 GLIBCPP_CONCEPT_CHECKS。
标签: action_command_lines
--[no]objc_enable_binary_stripping 默认值:“false”
是否对关联的二进制文件执行符号和死代码剥离。如果同时指定了此标志和 --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_n 表示任意命令行选项。如果某个选项包含英文逗号,则必须使用反斜杠进行转义。选项可以包含 @。系统只会使用第一个 @ 来拆分字符串。示例:--per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 会将 -O0 命令行选项添加到 //foo/ 中除 bar.cc 之外的所有 cc 文件的 gcc 命令行中。
标记: action_command_linesaffects_outputs
--per_file_ltobackendopt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options> 累积多次使用
在编译某些后端对象时,有选择地传递给 LTO 后端(在 --features=thin_lto 下)的其他选项。此选项可以多次传递。语法:regex_filter@option_1,option_2,...,option_n。其中,regex_filter 表示包含和排除正则表达式模式的列表,option_1 到 option_n 表示任意命令行选项。如果某个选项包含英文逗号,则必须使用反斜杠进行转义。选项可以包含 @。系统只会使用第一个 @ 来拆分字符串。示例:--per_file_ltobackendopt=//foo/.*\.o,-//foo/bar\.o@-O0 会将 -O0 命令行选项添加到 //foo/ 中除 bar.o 以外的所有 o 文件的 LTO 后端命令行中。
标记: action_command_linesaffects_outputs
--platform_suffix=<a string> 默认值:请参阅说明
指定要添加到配置目录的后缀。
标记: loses_incremental_stateaffects_outputsloading_and_analysis
--propeller_optimize=<a build target label> 默认值:请参阅说明
使用 Propeller 配置文件信息来优化 build 目标。Propeller 配置文件必须包含至少一个文件,即 cc 配置文件和 ld 配置文件。此标志接受必须引用螺旋桨配置文件输入文件的 build 标签。例如,定义标签的 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_linesaffects_outputs
--propeller_optimize_absolute_cc_profile=<a string> 默认值:请参阅说明
Propeller 优化 build 的 cc_profile 文件的绝对路径名。
标签: affects_outputs
--propeller_optimize_absolute_ld_profile=<a string> 默认值:请参阅说明
Propeller 优化 build 的 ld_profile 文件的绝对路径名。
标签: affects_outputs
--run_under=<a prefix in front of command> 默认值:请参阅说明
在“test”和“run”命令的可执行文件之前插入的前缀。如果值为“foo -bar”,而执行命令行是“test_binary -baz”,则最终命令行是“foo -bar test_binary -baz”。这也可以是可执行目标的标签。例如:“valgrind”“strace”“strace -c”“valgrind --quiet --num-callers=20”“//package:target”“//package:target --options”。
标签: action_command_lines
--[no]share_native_deps 默认值:“true”
如果为 true,则包含相同功能的原生库将在不同目标之间共享
标记: loading_and_analysisaffects_outputs
--[no]stamp 默认值:“false”
使用日期、用户名、主机名、工作区信息等标记二进制文件。
标记: affects_outputs
--strip=<always, sometimes or never> 默认值:“sometimes”
指定是否剥离二进制文件和共享库(使用“-Wl,--strip-debug”)。默认值“sometimes”表示仅当 --compilation_mode=fastbuild 时才剥离。
标签: affects_outputs
--stripopt=<a string> 累积多次使用
生成“<name>.stripped”二进制文件时要传递给 strip 的其他选项。
标记: action_command_linesaffects_outputs
--tvos_cpus=<comma-separated list of options> 累积多次使用
以英文逗号分隔的架构列表,用于构建 Apple tvOS 二进制文件。
标记: loses_incremental_stateloading_and_analysis
--tvos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
目标模拟器和设备的最低兼容 tvOS 版本。如果未指定,则使用“tvos_sdk_version”。
标签: loses_incremental_state
--visionos_cpus=<comma-separated list of options> 累积多次使用
以英文逗号分隔的架构列表,用于构建 Apple visionOS 二进制文件。
标记: loses_incremental_stateloading_and_analysis
--watchos_cpus=<comma-separated list of options> 累积多次使用
以英文逗号分隔的架构列表,用于构建 Apple watchOS 二进制文件。
标记: loses_incremental_stateloading_and_analysis
--watchos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
目标模拟器和设备的最低兼容 watchOS 版本。如果未指定,则使用“watchos_sdk_version”。
标签: loses_incremental_state
--xbinary_fdo=<a build target label> 默认值:请参阅说明
使用 XbinaryFDO 配置文件信息来优化编译。指定默认跨二进制配置文件名称。当此选项与 --fdo_instrument/--fdo_optimize/--fdo_profile 一起使用时,这些选项始终优先,就好像从未指定 xbinary_fdo 一样。
标记: affects_outputs
影响 Bazel 严格执行有效 build 输入(规则定义、标志组合等)的选项:
--[no]check_licenses 默认值:“false”
检查依赖软件包施加的许可限制是否与正在构建的目标的分发模式冲突。默认情况下,系统不会检查许可。
标签: build_file_semantics
--[no]check_visibility 默认值:“true”
如果停用,目标依赖项中的可见性错误将降级为警告。
标签: build_file_semantics
--[no]desugar_for_android 默认值:“true”
是否在 dexing 之前对 Java 8 字节码进行 desugar 处理。
标记: affects_outputsloading_and_analysisloses_incremental_state
--[no]desugar_java8_libs 默认值:“false”
是否在面向旧版设备的应用中包含受支持的 Java 8 库。
标记: affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]enforce_constraints 默认值:“true”
检查每个目标平台兼容的环境,如果任何目标平台具有不支持相同环境的依赖项,则报告错误
标记: build_file_semantics
--[no]experimental_check_desugar_deps 默认值:“true”
是否在 Android 二进制文件级别仔细检查正确的脱糖。
标记: eagerness_to_exitloading_and_analysisexperimental
--experimental_import_deps_checking=<a string> 默认值:请参阅说明
无操作,仅为实现向后兼容性而保留
标记: loading_and_analysis
--experimental_one_version_enforcement=<off, warning or error> 默认值:“OFF”
启用后,强制执行 java_binary 规则,确保类路径上不能包含同一类文件的多个版本。此强制执行可能会导致 build 失败,也可能只会导致警告。
标签: loading_and_analysis
--experimental_strict_java_deps=<off, warn, error, strict or default> 默认值:“default”
如果为 true,则检查 Java 目标是否明确声明所有直接使用的目标作为依赖项。
标记: build_file_semanticseagerness_to_exit
--[no]incompatible_check_testonly_for_output_files 默认值:“false”
如果已启用,请通过查找生成规则的 testonly 来检查作为输出文件的前提条件目标的 testonly。这与可见性检查相匹配。
标记: build_file_semanticsincompatible_change
--[no]incompatible_check_visibility_for_toolchains 默认值:“false”
如果启用,可见性检查也适用于工具链实现。
标记: build_file_semanticsincompatible_change
--[no]incompatible_disable_native_android_rules 默认值:“false”
如果启用,则会停用对原生 Android 规则的直接使用。请使用来自 https://github.com/bazelbuild/rules_android 的 Starlark Android 规则
标记: eagerness_to_exitincompatible_change
--[no]incompatible_disable_native_apple_binary_rule 默认值:“false”
无操作。保留在此处是为了向后兼容。
标记: eagerness_to_exitincompatible_change
--[no]incompatible_python_disable_py2 默认值:“true”
如果为 true,使用 Python 2 设置会导致错误。这包括 python_version=PY2、srcs_version=PY2 和 srcs_version=PY2ONLY。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/15684。
标记: loading_and_analysisincompatible_change
--[no]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_semanticseagerness_to_exit
--strict_proto_deps=<off, warn, error, strict or default> 默认值:“error”
除非设置为 OFF,否则会检查 proto_library 目标是否明确声明了所有直接使用的目标作为依赖项。
标记: build_file_semanticseagerness_to_exitincompatible_change
--strict_public_imports=<off, warn, error, strict or default> 默认值:“关闭”
除非设置为 OFF,否则会检查 proto_library 目标是否明确声明了“import public”中使用的所有目标为已导出。
标记: build_file_semanticseagerness_to_exitincompatible_change
--[no]strict_system_includes 默认值:“false”
如果为 true,则通过系统 include 路径 (-isystem) 找到的标头也必须声明。
标记: loading_and_analysiseagerness_to_exit
--target_environment=<a build target label> 累积多次使用
声明相应 build 的目标环境。必须是对“环境”规则的标签引用。如果指定了此属性,则所有顶级目标平台都必须与此环境兼容。
标记: changes_inputs
影响 build 签名输出的选项:
--apk_signing_method=<v1, v2, v1_v2 or v4> 默认值:“v1_v2”
用于对 APK 进行签名的实现
标记: action_command_linesaffects_outputsloading_and_analysis
--[no]device_debug_entitlements 默认值:“true”
如果已设置,且编译模式不是“opt”,则 objc 应用在签名时将包含调试授权。
标签: changes_inputs
--ios_signing_cert_name=<a string> 默认值:请参阅说明
用于 iOS 签名的证书名称。如果未设置,则会回退到配置配置文件。可能是证书的钥匙串身份偏好设置,也可能是证书的公用名(子字符串),具体请参阅 codesign 的手册页(签名身份)。
标记: action_command_lines
此选项会影响 Starlark 语言或可供 BUILD 文件、.bzl 文件或 WORKSPACE 文件访问的 build API 的语义:
--[no]incompatible_disallow_legacy_py_provider 默认值:“true”
无操作,很快就会被移除。
标记: loading_and_analysisincompatible_change
--[no]incompatible_disallow_sdk_frameworks_attributes 默认值:“false”
如果为 true,则不允许在 objc_library 和 objc_import 中使用 sdk_frameworks 和 weak_sdk_frameworks 属性。
标记: build_file_semanticsincompatible_change
如果为 true,则将 objc_library 和 objc_import 中 alwayslink 属性的默认值设为 true。
标记: build_file_semanticsincompatible_change
--[no]incompatible_python_disallow_native_rules 默认值:“false”
如果为 true,则在使用内置 py_* 规则时会发生错误;而应使用 rule_python 规则。如需了解详情和迁移说明,请参阅 https://github.com/bazelbuild/bazel/issues/17773。
标记: loading_and_analysisincompatible_change
用于控制测试环境或测试运行程序行为的选项:
--[no]allow_analysis_failures 默认值:“false”
如果为 true,则规则目标的分析失败会导致目标传播包含错误说明的 AnalysisFailureInfo 实例,而不是导致 build 失败。
标记: loading_and_analysisexperimental
--analysis_testing_deps_limit=<an integer> 默认值:“2000”
通过具有 for_analysis_testing 配置转换的规则属性设置传递依赖项的最大数量。超出此限制会导致规则错误。
标签: loading_and_analysis
--[no]break_build_on_parallel_dex2oat_failure 默认值:“false”
如果为 true,dex2oat 操作失败将导致 build 中断,而不是在测试运行时执行 dex2oat。
标记: loading_and_analysisexperimental
--default_test_resources=<a resource name followed by equal and 1 float or 4 float, e.g. memory=10,30,60,100> 累积多次使用
替换测试的默认资源量。预期格式为 <resource>=<value>。如果将单个正数指定为 <value>,则该值将替换所有测试规模的默认资源。如果指定了 4 个以英文逗号分隔的数字,它们将分别替换小型、中型、大型和超大型测试规模的资源量。值也可以是 HOST_RAM/HOST_CPU,后面可以选择性地跟上 [-|*]<float>(例如,memory=HOST_RAM*.1,HOST_RAM*.2,HOST_RAM*.3,HOST_RAM*.4)。此标志指定的默认测试资源会被标记中指定的显式资源覆盖。
--[no]experimental_android_use_parallel_dex2oat 默认值:“false”
并行使用 dex2oat,以尽可能加快 android_test 的速度。
标记: loading_and_analysishost_machine_resource_optimizationsexperimental
--[no]ios_memleaks 默认值:“false”
在 ios_test 目标中启用内存泄漏检查。
标签: action_command_lines
--ios_simulator_device=<a string> 默认值:请参阅说明
在模拟器中运行 iOS 应用时要模拟的设备,例如“iPhone 6”。您可以在运行模拟器的机器上运行“xcrun simctl list devicetypes”,以获取设备列表。
标签: test_runner
--ios_simulator_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
在运行或测试时要在模拟器上运行的 iOS 版本。如果 ios_test 规则中指定了目标设备,则忽略此属性。
标签: test_runner
--runs_per_test=<a positive integer or test_regex@runs. This flag may be passed more than once> 累积多次使用
指定运行每个测试的次数。如果任何尝试因任何原因而失败,则整个测试都被视为失败。通常,指定的值只是一个整数。示例:--runs_per_test=3 将运行所有测试 3 次。替代语法:regex_filter@runs_per_test。其中,runs_per_test 表示一个整数值,regex_filter 表示包含和排除正则表达式模式的列表(另请参阅 --instrumentation_filter)。示例:--runs_per_test=//foo/.*,-//foo/bar/.*@3 会运行 //foo/ 中的所有测试(foo/bar 下的测试除外),运行次数为 3 次。此选项可以多次传递。系统会优先采用最近传递的匹配实参。如果没有任何匹配项,则测试仅运行一次。
--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 默认值:“false”
如果为 true,未声明的测试输出将归档到 zip 文件中。
标记: test_runner
触发构建时间优化的选项:
--[no]experimental_filter_library_jar_with_program_jar 默认值:“false”
过滤 ProGuard ProgramJar 以移除 LibraryJar 中也存在的任何类。
标记: action_command_linesexperimental
--[no]experimental_inmemory_dotd_files 默认值:“true”
如果启用,C++ .d 文件将直接通过内存从远程 build 节点传递,而不是写入磁盘。
标记: loading_and_analysisexecutionaffects_outputsexperimental
--[no]experimental_inmemory_jdeps_files 默认值:“true”
如果启用,从 Java 编译生成的依赖项 (.jdeps) 文件将直接通过内存从远程 build 节点传递,而不是写入磁盘。
标记: loading_and_analysisexecutionaffects_outputsexperimental
--[no]experimental_retain_test_configuration_across_testonly 默认值:“false”
启用后,--trim_test_configuration 不会针对标记为 testonly=1 的规则剪裁测试配置。此举旨在减少非测试规则依赖于 cc_test 规则时的操作冲突问题。如果 --trim_test_configuration 为 false,则无效。
标记: loading_and_analysisloses_incremental_stateexperimental
--[no]experimental_starlark_cc_import 默认值:“false”
如果启用,则可以使用 cc_import 的 Starlark 版本。
标记: loading_and_analysisexperimental
--[no]experimental_unsupported_and_brittle_include_scanning 默认值:“false”
是否通过解析输入文件中的 #include 行来缩小 C/C++ 编译的输入范围。这样可以减小编译输入树的大小,从而提高性能和增量。不过,它也可能会破坏 build,因为 include 扫描器并未完全实现 C 预处理器语义。特别是,它无法理解动态 #include 指令,并且会忽略预处理器条件逻辑。使用时需自行承担风险。提交的与此标志相关的任何问题都将关闭。
标记: loading_and_analysisexecutionchanges_inputsexperimental
--[no]incremental_dexing 默认值:“true”
可为每个 Jar 文件单独执行大部分 dexing 工作。
标记: affects_outputsloading_and_analysisloses_incremental_state
--[no]objc_use_dotd_pruning 默认值:“true”
如果设置,则使用 clang 发出的 .d 文件来剪除传递到 objc 编译中的输入集。
标记: changes_inputsloading_and_analysis
--[no]process_headers_in_dependencies 默认值:“false”
构建目标 //a:a 时,处理 //a:a 所依赖的所有目标中的标头(如果工具链启用了标头处理)。
标签: execution
--[no]trim_test_configuration 默认值:“true”
启用后,测试相关选项将清除到 build 的顶级以下。如果此标志处于有效状态,则无法将测试构建为非测试规则的依赖项,但对测试相关选项的更改不会导致重新分析非测试规则。
标记: loading_and_analysisloses_incremental_state
影响日志记录详细程度、格式或位置的选项:
--toolchain_resolution_debug=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths> 默认值:“-.*”
在工具链解析期间打印调试信息。该标志接受一个正则表达式,系统会根据该表达式检查工具链类型和特定目标,以确定要调试的内容。多个正则表达式可以用英文逗号分隔,然后系统会分别检查每个正则表达式。注意:此标志的输出非常复杂,可能仅对工具链解析方面的专家有用。
标记: terminal_output
用于指定或更改 Bazel 命令的通用输入(不属于其他类别)的选项:
--flag_alias=<a 'name=value' flag alias> 累积多次使用
为 Starlark 标志设置简短名称。它以“<key>=<value>”形式的单个键值对作为实参。
标签: changes_inputs
--[no]incompatible_default_to_explicit_init_py 默认值:“false”
此标志会更改默认行为,使 __init__.py 文件不再在 Python 目标的 runfiles 中自动创建。具体而言,当 py_binary 或 py_test 目标的 legacy_create_init 设置为“auto”(默认值)时,当且仅当设置了此标志时,该目标才会被视为 false。请参阅 https://github.com/bazelbuild/bazel/issues/10076。
标记: affects_outputsincompatible_change
--[no]incompatible_py2_outputs_are_suffixed 默认值:“true”
如果为 true,则在 Python 2 配置中构建的目标将显示在包含后缀“-py2”的输出根目录下,而为 Python 3 构建的目标将显示在没有 Python 相关后缀的根目录下。这意味着 `bazel-bin` 便利符号链接将指向 Python 3 目标,而不是 Python 2。如果您启用此选项,还建议您启用 `--incompatible_py3_is_default`。
标记: affects_outputsincompatible_change
--[no]incompatible_py3_is_default 默认值:“true”
如果为 true,未设置其 `python_version`(或 `default_python_version`)属性的 `py_binary` 和 `py_test` 目标将默认使用 PY3 而不是 PY2。如果您设置了此标志,还建议设置 `--incompatible_py2_outputs_are_suffixed`。
标记: loading_and_analysisaffects_outputsincompatible_change
--[no]incompatible_use_python_toolchains 默认值:“true”
如果设置为 true,可执行的原生 Python 规则将使用 Python 工具链指定的 Python 运行时,而不是旧版标志(例如 --python_top)提供的运行时。
标记: loading_and_analysisincompatible_change
--python_version=<PY2 or PY3> 默认值:请参阅说明
Python 主要版本模式,可以是 `PY2` 或 `PY3`。请注意,此标志会被 `py_binary` 和 `py_test` 目标替换(即使它们未明确指定版本),因此通常没有太多理由提供此标志。
标记: loading_and_analysisaffects_outputs
未归入其他类别的其他选项:
--[no]cache_test_results [-t] 默认值:“自动”
如果设置为“自动”,则当且仅当满足以下条件时,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_outputsloading_and_analysisexperimental
--[no]experimental_fetch_all_coverage_outputs 默认值:“false”
如果为 true,则 Bazel 在覆盖率运行期间会为每个测试提取整个覆盖率数据目录。
标记: affects_outputsloading_and_analysisexperimental
--[no]experimental_generate_llvm_lcov 默认值:“false”
如果为 true,则 clang 的覆盖率将生成 LCOV 报告。
标记: affects_outputsloading_and_analysisexperimental
--[no]experimental_j2objc_header_map 默认值:“true”
是否在 J2ObjC 转译过程中并行生成 J2ObjC 标头映射。
标签: experimental
--[no]experimental_j2objc_shorter_header_path 默认值:“false”
是否生成较短的头文件路径(使用“_ios”代替“_j2objc”)。
标记: affects_outputsexperimental
--experimental_java_classpath=<off, javabuilder, bazel or bazel_no_fallback> 默认值:“javabuilder”
为 Java 编译启用缩减的类路径。
--[no]experimental_limit_android_lint_to_android_constrained_java 默认值:“false”
无操作,仅为实现向后兼容性而保留
标记: affects_outputsexperimental
--[no]experimental_run_android_lint_on_java_rules 默认值:“false”
是否验证 java_* 来源。
标记: affects_outputsexperimental
--[no]explicit_java_test_deps 默认值:“false”
在 java_test 中明确指定对 JUnit 或 Hamcrest 的依赖项,而不是意外地从 TestRunner 的依赖项中获取。目前仅适用于 Bazel。
--host_java_launcher=<a build target label> 默认值:请参阅说明
在 build 期间执行的工具所使用的 Java 启动器。
--host_javacopt=<a string> 累积多次使用
在构建期间执行的工具时要传递给 javac 的其他选项。
--host_jvmopt=<a string> 累积多次使用
在构建期间执行的工具时,要传递给 Java 虚拟机的其他选项。这些选项将添加到每个 java_binary 目标的虚拟机启动选项中。
--[no]incompatible_check_sharding_support 默认值:“true”
如果为 true,则当测试运行程序未通过在 TEST_SHARD_STATUS_FILE 中的路径上触碰文件来表明其支持分片时,Bazel 将使分片测试失败。如果为 false,不支持分片的测试运行程序会导致所有测试在每个分片中运行。
标签: incompatible_change
--[no]incompatible_exclusive_test_sandboxed 默认值:“true”
如果为 true,则独占性测试将以沙盒策略运行。添加“local”标记以强制在本地运行独占测试
标记: incompatible_change
--[no]incompatible_strict_action_env 默认值:“false”
如果为 true,Bazel 会使用一个 PATH 具有静态值的环境,并且不会继承 LD_LIBRARY_PATH。如果您想从客户端继承特定的环境变量,请使用 --action_env=ENV_VARIABLE,但请注意,如果使用共享缓存,这样做可能会阻止跨用户缓存。
标记: loading_and_analysisincompatible_change
--j2objc_translation_flags=<comma-separated list of options> 累积多次使用
要传递给 J2ObjC 工具的其他选项。
--java_debug
使 Java 测试的 Java 虚拟机在开始测试之前等待来自符合 JDWP 标准的调试器(例如 jdb)的连接。表示 -test_output=streamed。
展开后:
  --test_arg=--wrapper_script_flag=--debug
  --test_output=streamed
  --test_strategy=exclusive
  --test_timeout=9999
  --nocache_test_results
--[no]java_deps 默认值:“true”
针对每个 Java 目标生成依赖项信息(目前为编译时类路径)。
--[no]java_header_compilation 默认值:“true”
直接从源代码编译 ijars。
--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 虚拟机的其他选项。这些选项将添加到每个 java_binary 目标的虚拟机启动选项中。
--legacy_main_dex_list_generator=<a build target label> 默认值:请参阅说明
指定用于生成类列表的二进制文件,在编译旧版 multidex 时,该列表中的类必须位于主 dex 中。
--optimizing_dexer=<a build target label> 默认值:请参阅说明
指定用于在不分片的情况下执行 dexing 的二进制文件。
--plugin=<a build target label> 累积多次使用
要在 build 中使用的插件。目前适用于 java_plugin。
--proguard_top=<a build target label> 默认值:请参阅说明
指定在构建 Java 二进制文件时用于移除代码的 ProGuard 版本。
--proto_compiler=<a build target label> 默认值:“@bazel_tools//tools/proto:protoc”
proto 编译器的标签。
标记: affects_outputsloading_and_analysis
--[no]proto_profile 默认值:“true”
是否将 profile_path 传递给 proto 编译器。
标记: affects_outputsloading_and_analysis
--proto_profile_path=<a build target label> 默认值:请参阅说明
要作为 profile_path 传递给 proto 编译器的配置文件。如果未设置,但 --proto_profile 为 true(默认值),则从 --fdo_optimize 推断路径。
标记: affects_outputsloading_and_analysis
--proto_toolchain_for_cc=<a build target label> 默认值:“@bazel_tools//tools/proto:cc_toolchain”
proto_lang_toolchain() 的标签,用于描述如何编译 C++ proto
标记: affects_outputsloading_and_analysis
--proto_toolchain_for_j2objc=<a build target label> 默认值:“@bazel_tools//tools/j2objc:j2objc_proto_toolchain”
proto_lang_toolchain() 的标签,用于描述如何编译 j2objc proto
标记: affects_outputsloading_and_analysis
--proto_toolchain_for_java=<a build target label> 默认值:“@bazel_tools//tools/proto:java_toolchain”
proto_lang_toolchain() 的标签,用于描述如何编译 Java proto
标记: affects_outputsloading_and_analysis
--proto_toolchain_for_javalite=<a build target label> 默认值:“@bazel_tools//tools/proto:javalite_toolchain”
proto_lang_toolchain() 的标签,用于描述如何编译 JavaLite proto
标记: affects_outputsloading_and_analysis
--protocopt=<a string> 累积多次使用
要传递给 protobuf 编译器的其他选项。
标签: affects_outputs
--[no]runs_per_test_detects_flakes 默认值:“false”
如果为 true,则至少有一次运行/尝试通过且至少有一次运行/尝试失败的任何分片都会获得 FLAKY 状态。
--shell_executable=<a path> 默认值:请参阅说明
供 Bazel 使用的 shell 可执行文件的绝对路径。如果未设置此变量,但在首次调用 Bazel(启动 Bazel 服务器)时设置了 BAZEL_SH 环境变量,则 Bazel 会使用该变量。如果两者均未设置,Bazel 会使用硬编码的默认路径,具体取决于其运行的操作系统(Windows:c:/msys64/usr/bin/bash.exe;FreeBSD:/usr/local/bin/bash;所有其他操作系统:/bin/bash)。请注意,使用与 bash 不兼容的 shell 可能会导致生成的二进制文件出现 build 失败或运行时失败。
标签: 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 属性,则“explicit”表示仅使用分片。“disabled”表示从不使用测试分片。“forced=k”可强制执行“k”个分片以进行测试,而无论“shard_count”BUILD 属性如何。
--tool_java_language_version=<a string> 默认值:""
用于执行构建期间所需工具的 Java 语言版本
--tool_java_runtime_version=<a string> 默认值:“remotejdk_11”
在 build 期间用于执行工具的 Java 运行时版本
--[no]use_ijars 默认值:“true”
如果启用,此选项会导致 Java 编译使用接口 jar。这会加快增量编译速度,但错误消息可能会有所不同。

转储选项

用于控制命令输出的选项:
--[no]action_cache 默认值:“false”
转储操作缓存内容。
标签: bazel_monitoring
--memory=<memory mode> 默认值:请参阅说明
转储给定 Skyframe 节点的内存使用情况。
标签: bazel_monitoring
--[no]packages 默认值:“false”
转储软件包缓存内容。
标签: bazel_monitoring
--[no]rule_classes 默认值:“false”
转储规则类。
标签: bazel_monitoring
--[no]rules 默认值:“false”
转储规则,包括数量和内存用量(如果跟踪内存)。
标签: bazel_monitoring
--skyframe=<off, summary, count, value, deps, rdeps, function_graph, working_set or working_set_frontier_deps> 默认值:“关闭”
转储 Skyframe 图。
标签: bazel_monitoring
--skykey_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths> 默认值:“.*”
要输出的 SkyKey 名称的正则表达式过滤条件。仅与 --skyframe=deps、rdeps、function_graph 一起使用。
标签: bazel_monitoring
--skylark_memory=<a string> 默认值:请参阅说明
将与 pprof 兼容的内存配置文件转储到指定路径。如需了解详情,请访问 https://github.com/google/pprof。
标记: bazel_monitoring
此选项会影响 Starlark 语言或可供 BUILD 文件、.bzl 文件或 WORKSPACE 文件访问的 build API 的语义:
--[no]incompatible_use_plus_in_repo_names 默认值:“true”
无操作。
标记: loading_and_analysis

提取选项

继承自 test 的所有选项。

控制 build 执行的选项:
--[no]all 默认值:“false”
提取构建任何目标或代码库所需的所有外部代码库。如果未提供其他标志和实参,则这是默认值。仅在启用 --enable_bzlmod 时有效。
标签: changes_inputs
--[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”“HOST_CPUS”“HOST_RAM”),可以选择后跟运算符号([-|*]<float>),例如:“auto”“HOST_CPUS*.5”。“自动”会根据主机资源设置合理的默认值。不得少于 1。
标记: bazel_internal_configuration
此选项会影响 Starlark 语言或可供 BUILD 文件、.bzl 文件或 WORKSPACE 文件访问的 build API 的语义:
--[no]incompatible_config_setting_private_default_visibility 默认值:“false”
如果 incompatible_enforce_config_setting_visibility=false,则此值为 noop。否则,如果此标志为 false,则任何没有明确 visibility 属性的 config_setting 都是 //visibility:public。如果此标志为 true,则 config_setting 遵循与其他所有规则相同的可见性逻辑。请参阅 https://github.com/bazelbuild/bazel/issues/12933。
标记: loading_and_analysisincompatible_change
--[no]incompatible_enforce_config_setting_visibility 默认值:“true”
如果为 true,则强制执行 config_setting 可见性限制。如果为 false,则每个 config_setting 对每个目标都可见。请参阅 https://github.com/bazelbuild/bazel/issues/12932。
标记: loading_and_analysisincompatible_change
--[no]incompatible_use_plus_in_repo_names 默认值:“true”
无操作。
标记: loading_and_analysis
与 Bzlmod 输出和语义相关的选项:
--[no]configure 默认值:“false”
仅提取标记为“配置”的用于系统配置的资源库。仅在启用 --enable_bzlmod 时有效。
标签: changes_inputs
--[no]force 默认值:“false”
忽略现有代码库(如果有),并强制再次提取代码库。仅在启用 --enable_bzlmod 时有效。
标签: changes_inputs
--repo=<a string> 累积多次使用
仅提取指定代码库,该代码库可以是 {@apparent_repo_name} 或 {@@canonical_repo_name}。仅在启用 --enable_bzlmod 时有效。
标记: changes_inputs
影响日志记录详细程度、格式或位置的选项:
--experimental_repository_resolved_file=<a string> 默认值:""
如果非空,则写入一个 Starlark 值,其中包含已执行的所有 Starlark 代码库规则的已解析信息。
标记: affects_outputs
未归入其他类别的杂项选项:
--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,该命令将使用依赖项的任何缓存版本,如果不存在任何缓存版本,该命令将失败。
--package_path=<colon-separated list of options> 默认值:“%workspace%”
以英文冒号分隔的软件包搜索位置列表。以“%workspace%”开头的元素相对于封闭的工作区。如果省略或为空,则默认为“bazel info default-package-path”的输出。
--[no]show_loading_progress 默认值:“true”
如果启用,会导致 Bazel 打印“正在加载软件包:”消息。
控制 build 执行的选项:
是否直接进行文件系统调用来创建符号链接树,而不是委托给辅助进程。
标记: loading_and_analysisexecutionexperimental
--[no]experimental_persistent_aar_extractor 默认值:“false”
使用 worker 启用持久性 aar 提取器。
标记: executionexperimental
--[no]experimental_remotable_source_manifests 默认值:“false”
是否使源清单操作可远程执行
标记: loading_and_analysisexecutionexperimental
--[no]experimental_split_coverage_postprocessing 默认值:“false”
如果为 true,则 Bazel 将在新 spawn 中运行测试的覆盖率后处理。
标记: executionexperimental
--[no]experimental_strict_fileset_output 默认值:“false”
如果启用此选项,文件集会将所有输出制品视为常规文件。它们不会遍历目录,也不会对符号链接敏感。
标记: executionexperimental
--[no]incompatible_modify_execution_info_additive 默认值:“false”
启用后,传递多个 --modify_execution_info 标志是累加的。如果停用,则只会考虑最后一个标志。
标记: executionaffects_outputsloading_and_analysisincompatible_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'。
标记: executionaffects_outputsloading_and_analysis
--persistent_android_dex_desugar
通过使用 worker 启用持久性 Android dex 和 desugar 操作。
展开后:
  --internal_persistent_android_dex_desugar
  --strategy=Desugar=worker
  --strategy=DexBuilder=worker

标记: host_machine_resource_optimizationsexecution
--persistent_android_resource_processor
使用工作器启用持久性 Android 资源处理器。
展开后:
  --internal_persistent_busybox_tools
  --strategy=AaptPackage=worker
  --strategy=AndroidResourceParser=worker
  --strategy=AndroidResourceValidator=worker
  --strategy=AndroidResourceCompiler=worker
  --strategy=RClassGenerator=worker
  --strategy=AndroidResourceLink=worker
  --strategy=AndroidAapt2=worker
  --strategy=AndroidAssetMerger=worker
  --strategy=AndroidResourceMerger=worker
  --strategy=AndroidCompiledResourceMerger=worker
  --strategy=ManifestMerger=worker
  --strategy=AndroidManifestMerger=worker
  --strategy=Aapt2Optimize=worker
  --strategy=AARGenerator=worker
  --strategy=ProcessDatabinding=worker
  --strategy=GenerateDataBindingBaseClasses=worker

标记: host_machine_resource_optimizationsexecution
--persistent_multiplex_android_dex_desugar
通过使用 worker 启用持久的多路复用 Android dex 和 desugar 操作。
展开后:
  --persistent_android_dex_desugar
  --internal_persistent_multiplex_android_dex_desugar

标记: host_machine_resource_optimizationsexecution
--persistent_multiplex_android_resource_processor
使用工作线程启用持久复用的 Android 资源处理器。
展开后:
  --persistent_android_resource_processor
  --modify_execution_info=AaptPackage=+supports-multiplex-workers
  --modify_execution_info=AndroidResourceParser=+supports-multiplex-workers
  --modify_execution_info=AndroidResourceValidator=+supports-multiplex-workers
  --modify_execution_info=AndroidResourceCompiler=+supports-multiplex-workers
  --modify_execution_info=RClassGenerator=+supports-multiplex-workers
  --modify_execution_info=AndroidResourceLink=+supports-multiplex-workers
  --modify_execution_info=AndroidAapt2=+supports-multiplex-workers
  --modify_execution_info=AndroidAssetMerger=+supports-multiplex-workers
  --modify_execution_info=AndroidResourceMerger=+supports-multiplex-workers
  --modify_execution_info=AndroidCompiledResourceMerger=+supports-multiplex-workers
  --modify_execution_info=ManifestMerger=+supports-multiplex-workers
  --modify_execution_info=AndroidManifestMerger=+supports-multiplex-workers
  --modify_execution_info=Aapt2Optimize=+supports-multiplex-workers
  --modify_execution_info=AARGenerator=+supports-multiplex-workers

标记: host_machine_resource_optimizationsexecution
--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_optimizationsexecution
--[no]use_target_platform_for_tests 默认值:“false”
如果为 true,则 Bazel 将使用目标平台来运行测试,而不是测试执行组。
标记: execution
用于配置执行操作所用工具链的选项:
--android_compiler=<a string> 默认值:请参阅说明
Android 目标编译器。
标记: affects_outputsloading_and_analysisloses_incremental_state
--android_manifest_merger=<legacy, android or force_android> 默认值:“android”
选择要用于 android_binary 规则的清单合并器。标志,用于帮助从旧版合并器过渡到 Android 清单合并器。
标记: affects_outputsloading_and_analysisloses_incremental_state
--android_platforms=<a build target label> 默认值:""
设置 android_binary 目标使用的平台。如果指定了多个平台,则相应二进制文件为胖 APK,其中包含每个指定目标平台的原生二进制文件。
标记: changes_inputsloading_and_analysisloses_incremental_state
--apple_crosstool_top=<a build target label> 默认值:“@bazel_tools//tools/cpp:toolchain”
要在 Apple 和 Objc 规则及其依赖项中使用的交叉工具链软件包的标签。
标记: loses_incremental_statechanges_inputs
--cc_output_directory_tag=<a string> 默认值:""
指定要添加到配置目录的后缀。
标签: affects_outputs
--compiler=<a string> 默认值:请参阅说明
用于编译目标的 C++ 编译器。
标记: loading_and_analysisexecution
--coverage_output_generator=<a build target label> 默认值:“@bazel_tools//tools/test:lcov_merger”
用于后处理原始覆盖率报告的二进制文件的位置。目前,这必须是一个包含单个文件(即二进制文件)的 filegroup。默认为“//tools/test:lcov_merger”。
标记: changes_inputsaffects_outputsloading_and_analysis
--coverage_report_generator=<a build target label> 默认值:“@bazel_tools//tools/test:coverage_report_generator”
用于生成覆盖率报告的二进制文件的位置。目前,这必须是一个包含单个文件(即二进制文件)的 filegroup。默认为“//tools/test:coverage_report_generator”。
标记: changes_inputsaffects_outputsloading_and_analysis
--coverage_support=<a build target label> 默认值:“@bazel_tools//tools/test:coverage_support”
每个收集代码覆盖率的测试操作的输入中所需的支持文件的位置。默认为“//tools/test:coverage_support”。
标记: changes_inputsaffects_outputsloading_and_analysis
--custom_malloc=<a build target label> 默认值:请参阅说明
指定自定义 malloc 实现。此设置会覆盖 build 规则中的 malloc 属性。
标记: changes_inputsaffects_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_stateloading_and_analysisexecutionexperimental
--[no]experimental_prefer_mutual_xcode 默认值:“true”
如果为 true,则使用本地和远程可用的最新 Xcode。如果为 false,或者没有共同可用的版本,则使用通过 xcode-select 选择的本地 Xcode 版本。
标记: loses_incremental_stateexperimental
--extra_execution_platforms=<comma-separated list of options> 默认值:""
可作为执行平台来运行操作的平台。平台可以按确切目标指定,也可以按目标模式指定。这些平台将优先于通过 register_execution_platforms() 在 WORKSPACE 文件中声明的平台得到考虑。此选项只能设置一次;后续实例将覆盖之前的标志设置。
标签: execution
--extra_toolchains=<comma-separated list of options> 累积多次使用
在工具链解析期间要考虑的工具链规则。可以通过确切的目标或作为目标模式来指定工具链。这些工具链将优先于通过 register_toolchains() 在 WORKSPACE 文件中声明的工具链进行考虑。
标记: affects_outputschanges_inputsloading_and_analysis
--grte_top=<a label> 默认值:请参阅说明
已签入的 libc 库的标签。默认值由交叉工具链选择,您几乎不需要替换它。
标记: action_command_linesaffects_outputs
--host_compiler=<a string> 默认值:请参阅说明
空操作标志。将在未来版本中移除。
标记: loading_and_analysisexecution
--host_grte_top=<a label> 默认值:请参阅说明
如果指定,此设置会替换执行配置的 libc 顶级目录 (--grte_top)。
标记: action_command_linesaffects_outputs
--host_platform=<a build target label> 默认值:“@bazel_tools//tools:host_platform”
描述宿主系统的平台规则的标签。
标记: affects_outputschanges_inputsloading_and_analysis
--[no]incompatible_bazel_test_exec_run_under 默认值:“false”
如果启用,则“bazel test --run_under=//:runner”会在执行配置中构建“//:runner”。如果停用,则在目标配置中构建“//:runner”。Bazel 在执行机器上执行测试,因此前者更正确。这不会影响“bazel run”,后者始终在目标配置中构建“--run_under=//foo”。
标记: affects_outputsincompatible_change
--[no]incompatible_dont_enable_host_nonhost_crosstool_features 默认值:“true”
如果为 true,Bazel 将不会在 C++ 工具链中启用“host”和“nonhost”功能(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7407)。
标记: loading_and_analysisincompatible_change
--[no]incompatible_enable_apple_toolchain_resolution 默认值:“false”
使用工具链解析来选择 Apple 规则(Starlark 和原生)的 Apple SDK
标记: loading_and_analysisincompatible_change
--[no]incompatible_remove_legacy_whole_archive 默认值:“true”
如果为 true,Bazel 默认不会将库依赖项作为整个归档进行链接(如需迁移说明,请参阅 https://github.com/bazelbuild/bazel/issues/7362)。
标记: loading_and_analysisincompatible_change
--[no]incompatible_strip_executable_safely 默认值:“false”
如果为 true,则可执行文件的剥离操作将使用标志 -x,该标志不会中断动态符号解析。
标记: action_command_linesincompatible_change
--[no]interface_shared_objects 默认值:“true”
如果工具链支持,则使用接口共享对象。所有 ELF 工具链目前都支持此设置。
标签: loading_and_analysisaffects_outputsaffects_outputs
--ios_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
指定用于构建 iOS 应用的 iOS SDK 版本。如果未指定,则使用来自“xcode_version”的默认 iOS SDK 版本。
标签: loses_incremental_state
--macos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
指定用于构建 macOS 应用的 macOS SDK 版本。如果未指定,则使用来自“xcode_version”的默认 macOS SDK 版本。
标签: loses_incremental_state
--minimum_os_version=<a string> 默认值:请参阅说明
您的编译所针对的最低操作系统版本。
标记: loading_and_analysisaffects_outputs
--platform_mappings=<a main workspace-relative path> 默认值:""
映射文件的位置,用于描述在未设置平台时要使用哪个平台,或在平台已存在时要设置哪些标志。必须相对于主工作区根目录。默认为“platform_mappings”(工作区根目录下的一个文件)。
标记: affects_outputschanges_inputsloading_and_analysisimmutable
--platforms=<a build target label> 默认值:""
描述当前命令的目标平台的平台规则的标签。
标记: affects_outputschanges_inputsloading_and_analysis
--python_path=<a string> 默认值:请参阅说明
在目标平台上调用以运行 Python 目标的 Python 解释器的绝对路径。已弃用;已通过 --incompatible_use_python_toolchains 停用。
标记: loading_and_analysisaffects_outputs
--python_top=<a build target label> 默认值:请参阅说明
py_runtime 的标签,表示在目标平台上调用以运行 Python 目标的 Python 解释器。已弃用;已通过 --incompatible_use_python_toolchains 停用。
标记: loading_and_analysisaffects_outputs
--tvos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
指定用于构建 tvOS 应用的 tvOS SDK 版本。如果未指定,则使用来自“xcode_version”的默认 tvOS SDK 版本。
标签: loses_incremental_state
--watchos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
指定用于构建 watchOS 应用的 watchOS SDK 版本。如果未指定,则使用来自“xcode_version”的默认 watchOS SDK 版本。
标签: loses_incremental_state
--xcode_version=<a string> 默认值:请参阅说明
如果指定,则使用指定版本的 Xcode 执行相关的 build 操作。如果未指定,则使用执行器的默认 Xcode 版本。
标签: loses_incremental_state
--xcode_version_config=<a build target label> 默认值:“@bazel_tools//tools/cpp:host_xcodes”
用于在 build 配置中选择 Xcode 版本的 xcode_config 规则的标签。
标记: loses_incremental_stateloading_and_analysis
用于控制命令输出的选项:
--[no]apple_generate_dsym 默认值:“false”
是否生成调试符号 (.dSYM) 文件。
标记: affects_outputsaction_command_lines
如果为 true,则为所有目标构建 runfiles 符号链接森林。如果为 false,则仅在本地操作、测试或运行命令需要时写入它们。
标签: affects_outputs
--[no]build_runfile_manifests 默认值:“true”
如果为 true,则为所有目标写入 runfiles 清单。如果为 false,则省略这些参数。如果为 false,本地测试将无法运行。
标签: affects_outputs
--[no]build_test_dwp 默认值:“false”
如果启用,在静态构建 C++ 测试并使用 fission 时,系统也会自动构建测试二进制文件的 .dwp 文件。
标记: loading_and_analysisaffects_outputs
--cc_proto_library_header_suffixes=<comma-separated set of options> 默认值:“.pb.h”
设置 cc_proto_library 创建的头文件的后缀。
标记: affects_outputsloading_and_analysis
--cc_proto_library_source_suffixes=<comma-separated set of options> 默认值:“.pb.cc”
设置 cc_proto_library 创建的源文件的后缀。
标记: affects_outputsloading_and_analysis
--[no]experimental_proto_descriptor_sets_include_source_info 默认值:“false”
在 proto_library 中针对备用 Java API 版本运行额外的操作。
标记: affects_outputsloading_and_analysisexperimental
--[no]experimental_save_feature_state 默认值:“false”
将已启用和已请求的功能的状态保存为编译的输出。
标记: affects_outputsexperimental
--fission=<a set of compilation modes> 默认值:“否”
指定哪些编译模式使用 fission 进行 C++ 编译和链接。可以是 {'fastbuild', 'dbg', 'opt'} 的任意组合,也可以是特殊值“yes”(启用所有模式)和“no”(停用所有模式)。
标记: loading_and_analysisaction_command_linesaffects_outputs
--[no]incompatible_always_include_files_in_data 默认值:“true”
如果为 true,原生规则会将数据依赖项的 <code>DefaultInfo.files</code> 添加到其 runfiles 中,这与 Starlark 规则的推荐行为一致 (https://bazel.build/extending/rules#runfiles_features_to_avoid)。
标记: affects_outputsincompatible_change
--[no]legacy_external_runfiles 默认值:“false”
如果为 true,则在 .runfiles/wsname/external/repo(以及 .runfiles/repo)下为外部代码库构建 runfiles 符号链接森林。
标签: affects_outputs
--[no]objc_generate_linkmap 默认值:“false”
指定是否生成 linkmap 文件。
标签: 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> 累积多次使用
指定可供具有目标配置的操作使用的一组环境变量。变量可以通过 <code>name</code> 指定,在这种情况下,值将从调用环境中获取;也可以通过 <code>name=value</code> 对指定,这样设置的值与调用环境无关。此选项可多次使用;对于同一变量给出的选项,以最新的为准;对于不同变量的选项,则会累积。 <br> 请注意,除非 <code>--incompatible_repo_env_ignores_action_env</code> 为 true,否则所有 <code>name=value</code> 对都将可供代码库规则使用。
标签: action_command_lines
--allowed_cpu_values=<comma-separated set of options> 默认值:""
--cpu 标志的允许值。
标记: changes_inputsaffects_outputs
--[no]android_databinding_use_androidx 默认值:“true”
生成与 AndroidX 兼容的数据绑定文件。这仅适用于数据绑定 v2。此标志为无操作。
标记: affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]android_databinding_use_v3_4_args 默认值:“true”
使用 3.4.0 实参的 Android 数据绑定 v2。此标志为无操作。
标记: affects_outputsloading_and_analysisloses_incremental_stateexperimental
--android_dynamic_mode=<off, default or fully> 默认值:“关闭”
确定当 cc_binary 未明确创建共享库时,Android 规则的 C++ 依赖项是否会动态链接。“default”表示 Bazel 将选择是否动态链接。“fully”表示所有库都将动态关联。“off”表示所有库都将以主要静态模式进行关联。
标记: affects_outputsloading_and_analysis
--android_manifest_merger_order=<alphabetical, alphabetical_by_configuration or dependency> 默认值:“alphabetical”
设置传递给 Android 二进制文件清单合并器的清单顺序。ALPHABETICAL 表示清单按相对于执行根目录的路径排序。ALPHABETICAL_BY_CONFIGURATION 表示清单按相对于输出目录中配置目录的路径进行排序。DEPENDENCY 表示清单的顺序为:每个库的清单位于其依赖项的清单之前。
标记: action_command_linesexecution
--[no]android_resource_shrinking 默认值:“false”
为使用 ProGuard 的 android_binary APK 启用资源缩减功能。
标记: affects_outputsloading_and_analysis
--[no]build_python_zip 默认值:“自动”
构建 Python 可执行压缩文件;在 Windows 上为 on,在其他平台上为 off
标记: affects_outputs
--catalyst_cpus=<comma-separated list of options> 累积多次使用
以英文逗号分隔的架构列表,用于构建 Apple Catalyst 二进制文件。
标记: loses_incremental_stateloading_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_outputsaction_command_lines
--conlyopt=<a string> 累积多次使用
编译 C 源文件时要传递给 gcc 的其他选项。
标记: action_command_linesaffects_outputs
--copt=<a string> 累积多次使用
要传递给 gcc 的其他选项。
标记: action_command_linesaffects_outputs
--cpu=<a string> 默认值:""
目标 CPU。
标记: changes_inputsaffects_outputs
--cs_fdo_absolute_path=<a string> 默认值:请参阅说明
使用 CSFDO 配置文件信息来优化编译。指定包含配置文件(原始或已编入索引的 LLVM 配置文件)的 ZIP 文件的绝对路径名。
标签: affects_outputs
--cs_fdo_instrument=<a string> 默认值:请参阅说明
生成具有上下文相关 FDO 检测功能的二进制文件。使用 Clang/LLVM 编译器时,它还接受将在运行时转储原始配置文件的目录名称。
标签: affects_outputs
--cs_fdo_profile=<a build target label> 默认值:请参阅说明
表示要用于优化的上下文相关配置文件的 cs_fdo_profile。
标签: affects_outputs
--cxxopt=<a string> 累积多次使用
在编译 C++ 源文件时要传递给 gcc 的其他选项。
标记: action_command_linesaffects_outputs
--define=<a 'name=value' assignment> 累积多次使用
每个 --define 选项都指定一个 build 变量的赋值。如果某个变量有多个值,则最后一个值胜出。
标记: changes_inputsaffects_outputs
--dynamic_mode=<off, default or fully> 默认值:“default”
确定 C++ 二进制文件是否将动态链接。“default”表示 Bazel 将选择是否动态链接。“fully”表示所有库都将动态关联。“off”表示所有库都将以主要静态模式进行关联。
标记: loading_and_analysisaffects_outputs
--[no]enable_propeller_optimize_absolute_paths 默认值:“true”
如果设置,任何使用绝对路径进行螺旋桨优化的操作都会引发错误。
标签: affects_outputs
--[no]enable_remaining_fdo_absolute_paths 默认值:“true”
如果设置,则任何使用 FDO 绝对路径的行为都会引发错误。
标签: affects_outputs
--[no]enable_runfiles 默认值:“自动”
启用 runfiles 符号链接树;默认情况下,在 Windows 上处于关闭状态,在其他平台上处于开启状态。
标签: affects_outputs
--experimental_action_listener=<a build target label> 累积多次使用
已弃用,取而代之的是方面。使用 action_listener 将 extra_action 附加到现有 build 操作。
标记: executionexperimental
--[no]experimental_android_compress_java_resources 默认值:“false”
压缩 APK 中的 Java 资源
标记: affects_outputsloading_and_analysisexperimental
--[no]experimental_android_databinding_v2 默认值:“true”
使用 Android 数据绑定 v2。此标志为无操作。
标记: affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]experimental_android_resource_shrinking 默认值:“false”
为使用 ProGuard 的 android_binary APK 启用资源缩减功能。
标记: affects_outputsloading_and_analysisexperimental
--[no]experimental_android_rewrite_dexes_with_rex 默认值:“false”
使用 rex 工具重写 dex 文件
标记: affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]experimental_collect_code_coverage_for_generated_files 默认值:“false”
如果指定,Bazel 还会为生成的文件生成收集覆盖率信息。
标记: affects_outputsexperimental
--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_linesaffects_outputsexperimental
--experimental_output_paths=<off, content or strip> 默认值:“关闭”
用于确定在输出树中规则应将输出写入何处,尤其适用于多平台 / 多配置 build。此功能尚处于高度实验阶段。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/6526。Starlark 操作可以通过向“execution_requirements”字典添加“supports-path-mapping”键来选择启用路径映射。
标记: loses_incremental_statebazel_internal_configurationaffects_outputsexecution
--experimental_override_name_platform_in_output_dir=<a 'label=value' assignment> 累积多次使用
每个条目都应采用“标签=值”的形式,其中标签是指平台,值是指要在输出路径中使用的所需简称。仅在 --experimental_platform_in_output_dir 为 true 时使用。具有最高的命名优先级。
标记: affects_outputsexperimental
--[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_outputsexperimental
--[no]experimental_py_binaries_include_label 默认值:“false”
即使在停用戳记功能的情况下,py_binary 目标也会包含其标签。
标记: affects_outputsexperimental
--[no]experimental_use_llvm_covmap 默认值:“false”
如果指定,当 collect_code_coverage 处于启用状态时,Bazel 将生成 llvm-cov 代码覆盖率映射信息,而不是 gcov 代码覆盖率映射信息。
标记: changes_inputsaffects_outputsloading_and_analysisexperimental
--[no]experimental_use_platforms_in_output_dir_legacy_heuristic 默认值:“true”
请仅在建议的迁移或测试策略中使用此标志。请注意,该启发式方法存在已知缺陷,建议迁移到仅依赖于 --experimental_override_name_platform_in_output_dir。
标记: affects_outputsexperimental
--fdo_instrument=<a string> 默认值:请参阅说明
生成带有 FDO 检测的二进制文件。使用 Clang/LLVM 编译器时,它还接受将在运行时转储原始配置文件的目录名称。
标签: affects_outputs
--fdo_optimize=<a string> 默认值:请参阅说明
使用 FDO 配置文件信息来优化编译。指定包含 .gcda 文件树、包含自动配置文件的 AFDO 文件或 LLVM 配置文件在内的 ZIP 文件的名称。此标志还接受指定为标签的文件(例如 `//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> 累积多次使用
对于在目标配置中构建的目标,给定的功能将默认处于启用或停用状态。指定 -<功能> 将停用相应功能。否定功能始终会覆盖肯定功能。另请参阅 --host_features
标记: changes_inputsaffects_outputs
--[no]force_pic 默认值:“false”
如果启用,所有 C++ 编译都会生成位置无关代码 (-fPIC),链接会优先选择 PIC 预构建库而非非 PIC 库,并且链接会生成位置无关可执行文件 (-pie)。
标记: loading_and_analysisaffects_outputs
--host_action_env=<a 'name=value' assignment with an optional value part> 累积多次使用
指定可供具有执行配置的操作使用的一组环境变量。变量可以通过名称指定(在这种情况下,系统会从调用环境中获取值),也可以通过 name=value 对指定(这样会独立于调用环境设置值)。此选项可多次使用;对于同一变量给出的选项,以最新的为准;对于不同变量的选项,则会累积。
标签: action_command_lines
--host_compilation_mode=<fastbuild, dbg or opt> 默认值:“opt”
指定 build 期间使用的工具将以何种模式构建。值:“fastbuild”“dbg”“opt”。
标记: affects_outputsaction_command_lines
--host_conlyopt=<a string> 累积多次使用
在执行配置中编译 C(而非 C++)源文件时要传递给 C 编译器的其他选项。
标记: action_command_linesaffects_outputs
--host_copt=<a string> 累积多次使用
要传递给 C 编译器(针对在执行配置中构建的工具)的其他选项。
标记: action_command_linesaffects_outputs
--host_cpu=<a string> 默认值:""
主机 CPU。
标记: changes_inputsaffects_outputs
--host_cxxopt=<a string> 累积多次使用
要传递给 C++ 编译器的其他选项,用于在执行配置中构建的工具。
标记: action_command_linesaffects_outputs
--host_features=<a string> 累积多次使用
对于在执行配置中构建的目标,给定的功能将默认处于启用或停用状态。指定 -<功能> 将停用相应功能。负特征始终会覆盖正特征。
标记: changes_inputsaffects_outputs
--host_force_python=<PY2 or PY3> 默认值:请参阅说明
替换执行配置的 Python 版本。可以是“PY2”或“PY3”。
标记: loading_and_analysisaffects_outputs
--host_linkopt=<a string> 累积多次使用
在执行配置中关联工具时,传递给链接器的其他选项。
标记: action_command_linesaffects_outputs
--host_macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
主机目标的最低兼容 macOS 版本。如果未指定,则使用“macos_sdk_version”。
标签: loses_incremental_state
--host_per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options> 累积多次使用
在编译执行配置中的某些文件时,有选择性地传递给 C/C++ 编译器的其他选项。此选项可以多次传递。语法:regex_filter@option_1,option_2,...,option_n。其中,regex_filter 表示包含和排除正则表达式模式的列表(另请参阅 --instrumentation_filter)。option_1 到 option_n 表示任意命令行选项。如果某个选项包含英文逗号,则必须使用反斜杠进行转义。选项可以包含 @。系统只会使用第一个 @ 来拆分字符串。示例:--host_per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 会将 -O0 命令行选项添加到 //foo/ 中除 bar.cc 之外的所有 cc 文件的 gcc 命令行中。
标记: action_command_linesaffects_outputs
--[no]incompatible_auto_exec_groups 默认值:“false”
启用后,系统会自动为规则使用的每个工具链创建一个执行组。为此,规则需要在其操作中指定“toolchain”参数。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/17134。
标记: affects_outputsincompatible_change
--[no]incompatible_merge_genfiles_directory 默认值:“true”
如果为 true,则 genfiles 目录会折叠到 bin 目录中。
标记: affects_outputsincompatible_change
--[no]instrument_test_targets 默认值:“false”
启用覆盖率时,指定是否考虑插桩测试规则。如果设置了此标志,则会插桩由 --instrumentation_filter 包含的测试规则。否则,测试规则始终会从覆盖率检测中排除。
标签: affects_outputs
--instrumentation_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths> 默认值:“-/javatests[/:],-/test/java[/:]”
启用覆盖率后,系统只会检测名称包含在指定基于正则表达式的过滤条件中的规则。带有“-”前缀的规则会被排除。请注意,除非启用 --instrument_test_targets,否则仅对非测试规则进行检测。
标签: affects_outputs
--ios_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
目标模拟器和设备的最低兼容 iOS 版本。如果未指定,则使用“ios_sdk_version”。
标签: loses_incremental_state
--ios_multi_cpus=<comma-separated list of options> 累积多次使用
以英文逗号分隔的架构列表,用于构建 ios_application。结果是一个包含所有指定架构的通用二进制文件。
标记: loses_incremental_stateloading_and_analysis
--[no]legacy_whole_archive 默认值:“true”
已弃用,已被 --incompatible_remove_legacy_whole_archive 取代(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7362)。如果设置为开启,则对于 linkshared=True 且 linkopts 中包含 linkstatic=True 或 '-static' 的 cc_binary 规则,使用 --whole-archive。这仅是为了实现向后兼容性。更好的替代方案是在需要时使用 alwayslink=1。
标记: action_command_linesaffects_outputsdeprecated
--linkopt=<a string> 累积多次使用
链接时要传递给 gcc 的其他选项。
标记: action_command_linesaffects_outputs
--ltobackendopt=<a string> 累积多次使用
传递给 LTO 后端步骤的其他选项(在 --features=thin_lto 下)。
标记: action_command_linesaffects_outputs
--ltoindexopt=<a string> 累积多次使用
要传递给 LTO 索引步骤的其他选项(在 --features=thin_lto 下)。
标记: action_command_linesaffects_outputs
--macos_cpus=<comma-separated list of options> 累积多次使用
以英文逗号分隔的架构列表,用于构建 Apple macOS 二进制文件。
标记: loses_incremental_stateloading_and_analysis
--macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
目标的最低兼容 macOS 版本。如果未指定,则使用“macos_sdk_version”。
标签: loses_incremental_state
--memprof_profile=<a build target label> 默认值:请参阅说明
使用 memprof 配置文件。
标签: affects_outputs
--[no]objc_debug_with_GLIBCXX 默认值:“false”
如果已设置,且编译模式设置为“dbg”,则定义 GLIBCXX_DEBUG、GLIBCXX_DEBUG_PEDANTIC 和 GLIBCPP_CONCEPT_CHECKS。
标签: action_command_lines
--[no]objc_enable_binary_stripping 默认值:“false”
是否对关联的二进制文件执行符号和死代码剥离。如果同时指定了此标志和 --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_n 表示任意命令行选项。如果某个选项包含英文逗号,则必须使用反斜杠进行转义。选项可以包含 @。系统只会使用第一个 @ 来拆分字符串。示例:--per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 会将 -O0 命令行选项添加到 //foo/ 中除 bar.cc 之外的所有 cc 文件的 gcc 命令行中。
标记: action_command_linesaffects_outputs
--per_file_ltobackendopt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options> 累积多次使用
在编译某些后端对象时,有选择地传递给 LTO 后端(在 --features=thin_lto 下)的其他选项。此选项可以多次传递。语法:regex_filter@option_1,option_2,...,option_n。其中,regex_filter 表示包含和排除正则表达式模式的列表,option_1 到 option_n 表示任意命令行选项。如果某个选项包含英文逗号,则必须使用反斜杠进行转义。选项可以包含 @。系统只会使用第一个 @ 来拆分字符串。示例:--per_file_ltobackendopt=//foo/.*\.o,-//foo/bar\.o@-O0 会将 -O0 命令行选项添加到 //foo/ 中除 bar.o 以外的所有 o 文件的 LTO 后端命令行中。
标记: action_command_linesaffects_outputs
--platform_suffix=<a string> 默认值:请参阅说明
指定要添加到配置目录的后缀。
标记: loses_incremental_stateaffects_outputsloading_and_analysis
--propeller_optimize=<a build target label> 默认值:请参阅说明
使用 Propeller 配置文件信息来优化 build 目标。Propeller 配置文件必须包含至少一个文件,即 cc 配置文件和 ld 配置文件。此标志接受必须引用螺旋桨配置文件输入文件的 build 标签。例如,定义标签的 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_linesaffects_outputs
--propeller_optimize_absolute_cc_profile=<a string> 默认值:请参阅说明
Propeller 优化 build 的 cc_profile 文件的绝对路径名。
标签: affects_outputs
--propeller_optimize_absolute_ld_profile=<a string> 默认值:请参阅说明
Propeller 优化 build 的 ld_profile 文件的绝对路径名。
标签: affects_outputs
--run_under=<a prefix in front of command> 默认值:请参阅说明
在“test”和“run”命令的可执行文件之前插入的前缀。如果值为“foo -bar”,而执行命令行是“test_binary -baz”,则最终命令行是“foo -bar test_binary -baz”。这也可以是可执行目标的标签。例如:“valgrind”“strace”“strace -c”“valgrind --quiet --num-callers=20”“//package:target”“//package:target --options”。
标签: action_command_lines
--[no]share_native_deps 默认值:“true”
如果为 true,则包含相同功能的原生库将在不同目标之间共享
标记: loading_and_analysisaffects_outputs
--[no]stamp 默认值:“false”
使用日期、用户名、主机名、工作区信息等标记二进制文件。
标记: affects_outputs
--strip=<always, sometimes or never> 默认值:“sometimes”
指定是否剥离二进制文件和共享库(使用“-Wl,--strip-debug”)。默认值“sometimes”表示仅当 --compilation_mode=fastbuild 时才剥离。
标签: affects_outputs
--stripopt=<a string> 累积多次使用
生成“<name>.stripped”二进制文件时要传递给 strip 的其他选项。
标记: action_command_linesaffects_outputs
--tvos_cpus=<comma-separated list of options> 累积多次使用
以英文逗号分隔的架构列表,用于构建 Apple tvOS 二进制文件。
标记: loses_incremental_stateloading_and_analysis
--tvos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
目标模拟器和设备的最低兼容 tvOS 版本。如果未指定,则使用“tvos_sdk_version”。
标签: loses_incremental_state
--visionos_cpus=<comma-separated list of options> 累积多次使用
以英文逗号分隔的架构列表,用于构建 Apple visionOS 二进制文件。
标记: loses_incremental_stateloading_and_analysis
--watchos_cpus=<comma-separated list of options> 累积多次使用
以英文逗号分隔的架构列表,用于构建 Apple watchOS 二进制文件。
标记: loses_incremental_stateloading_and_analysis
--watchos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
目标模拟器和设备的最低兼容 watchOS 版本。如果未指定,则使用“watchos_sdk_version”。
标签: loses_incremental_state
--xbinary_fdo=<a build target label> 默认值:请参阅说明
使用 XbinaryFDO 配置文件信息来优化编译。指定默认跨二进制配置文件名称。当此选项与 --fdo_instrument/--fdo_optimize/--fdo_profile 一起使用时,这些选项始终优先,就好像从未指定 xbinary_fdo 一样。
标记: affects_outputs
影响 Bazel 严格执行有效 build 输入(规则定义、标志组合等)的选项:
--[no]check_licenses 默认值:“false”
检查依赖软件包施加的许可限制是否与正在构建的目标的分发模式冲突。默认情况下,系统不会检查许可。
标签: build_file_semantics
--[no]check_visibility 默认值:“true”
如果停用,目标依赖项中的可见性错误将降级为警告。
标签: build_file_semantics
--[no]desugar_for_android 默认值:“true”
是否在 dexing 之前对 Java 8 字节码进行 desugar 处理。
标记: affects_outputsloading_and_analysisloses_incremental_state
--[no]desugar_java8_libs 默认值:“false”
是否在面向旧版设备的应用中包含受支持的 Java 8 库。
标记: affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]enforce_constraints 默认值:“true”
检查每个目标平台兼容的环境,如果任何目标平台具有不支持相同环境的依赖项,则报告错误
标记: build_file_semantics
--[no]experimental_check_desugar_deps 默认值:“true”
是否在 Android 二进制文件级别仔细检查正确的脱糖。
标记: eagerness_to_exitloading_and_analysisexperimental
--experimental_import_deps_checking=<a string> 默认值:请参阅说明
无操作,仅为实现向后兼容性而保留
标记: loading_and_analysis
--experimental_one_version_enforcement=<off, warning or error> 默认值:“OFF”
启用后,强制执行 java_binary 规则,确保类路径上不能包含同一类文件的多个版本。此强制执行可能会导致 build 失败,也可能只会导致警告。
标签: loading_and_analysis
--experimental_strict_java_deps=<off, warn, error, strict or default> 默认值:“default”
如果为 true,则检查 Java 目标是否明确声明所有直接使用的目标作为依赖项。
标记: build_file_semanticseagerness_to_exit
--[no]incompatible_check_testonly_for_output_files 默认值:“false”
如果已启用,请通过查找生成规则的 testonly 来检查作为输出文件的前提条件目标的 testonly。这与可见性检查相匹配。
标记: build_file_semanticsincompatible_change
--[no]incompatible_check_visibility_for_toolchains 默认值:“false”
如果启用,可见性检查也适用于工具链实现。
标记: build_file_semanticsincompatible_change
--[no]incompatible_disable_native_android_rules 默认值:“false”
如果启用,则会停用对原生 Android 规则的直接使用。请使用来自 https://github.com/bazelbuild/rules_android 的 Starlark Android 规则
标记: eagerness_to_exitincompatible_change
--[no]incompatible_disable_native_apple_binary_rule 默认值:“false”
无操作。保留在此处是为了向后兼容。
标记: eagerness_to_exitincompatible_change
--[no]incompatible_python_disable_py2 默认值:“true”
如果为 true,使用 Python 2 设置会导致错误。这包括 python_version=PY2、srcs_version=PY2 和 srcs_version=PY2ONLY。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/15684。
标记: loading_and_analysisincompatible_change
--[no]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_semanticseagerness_to_exit
--strict_proto_deps=<off, warn, error, strict or default> 默认值:“error”
除非设置为 OFF,否则会检查 proto_library 目标是否明确声明了所有直接使用的目标作为依赖项。
标记: build_file_semanticseagerness_to_exitincompatible_change
--strict_public_imports=<off, warn, error, strict or default> 默认值:“关闭”
除非设置为 OFF,否则会检查 proto_library 目标是否明确声明了“import public”中使用的所有目标为已导出。
标记: build_file_semanticseagerness_to_exitincompatible_change
--[no]strict_system_includes 默认值:“false”
如果为 true,则通过系统 include 路径 (-isystem) 找到的标头也必须声明。
标记: loading_and_analysiseagerness_to_exit
--target_environment=<a build target label> 累积多次使用
声明相应 build 的目标环境。必须是对“环境”规则的标签引用。如果指定了此属性,则所有顶级目标平台都必须与此环境兼容。
标记: changes_inputs
影响 build 签名输出的选项:
--apk_signing_method=<v1, v2, v1_v2 or v4> 默认值:“v1_v2”
用于对 APK 进行签名的实现
标记: action_command_linesaffects_outputsloading_and_analysis
--[no]device_debug_entitlements 默认值:“true”
如果已设置,且编译模式不是“opt”,则 objc 应用在签名时将包含调试授权。
标签: changes_inputs
--ios_signing_cert_name=<a string> 默认值:请参阅说明
用于 iOS 签名的证书名称。如果未设置,则会回退到配置配置文件。可能是证书的钥匙串身份偏好设置,也可能是证书的公用名(子字符串),具体请参阅 codesign 的手册页(签名身份)。
标记: action_command_lines
此选项会影响 Starlark 语言或可供 BUILD 文件、.bzl 文件或 WORKSPACE 文件访问的 build API 的语义:
--[no]incompatible_disallow_legacy_py_provider 默认值:“true”
无操作,很快就会被移除。
标记: loading_and_analysisincompatible_change
--[no]incompatible_disallow_sdk_frameworks_attributes 默认值:“false”
如果为 true,则不允许在 objc_library 和 objc_import 中使用 sdk_frameworks 和 weak_sdk_frameworks 属性。
标记: build_file_semanticsincompatible_change
如果为 true,则将 objc_library 和 objc_import 中 alwayslink 属性的默认值设为 true。
标记: build_file_semanticsincompatible_change
--[no]incompatible_python_disallow_native_rules 默认值:“false”
如果为 true,则在使用内置 py_* 规则时会发生错误;而应使用 rule_python 规则。如需了解详情和迁移说明,请参阅 https://github.com/bazelbuild/bazel/issues/17773。
标记: loading_and_analysisincompatible_change
用于控制测试环境或测试运行程序行为的选项:
--[no]allow_analysis_failures 默认值:“false”
如果为 true,则规则目标的分析失败会导致目标传播包含错误说明的 AnalysisFailureInfo 实例,而不是导致 build 失败。
标记: loading_and_analysisexperimental
--analysis_testing_deps_limit=<an integer> 默认值:“2000”
通过具有 for_analysis_testing 配置转换的规则属性设置传递依赖项的最大数量。超出此限制会导致规则错误。
标签: loading_and_analysis
--[no]break_build_on_parallel_dex2oat_failure 默认值:“false”
如果为 true,dex2oat 操作失败将导致 build 中断,而不是在测试运行时执行 dex2oat。
标记: loading_and_analysisexperimental
--default_test_resources=<a resource name followed by equal and 1 float or 4 float, e.g. memory=10,30,60,100> 累积多次使用
替换测试的默认资源量。预期格式为 <resource>=<value>。如果将单个正数指定为 <value>,则该值将替换所有测试规模的默认资源。如果指定了 4 个以英文逗号分隔的数字,它们将分别替换小型、中型、大型和超大型测试规模的资源量。值也可以是 HOST_RAM/HOST_CPU,后面可以选择性地跟上 [-|*]<float>(例如,memory=HOST_RAM*.1,HOST_RAM*.2,HOST_RAM*.3,HOST_RAM*.4)。此标志指定的默认测试资源会被标记中指定的显式资源覆盖。
--[no]experimental_android_use_parallel_dex2oat 默认值:“false”
并行使用 dex2oat,以尽可能加快 android_test 的速度。
标记: loading_and_analysishost_machine_resource_optimizationsexperimental
--[no]ios_memleaks 默认值:“false”
在 ios_test 目标中启用内存泄漏检查。
标签: action_command_lines
--ios_simulator_device=<a string> 默认值:请参阅说明
在模拟器中运行 iOS 应用时要模拟的设备,例如“iPhone 6”。您可以在运行模拟器的机器上运行“xcrun simctl list devicetypes”,以获取设备列表。
标签: test_runner
--ios_simulator_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
在运行或测试时要在模拟器上运行的 iOS 版本。如果 ios_test 规则中指定了目标设备,则忽略此属性。
标签: test_runner
--runs_per_test=<a positive integer or test_regex@runs. This flag may be passed more than once> 累积多次使用
指定运行每个测试的次数。如果任何尝试因任何原因而失败,则整个测试都被视为失败。通常,指定的值只是一个整数。示例:--runs_per_test=3 将运行所有测试 3 次。替代语法:regex_filter@runs_per_test。其中,runs_per_test 表示一个整数值,regex_filter 表示包含和排除正则表达式模式的列表(另请参阅 --instrumentation_filter)。示例:--runs_per_test=//foo/.*,-//foo/bar/.*@3 会运行 //foo/ 中的所有测试(foo/bar 下的测试除外),运行次数为 3 次。此选项可以多次传递。系统会优先采用最近传递的匹配实参。如果没有任何匹配项,则测试仅运行一次。
--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 默认值:“false”
如果为 true,未声明的测试输出将归档到 zip 文件中。
标记: test_runner
触发构建时间优化的选项:
--[no]experimental_filter_library_jar_with_program_jar 默认值:“false”
过滤 ProGuard ProgramJar 以移除 LibraryJar 中也存在的任何类。
标记: action_command_linesexperimental
--[no]experimental_inmemory_dotd_files 默认值:“true”
如果启用,C++ .d 文件将直接通过内存从远程 build 节点传递,而不是写入磁盘。
标记: loading_and_analysisexecutionaffects_outputsexperimental
--[no]experimental_inmemory_jdeps_files 默认值:“true”
如果启用,从 Java 编译生成的依赖项 (.jdeps) 文件将直接通过内存从远程 build 节点传递,而不是写入磁盘。
标记: loading_and_analysisexecutionaffects_outputsexperimental
--[no]experimental_retain_test_configuration_across_testonly 默认值:“false”
启用后,--trim_test_configuration 不会针对标记为 testonly=1 的规则剪裁测试配置。此举旨在减少非测试规则依赖于 cc_test 规则时的操作冲突问题。如果 --trim_test_configuration 为 false,则无效。
标记: loading_and_analysisloses_incremental_stateexperimental
--[no]experimental_starlark_cc_import 默认值:“false”
如果启用,则可以使用 cc_import 的 Starlark 版本。
标记: loading_and_analysisexperimental
--[no]experimental_unsupported_and_brittle_include_scanning 默认值:“false”
是否通过解析输入文件中的 #include 行来缩小 C/C++ 编译的输入范围。这样可以减小编译输入树的大小,从而提高性能和增量。不过,它也可能会破坏 build,因为 include 扫描器并未完全实现 C 预处理器语义。特别是,它无法理解动态 #include 指令,并且会忽略预处理器条件逻辑。使用时需自行承担风险。提交的与此标志相关的任何问题都将关闭。
标记: loading_and_analysisexecutionchanges_inputsexperimental
--[no]incremental_dexing 默认值:“true”
可为每个 Jar 文件单独执行大部分 dexing 工作。
标记: affects_outputsloading_and_analysisloses_incremental_state
--[no]objc_use_dotd_pruning 默认值:“true”
如果设置,则使用 clang 发出的 .d 文件来剪除传递到 objc 编译中的输入集。
标记: changes_inputsloading_and_analysis
--[no]process_headers_in_dependencies 默认值:“false”
构建目标 //a:a 时,处理 //a:a 所依赖的所有目标中的标头(如果工具链启用了标头处理)。
标签: execution
--[no]trim_test_configuration 默认值:“true”
启用后,测试相关选项将清除到 build 的顶级以下。如果此标志处于有效状态,则无法将测试构建为非测试规则的依赖项,但对测试相关选项的更改不会导致重新分析非测试规则。
标记: loading_and_analysisloses_incremental_state
影响日志记录详细程度、格式或位置的选项:
--toolchain_resolution_debug=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths> 默认值:“-.*”
在工具链解析期间打印调试信息。该标志接受一个正则表达式,系统会根据该表达式检查工具链类型和特定目标,以确定要调试的内容。多个正则表达式可以用英文逗号分隔,然后系统会分别检查每个正则表达式。注意:此标志的输出非常复杂,可能仅对工具链解析方面的专家有用。
标记: terminal_output
用于指定或更改 Bazel 命令的通用输入(不属于其他类别)的选项:
--flag_alias=<a 'name=value' flag alias> 累积多次使用
为 Starlark 标志设置简短名称。它以“<key>=<value>”形式的单个键值对作为实参。
标签: changes_inputs
--[no]incompatible_default_to_explicit_init_py 默认值:“false”
此标志会更改默认行为,使 __init__.py 文件不再在 Python 目标的 runfiles 中自动创建。具体而言,当 py_binary 或 py_test 目标的 legacy_create_init 设置为“auto”(默认值)时,当且仅当设置了此标志时,该目标才会被视为 false。请参阅 https://github.com/bazelbuild/bazel/issues/10076。
标记: affects_outputsincompatible_change
--[no]incompatible_py2_outputs_are_suffixed 默认值:“true”
如果为 true,则在 Python 2 配置中构建的目标将显示在包含后缀“-py2”的输出根目录下,而为 Python 3 构建的目标将显示在没有 Python 相关后缀的根目录下。这意味着 `bazel-bin` 便利符号链接将指向 Python 3 目标,而不是 Python 2。如果您启用此选项,还建议您启用 `--incompatible_py3_is_default`。
标记: affects_outputsincompatible_change
--[no]incompatible_py3_is_default 默认值:“true”
如果为 true,未设置其 `python_version`(或 `default_python_version`)属性的 `py_binary` 和 `py_test` 目标将默认使用 PY3 而不是 PY2。如果您设置了此标志,还建议设置 `--incompatible_py2_outputs_are_suffixed`。
标记: loading_and_analysisaffects_outputsincompatible_change
--[no]incompatible_use_python_toolchains 默认值:“true”
如果设置为 true,可执行的原生 Python 规则将使用 Python 工具链指定的 Python 运行时,而不是旧版标志(例如 --python_top)提供的运行时。
标记: loading_and_analysisincompatible_change
--python_version=<PY2 or PY3> 默认值:请参阅说明
Python 主要版本模式,可以是 `PY2` 或 `PY3`。请注意,此标志会被 `py_binary` 和 `py_test` 目标替换(即使它们未明确指定版本),因此通常没有太多理由提供此标志。
标记: loading_and_analysisaffects_outputs
未归入其他类别的其他选项:
--[no]cache_test_results [-t] 默认值:“自动”
如果设置为“自动”,则当且仅当满足以下条件时,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_outputsloading_and_analysisexperimental
--[no]experimental_fetch_all_coverage_outputs 默认值:“false”
如果为 true,则 Bazel 在覆盖率运行期间会为每个测试提取整个覆盖率数据目录。
标记: affects_outputsloading_and_analysisexperimental
--[no]experimental_generate_llvm_lcov 默认值:“false”
如果为 true,则 clang 的覆盖率将生成 LCOV 报告。
标记: affects_outputsloading_and_analysisexperimental
--[no]experimental_j2objc_header_map 默认值:“true”
是否在 J2ObjC 转译过程中并行生成 J2ObjC 标头映射。
标签: experimental
--[no]experimental_j2objc_shorter_header_path 默认值:“false”
是否生成较短的头文件路径(使用“_ios”代替“_j2objc”)。
标记: affects_outputsexperimental
--experimental_java_classpath=<off, javabuilder, bazel or bazel_no_fallback> 默认值:“javabuilder”
为 Java 编译启用缩减的类路径。
--[no]experimental_limit_android_lint_to_android_constrained_java 默认值:“false”
无操作,仅为实现向后兼容性而保留
标记: affects_outputsexperimental
--[no]experimental_run_android_lint_on_java_rules 默认值:“false”
是否验证 java_* 来源。
标记: affects_outputsexperimental
--[no]explicit_java_test_deps 默认值:“false”
在 java_test 中明确指定对 JUnit 或 Hamcrest 的依赖项,而不是意外地从 TestRunner 的依赖项中获取。目前仅适用于 Bazel。
--host_java_launcher=<a build target label> 默认值:请参阅说明
在 build 期间执行的工具所使用的 Java 启动器。
--host_javacopt=<a string> 累积多次使用
在构建期间执行的工具时要传递给 javac 的其他选项。
--host_jvmopt=<a string> 累积多次使用
在构建期间执行的工具时,要传递给 Java 虚拟机的其他选项。这些选项将添加到每个 java_binary 目标的虚拟机启动选项中。
--[no]incompatible_check_sharding_support 默认值:“true”
如果为 true,则当测试运行程序未通过在 TEST_SHARD_STATUS_FILE 中的路径上触碰文件来表明其支持分片时,Bazel 将使分片测试失败。如果为 false,不支持分片的测试运行程序会导致所有测试在每个分片中运行。
标签: incompatible_change
--[no]incompatible_exclusive_test_sandboxed 默认值:“true”
如果为 true,则独占性测试将以沙盒策略运行。添加“local”标记以强制在本地运行独占测试
标记: incompatible_change
--[no]incompatible_strict_action_env 默认值:“false”
如果为 true,Bazel 会使用一个 PATH 具有静态值的环境,并且不会继承 LD_LIBRARY_PATH。如果您想从客户端继承特定的环境变量,请使用 --action_env=ENV_VARIABLE,但请注意,如果使用共享缓存,这样做可能会阻止跨用户缓存。
标记: loading_and_analysisincompatible_change
--j2objc_translation_flags=<comma-separated list of options> 累积多次使用
要传递给 J2ObjC 工具的其他选项。
--java_debug
使 Java 测试的 Java 虚拟机在开始测试之前等待来自符合 JDWP 标准的调试器(例如 jdb)的连接。表示 -test_output=streamed。
展开后:
  --test_arg=--wrapper_script_flag=--debug
  --test_output=streamed
  --test_strategy=exclusive
  --test_timeout=9999
  --nocache_test_results
--[no]java_deps 默认值:“true”
针对每个 Java 目标生成依赖项信息(目前为编译时类路径)。
--[no]java_header_compilation 默认值:“true”
直接从源代码编译 ijars。
--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 虚拟机的其他选项。这些选项将添加到每个 java_binary 目标的虚拟机启动选项中。
--legacy_main_dex_list_generator=<a build target label> 默认值:请参阅说明
指定用于生成类列表的二进制文件,在编译旧版 multidex 时,该列表中的类必须位于主 dex 中。
--optimizing_dexer=<a build target label> 默认值:请参阅说明
指定用于在不分片的情况下执行 dexing 的二进制文件。
--plugin=<a build target label> 累积多次使用
要在 build 中使用的插件。目前适用于 java_plugin。
--proguard_top=<a build target label> 默认值:请参阅说明
指定在构建 Java 二进制文件时用于移除代码的 ProGuard 版本。
--proto_compiler=<a build target label> 默认值:“@bazel_tools//tools/proto:protoc”
proto 编译器的标签。
标记: affects_outputsloading_and_analysis
--[no]proto_profile 默认值:“true”
是否将 profile_path 传递给 proto 编译器。
标记: affects_outputsloading_and_analysis
--proto_profile_path=<a build target label> 默认值:请参阅说明
要作为 profile_path 传递给 proto 编译器的配置文件。如果未设置,但 --proto_profile 为 true(默认值),则从 --fdo_optimize 推断路径。
标记: affects_outputsloading_and_analysis
--proto_toolchain_for_cc=<a build target label> 默认值:“@bazel_tools//tools/proto:cc_toolchain”
proto_lang_toolchain() 的标签,用于描述如何编译 C++ proto
标记: affects_outputsloading_and_analysis
--proto_toolchain_for_j2objc=<a build target label> 默认值:“@bazel_tools//tools/j2objc:j2objc_proto_toolchain”
proto_lang_toolchain() 的标签,用于描述如何编译 j2objc proto
标记: affects_outputsloading_and_analysis
--proto_toolchain_for_java=<a build target label> 默认值:“@bazel_tools//tools/proto:java_toolchain”
proto_lang_toolchain() 的标签,用于描述如何编译 Java proto
标记: affects_outputsloading_and_analysis
--proto_toolchain_for_javalite=<a build target label> 默认值:“@bazel_tools//tools/proto:javalite_toolchain”
proto_lang_toolchain() 的标签,用于描述如何编译 JavaLite proto
标记: affects_outputsloading_and_analysis
--protocopt=<a string> 累积多次使用
要传递给 protobuf 编译器的其他选项。
标签: affects_outputs
--[no]runs_per_test_detects_flakes 默认值:“false”
如果为 true,则至少有一次运行/尝试通过且至少有一次运行/尝试失败的任何分片都会获得 FLAKY 状态。
--shell_executable=<a path> 默认值:请参阅说明
供 Bazel 使用的 shell 可执行文件的绝对路径。如果未设置此变量,但在首次调用 Bazel(启动 Bazel 服务器)时设置了 BAZEL_SH 环境变量,则 Bazel 会使用该变量。如果两者均未设置,Bazel 会使用硬编码的默认路径,具体取决于其运行的操作系统(Windows:c:/msys64/usr/bin/bash.exe;FreeBSD:/usr/local/bin/bash;所有其他操作系统:/bin/bash)。请注意,使用与 bash 不兼容的 shell 可能会导致生成的二进制文件出现 build 失败或运行时失败。
标签: 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 属性,则“explicit”表示仅使用分片。“disabled”表示从不使用测试分片。“forced=k”可强制执行“k”个分片以进行测试,而无论“shard_count”BUILD 属性如何。
--tool_java_language_version=<a string> 默认值:""
用于执行构建期间所需工具的 Java 语言版本
--tool_java_runtime_version=<a string> 默认值:“remotejdk_11”
在 build 期间用于执行工具的 Java 运行时版本
--[no]use_ijars 默认值:“true”
如果启用,此选项会导致 Java 编译使用接口 jar。这会加快增量编译速度,但错误消息可能会有所不同。

帮助选项

此选项会影响 Starlark 语言或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义:
--[no]incompatible_use_plus_in_repo_names 默认值:“true”
无操作。
标记: loading_and_analysis
影响日志记录详细程度、格式或位置的选项:
--help_verbosity=<long, medium or short> 默认值:“中等”
选择帮助命令的详细程度。
标签: terminal_output
--long [-l]
显示每个选项的完整说明,而不仅仅是名称。
展开后:
  --help_verbosity=long

标记: terminal_output
--short
仅显示选项的名称,而不显示其类型或含义。
展开后:
  --help_verbosity=short

标记: terminal_output

信息选项

继承 build 中的所有选项。

此选项会影响 Starlark 语言或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义:
--[no]incompatible_use_plus_in_repo_names 默认值:“true”
无操作。
标记: loading_and_analysis
影响日志记录详细程度、格式或位置的选项:
--[no]show_make_env 默认值:“false”
在输出中包含“Make”环境。
标签: affects_outputsterminal_output

许可选项

此选项会影响 Starlark 语言或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义:
--[no]incompatible_use_plus_in_repo_names 默认值:“true”
无操作。
标记: loading_and_analysis

移动设备安装选项

继承 build 中的所有选项。

控制 build 执行的选项:
--mode=<classic, classic_internal_test_do_not_use or skylark> 默认值:“skylark”
已弃用,无影响的标志。仅支持 Skylark 模式。
标记:loading_and_analysisexecutionincompatible_change
用于配置执行操作所用工具链的选项:
--adb=<a string> 默认值:""
用于“mobile-install”命令的 adb 二进制文件。如果未指定,则使用 Android SDK 中由 --android_sdk_channel 命令行选项指定的 SDK(如果未指定 --android_sdk_channel,则使用默认 SDK)。
标记: changes_inputs
用于控制命令输出的选项:
--[no]incremental 默认值:“false”
是否执行增量安装。如果为 true,则尝试通过读取要安装代码的设备的状态并使用该信息来避免不必要的额外工作。如果为 false(默认值),则始终执行完整安装。
标签: loading_and_analysis
--[no]split_apks 默认值:“false”
是否使用拆分 APK 在设备上安装和更新应用。仅适用于搭载 Marshmallow 或更高版本的设备
标记: loading_and_analysisaffects_outputs
允许用户配置预期输出(影响其值,而非存在)的选项:
--adb_arg=<a string> 累积多次使用
要传递给 adb 的额外实参。通常用于指定要安装到的设备。
标签: action_command_lines
--debug_app
是否在启动应用之前等待调试程序。
展开后为:
  --start=DEBUG

标记: execution
--device=<a string> 默认值:""
adb 设备序列号。如果未指定,则使用第一个设备。
标签: action_command_lines
--start=<no, cold, warm or debug> 默认值:“NO”
安装应用后,应如何启动应用。设置为 WARM 可在增量安装时保留和恢复应用状态。
标签: execution
--start_app
是否在安装应用后启动该应用。
展开后:
  --start=COLD

标记: execution
此选项会影响 Starlark 语言的语义或可供 BUILD 文件、.bzl 文件或 WORKSPACE 文件访问的 build API。
--[no]incompatible_use_plus_in_repo_names 默认值:“true”
无操作。
标记: loading_and_analysis
影响日志记录详细程度、格式或位置的选项:
--incremental_install_verbosity=<a string> 默认值:""
增量安装的详细程度。设置为 1 可启用调试日志记录。
标记: bazel_monitoring

Mod 选项

控制 build 执行的选项:
是否直接进行文件系统调用来创建符号链接树,而不是委托给辅助进程。
标记: loading_and_analysisexecutionexperimental
--[no]experimental_remotable_source_manifests 默认值:“false”
是否使源清单操作可远程执行
标记: loading_and_analysisexecutionexperimental
--[no]experimental_strict_fileset_output 默认值:“false”
如果启用此选项,文件集会将所有输出制品视为常规文件。它们不会遍历目录,也不会对符号链接敏感。
标记: executionexperimental
--[no]incompatible_modify_execution_info_additive 默认值:“false”
启用后,传递多个 --modify_execution_info 标志是累加的。如果停用,则只会考虑最后一个标志。
标记: executionaffects_outputsloading_and_analysisincompatible_change
--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”“HOST_CPUS”“HOST_RAM”),可以选择后跟运算符号([-|*]<float>),例如:“auto”“HOST_CPUS*.5”。“自动”会根据主机资源设置合理的默认值。不得少于 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'。
标记:executionaffects_outputsloading_and_analysis
用于配置执行操作所用工具链的选项:
--[no]incompatible_bazel_test_exec_run_under 默认值:“false”
如果启用,则“bazel test --run_under=//:runner”会在执行配置中构建“//:runner”。如果停用,则在目标配置中构建“//:runner”。Bazel 在执行机器上执行测试,因此前者更正确。这不会影响“bazel run”,后者始终在目标配置中构建“--run_under=//foo”。
标记: affects_outputsincompatible_change
用于控制命令输出的选项:
如果为 true,则为所有目标构建 runfiles 符号链接森林。如果为 false,则仅在本地操作、测试或运行命令需要时写入它们。
标签: affects_outputs
--[no]build_runfile_manifests 默认值:“true”
如果为 true,则为所有目标写入 runfiles 清单。如果为 false,则省略这些参数。如果为 false,本地测试将无法运行。
标签: affects_outputs
--[no]incompatible_always_include_files_in_data 默认值:“true”
如果为 true,原生规则会将数据依赖项的 <code>DefaultInfo.files</code> 添加到其 runfiles 中,这与 Starlark 规则的推荐行为一致 (https://bazel.build/extending/rules#runfiles_features_to_avoid)。
标记: affects_outputsincompatible_change
--[no]legacy_external_runfiles 默认值:“false”
如果为 true,则在 .runfiles/wsname/external/repo(以及 .runfiles/repo)下为外部代码库构建 runfiles 符号链接森林。
标记: affects_outputs
允许用户配置预期输出(影响其值,而非存在)的选项:
--action_env=<a 'name=value' assignment with an optional value part> 累积多次使用
指定可供具有目标配置的操作使用的一组环境变量。变量可以通过 <code>name</code> 指定,在这种情况下,值将从调用环境中获取;也可以通过 <code>name=value</code> 对指定,这样设置的值与调用环境无关。此选项可多次使用;对于同一变量给出的选项,以最新的为准;对于不同变量的选项,则会累积。 <br> 请注意,除非 <code>--incompatible_repo_env_ignores_action_env</code> 为 true,否则所有 <code>name=value</code> 对都将可供代码库规则使用。
标签: action_command_lines
--allowed_cpu_values=<comma-separated set of options> 默认值:""
--cpu 标志的允许值。
标记: changes_inputsaffects_outputs
--[no]collect_code_coverage 默认值:“false”
如果指定了此标志,Bazel 将检测代码(尽可能使用离线检测),并在测试期间收集覆盖率信息。只有与 --instrumentation_filter 匹配的目标会受到影响。通常情况下,不应直接指定此选项,而应使用“bazel coverage”命令。
标签: affects_outputs
--compilation_mode=<fastbuild, dbg or opt> [-c] 默认值:“fastbuild”
指定二进制文件的构建模式。值:“fastbuild”“dbg”“opt”。
标记: affects_outputsaction_command_lines
--cpu=<a string> 默认值:""
目标 CPU。
标记: changes_inputsaffects_outputs
--define=<a 'name=value' assignment> 累积多次使用
每个 --define 选项都指定一个 build 变量的赋值。如果某个变量有多个值,则最后一个值胜出。
标记: changes_inputsaffects_outputs
--[no]enable_runfiles 默认值:“自动”
启用 runfiles 符号链接树;默认情况下,在 Windows 上处于关闭状态,在其他平台上处于开启状态。
标签: affects_outputs
--experimental_action_listener=<a build target label> 累积多次使用
已弃用,取而代之的是方面。使用 action_listener 将 extra_action 附加到现有 build 操作。
标记: executionexperimental
--[no]experimental_collect_code_coverage_for_generated_files 默认值:“false”
如果指定,Bazel 还会为生成的文件生成收集覆盖率信息。
标记: affects_outputsexperimental
--experimental_output_paths=<off, content or strip> 默认值:“关闭”
用于确定在输出树中规则应将输出写入何处,尤其适用于多平台 / 多配置 build。此功能尚处于高度实验阶段。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/6526。Starlark 操作可以通过向“execution_requirements”字典添加“supports-path-mapping”键来选择启用路径映射。
标记: loses_incremental_statebazel_internal_configurationaffects_outputsexecution
--experimental_override_name_platform_in_output_dir=<a 'label=value' assignment> 累积多次使用
每个条目都应采用“标签=值”的形式,其中标签是指平台,值是指要在输出路径中使用的所需简称。仅在 --experimental_platform_in_output_dir 为 true 时使用。具有最高的命名优先级。
标记: affects_outputsexperimental
--[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_outputsexperimental
--[no]experimental_use_platforms_in_output_dir_legacy_heuristic 默认值:“true”
请仅在建议的迁移或测试策略中使用此标志。请注意,该启发式方法存在已知缺陷,建议迁移到仅依赖于 --experimental_override_name_platform_in_output_dir。
标记: affects_outputsexperimental
--features=<a string> 累积多次使用
对于在目标配置中构建的目标,给定的功能将默认处于启用或停用状态。指定 -<功能> 将停用相应功能。否定功能始终会覆盖肯定功能。另请参阅 --host_features
标记: changes_inputsaffects_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”
指定 build 期间使用的工具将以何种模式构建。值:“fastbuild”“dbg”“opt”。
标记: affects_outputsaction_command_lines
--host_cpu=<a string> 默认值:""
主机 CPU。
标记: changes_inputsaffects_outputs
--host_features=<a string> 累积多次使用
对于在执行配置中构建的目标,给定的功能将默认处于启用或停用状态。指定 -<功能> 将停用相应功能。负特征始终会覆盖正特征。
标记: changes_inputsaffects_outputs
--[no]incompatible_auto_exec_groups 默认值:“false”
启用后,系统会自动为规则使用的每个工具链创建一个执行组。为此,规则需要在其操作中指定“toolchain”参数。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/17134。
标记: affects_outputsincompatible_change
--[no]incompatible_merge_genfiles_directory 默认值:“true”
如果为 true,则 genfiles 目录会折叠到 bin 目录中。
标记: affects_outputsincompatible_change
--[no]instrument_test_targets 默认值:“false”
启用覆盖率时,指定是否考虑插桩测试规则。如果设置了此标志,则会插桩由 --instrumentation_filter 包含的测试规则。否则,测试规则始终会从覆盖率检测中排除。
标签: affects_outputs
--instrumentation_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths> 默认值:“-/javatests[/:],-/test/java[/:]”
启用覆盖率后,系统只会检测名称包含在指定基于正则表达式的过滤条件中的规则。带有“-”前缀的规则会被排除。请注意,除非启用 --instrument_test_targets,否则仅对非测试规则进行检测。
标签: affects_outputs
--platform_suffix=<a string> 默认值:请参阅说明
指定要添加到配置目录的后缀。
标记: loses_incremental_stateaffects_outputsloading_and_analysis
--run_under=<a prefix in front of command> 默认值:请参阅说明
在“test”和“run”命令的可执行文件之前插入的前缀。如果值为“foo -bar”,而执行命令行是“test_binary -baz”,则最终命令行是“foo -bar test_binary -baz”。这也可以是可执行目标的标签。例如:“valgrind”“strace”“strace -c”“valgrind --quiet --num-callers=20”“//package:target”“//package:target --options”。
标签: action_command_lines
--[no]stamp 默认值:“false”
使用日期、用户名、主机名、工作区信息等标记二进制文件。
标记: affects_outputs
影响 Bazel 严格执行有效 build 输入(规则定义、标志组合等)的程度的选项:
--[no]check_licenses 默认值:“false”
检查依赖软件包施加的许可限制是否与正在构建的目标的分发模式冲突。默认情况下,系统不会检查许可。
标签: build_file_semantics
--[no]check_visibility 默认值:“true”
如果停用,目标依赖项中的可见性错误将降级为警告。
标签: build_file_semantics
--[no]enforce_constraints 默认值:“true”
检查每个目标平台兼容的环境,如果任何目标平台具有不支持相同环境的依赖项,则报告错误
标记: build_file_semantics
--[no]incompatible_check_testonly_for_output_files 默认值:“false”
如果已启用,请通过查找生成规则的 testonly 来检查作为输出文件的前提条件目标的 testonly。这与可见性检查相匹配。
标记: build_file_semanticsincompatible_change
--[no]strict_filesets 默认值:“false”
如果启用此选项,系统会将跨软件包边界的文件集报告为错误。
标记: build_file_semanticseagerness_to_exit
--target_environment=<a build target label> 累积多次使用
声明相应 build 的目标环境。必须是对“环境”规则的标签引用。如果指定了此属性,则所有顶级目标平台都必须与此环境兼容。
标记: changes_inputs
此选项会影响 Starlark 语言或可供 BUILD 文件、.bzl 文件或 WORKSPACE 文件访问的 build API 的语义:
--[no]incompatible_config_setting_private_default_visibility 默认值:“false”
如果 incompatible_enforce_config_setting_visibility=false,则此值为 noop。否则,如果此标志为 false,则任何没有明确 visibility 属性的 config_setting 都是 //visibility:public。如果此标志为 true,则 config_setting 遵循与其他所有规则相同的可见性逻辑。请参阅 https://github.com/bazelbuild/bazel/issues/12933。
标记: loading_and_analysisincompatible_change
--[no]incompatible_enforce_config_setting_visibility 默认值:“true”
如果为 true,则强制执行 config_setting 可见性限制。如果为 false,则每个 config_setting 对每个目标都可见。请参阅 https://github.com/bazelbuild/bazel/issues/12932。
标记: loading_and_analysisincompatible_change
--[no]incompatible_use_plus_in_repo_names 默认值:“true”
无操作。
标记: loading_and_analysis
用于控制测试环境或测试运行程序行为的选项:
--[no]allow_analysis_failures 默认值:“false”
如果为 true,则规则目标的分析失败会导致目标传播包含错误说明的 AnalysisFailureInfo 实例,而不是导致 build 失败。
标记: loading_and_analysisexperimental
--analysis_testing_deps_limit=<an integer> 默认值:“2000”
通过具有 for_analysis_testing 配置转换的规则属性设置传递依赖项的最大数量。超出此限制会导致规则错误。
标签: loading_and_analysis
--test_env=<a 'name=value' assignment with an optional value part> 累积多次使用
指定要注入到测试运行程序环境中的其他环境变量。变量可以通过名称指定(在这种情况下,其值将从 Bazel 客户端环境中读取),也可以通过 name=value 对指定。此选项可多次使用,以指定多个变量。仅供“bazel test”命令使用。
标记: test_runner
与 `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 时会显示直接依赖项。对于 tree、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> 默认值:“hidden”
指定要在查询结果中包含多少有关扩展程序使用情况的详细信息。“usages”只会显示扩展程序名称,“repos”还会包含使用 use_repo 导入的 repo,“all”还会显示由扩展程序生成的其他代码库。
标签: terminal_output
--extension_usages=<a comma-separated list of <module>s> 默认值:""
指定将在 show_extension 查询中显示其扩展使用情况的模块。
标签: terminal_output
--from=<a comma-separated list of <module>s> 默认值:“<root>”
将显示从哪个模块开始的依赖关系图查询。请查看每项查询的说明,了解确切的语义。默认值为 <root>。
标记: terminal_output
--[no]include_builtin 默认值:“false”
在依赖关系图中包含内置模块。默认处于停用状态,因为其输出内容较多。
标签: terminal_output
--[no]include_unused 默认值:“false”
查询还会考虑并显示未使用的模块,这些模块在选择后不会出现在模块解析图中(由于最小版本选择或替换规则)。这可能会对每种查询类型产生不同的影响,例如在 all_paths 命令中包含新路径,或在 explain 命令中包含额外的依赖项。
标签: terminal_output
--output=<text, json or graph> 默认值:“text”
应以何种格式输出查询结果。允许的查询值为:text、json、graph
标记: terminal_output
--[no]verbose 默认值:“false”
查询还会显示模块解析为当前版本的原因(如果已更改)。仅对于 explain 查询,默认值为 true。
标记: terminal_output
用于指定或更改 Bazel 命令的通用输入(不属于其他类别)的选项:
--flag_alias=<a 'name=value' flag alias> 累积多次使用
为 Starlark 标志设置简短名称。它以“<key>=<value>”形式的单个键值对作为实参。
标记: changes_inputs
未归入其他类别的杂项选项:
--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,该命令将使用依赖项的任何缓存版本,如果不存在任何缓存版本,该命令将失败。
--package_path=<colon-separated list of options> 默认值:“%workspace%”
以英文冒号分隔的软件包搜索位置列表。以“%workspace%”开头的元素相对于封闭的工作区。如果省略或为空,则默认为“bazel info default-package-path”的输出。
--[no]show_loading_progress 默认值:“true”
如果启用,会导致 Bazel 打印“正在加载软件包:”消息。

继承 build 中的所有选项。

此选项会影响 Starlark 语言或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义:
--[no]incompatible_use_plus_in_repo_names 默认值:“true”
无操作。
标记: loading_and_analysis
未归入其他类别的杂项选项:
--print_action_mnemonics=<a string> 累积多次使用
列出要按哪些助记符过滤 print_action 数据,留空时不会进行过滤。

查询选项

控制 build 执行的选项:
是否直接进行文件系统调用来创建符号链接树,而不是委托给辅助进程。
标记: loading_and_analysisexecutionexperimental
--[no]experimental_remotable_source_manifests 默认值:“false”
是否使源清单操作可远程执行
标记: loading_and_analysisexecutionexperimental
--[no]experimental_strict_fileset_output 默认值:“false”
如果启用此选项,文件集会将所有输出制品视为常规文件。它们不会遍历目录,也不会对符号链接敏感。
标记: executionexperimental
--[no]incompatible_modify_execution_info_additive 默认值:“false”
启用后,传递多个 --modify_execution_info 标志是累加的。如果停用,则只会考虑最后一个标志。
标记: executionaffects_outputsloading_and_analysisincompatible_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”“HOST_CPUS”“HOST_RAM”),可以选择后跟运算符号([-|*]<float>),例如:“auto”“HOST_CPUS*.5”。“自动”会根据主机资源设置合理的默认值。不得少于 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'。
标记:executionaffects_outputsloading_and_analysis
用于配置执行操作所用工具链的选项:
--[no]incompatible_bazel_test_exec_run_under 默认值:“false”
如果启用,则“bazel test --run_under=//:runner”会在执行配置中构建“//:runner”。如果停用,则在目标配置中构建“//:runner”。Bazel 在执行机器上执行测试,因此前者更正确。这不会影响“bazel run”,后者始终在目标配置中构建“--run_under=//foo”。
标记: affects_outputsincompatible_change
用于控制命令输出的选项:
如果为 true,则为所有目标构建 runfiles 符号链接森林。如果为 false,则仅在本地操作、测试或运行命令需要时写入它们。
标签: affects_outputs
--[no]build_runfile_manifests 默认值:“true”
如果为 true,则为所有目标写入 runfiles 清单。如果为 false,则省略这些参数。如果为 false,本地测试将无法运行。
标签: affects_outputs
--[no]incompatible_always_include_files_in_data 默认值:“true”
如果为 true,原生规则会将数据依赖项的 <code>DefaultInfo.files</code> 添加到其 runfiles 中,这与 Starlark 规则的推荐行为一致 (https://bazel.build/extending/rules#runfiles_features_to_avoid)。
标记: affects_outputsincompatible_change
--[no]legacy_external_runfiles 默认值:“false”
如果为 true,则在 .runfiles/wsname/external/repo(以及 .runfiles/repo)下为外部代码库构建 runfiles 符号链接森林。
标记: affects_outputs
允许用户配置预期输出(影响其值,而非存在)的选项:
--action_env=<a 'name=value' assignment with an optional value part> 累积多次使用
指定可供具有目标配置的操作使用的一组环境变量。变量可以通过 <code>name</code> 指定,在这种情况下,值将从调用环境中获取;也可以通过 <code>name=value</code> 对指定,这样设置的值与调用环境无关。此选项可多次使用;对于同一变量给出的选项,以最新的为准;对于不同变量的选项,则会累积。 <br> 请注意,除非 <code>--incompatible_repo_env_ignores_action_env</code> 为 true,否则所有 <code>name=value</code> 对都将可供代码库规则使用。
标签: action_command_lines
--allowed_cpu_values=<comma-separated set of options> 默认值:""
--cpu 标志的允许值。
标记: changes_inputsaffects_outputs
--[no]collect_code_coverage 默认值:“false”
如果指定了此标志,Bazel 将检测代码(尽可能使用离线检测),并在测试期间收集覆盖率信息。只有与 --instrumentation_filter 匹配的目标会受到影响。通常情况下,不应直接指定此选项,而应使用“bazel coverage”命令。
标签: affects_outputs
--compilation_mode=<fastbuild, dbg or opt> [-c] 默认值:“fastbuild”
指定二进制文件的构建模式。值:“fastbuild”“dbg”“opt”。
标记: affects_outputsaction_command_lines
--cpu=<a string> 默认值:""
目标 CPU。
标记: changes_inputsaffects_outputs
--define=<a 'name=value' assignment> 累积多次使用
每个 --define 选项都指定一个 build 变量的赋值。如果某个变量有多个值,则最后一个值胜出。
标记: changes_inputsaffects_outputs
--[no]enable_runfiles 默认值:“自动”
启用 runfiles 符号链接树;默认情况下,在 Windows 上处于关闭状态,在其他平台上处于开启状态。
标签: affects_outputs
--experimental_action_listener=<a build target label> 累积多次使用
已弃用,取而代之的是方面。使用 action_listener 将 extra_action 附加到现有 build 操作。
标记: executionexperimental
--[no]experimental_collect_code_coverage_for_generated_files 默认值:“false”
如果指定,Bazel 还会为生成的文件生成收集覆盖率信息。
标记: affects_outputsexperimental
--experimental_output_paths=<off, content or strip> 默认值:“关闭”
用于确定在输出树中规则应将输出写入何处,尤其适用于多平台 / 多配置 build。此功能尚处于高度实验阶段。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/6526。Starlark 操作可以通过向“execution_requirements”字典添加“supports-path-mapping”键来选择启用路径映射。
标记: loses_incremental_statebazel_internal_configurationaffects_outputsexecution
--experimental_override_name_platform_in_output_dir=<a 'label=value' assignment> 累积多次使用
每个条目都应采用“标签=值”的形式,其中标签是指平台,值是指要在输出路径中使用的所需简称。仅在 --experimental_platform_in_output_dir 为 true 时使用。具有最高的命名优先级。
标记: affects_outputsexperimental
--[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_outputsexperimental
--[no]experimental_use_platforms_in_output_dir_legacy_heuristic 默认值:“true”
请仅在建议的迁移或测试策略中使用此标志。请注意,该启发式方法存在已知缺陷,建议迁移到仅依赖于 --experimental_override_name_platform_in_output_dir。
标记: affects_outputsexperimental
--features=<a string> 累积多次使用
对于在目标配置中构建的目标,给定的功能将默认处于启用或停用状态。指定 -<功能> 将停用相应功能。否定功能始终会覆盖肯定功能。另请参阅 --host_features
标记: changes_inputsaffects_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”
指定 build 期间使用的工具将以何种模式构建。值:“fastbuild”“dbg”“opt”。
标记: affects_outputsaction_command_lines
--host_cpu=<a string> 默认值:""
主机 CPU。
标记: changes_inputsaffects_outputs
--host_features=<a string> 累积多次使用
对于在执行配置中构建的目标,给定的功能将默认处于启用或停用状态。指定 -<功能> 将停用相应功能。负特征始终会覆盖正特征。
标记: changes_inputsaffects_outputs
--[no]incompatible_auto_exec_groups 默认值:“false”
启用后,系统会自动为规则使用的每个工具链创建一个执行组。为此,规则需要在其操作中指定“toolchain”参数。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/17134。
标记: affects_outputsincompatible_change
--[no]incompatible_merge_genfiles_directory 默认值:“true”
如果为 true,则 genfiles 目录会折叠到 bin 目录中。
标记: affects_outputsincompatible_change
--[no]instrument_test_targets 默认值:“false”
启用覆盖率时,指定是否考虑插桩测试规则。如果设置了此标志,则会插桩由 --instrumentation_filter 包含的测试规则。否则,测试规则始终会从覆盖率检测中排除。
标签: affects_outputs
--instrumentation_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths> 默认值:“-/javatests[/:],-/test/java[/:]”
启用覆盖率后,系统只会检测名称包含在指定基于正则表达式的过滤条件中的规则。带有“-”前缀的规则会被排除。请注意,除非启用 --instrument_test_targets,否则仅对非测试规则进行检测。
标签: affects_outputs
--platform_suffix=<a string> 默认值:请参阅说明
指定要添加到配置目录的后缀。
标记: loses_incremental_stateaffects_outputsloading_and_analysis
--run_under=<a prefix in front of command> 默认值:请参阅说明
在“test”和“run”命令的可执行文件之前插入的前缀。如果值为“foo -bar”,而执行命令行是“test_binary -baz”,则最终命令行是“foo -bar test_binary -baz”。这也可以是可执行目标的标签。例如:“valgrind”“strace”“strace -c”“valgrind --quiet --num-callers=20”“//package:target”“//package:target --options”。
标签: action_command_lines
--[no]stamp 默认值:“false”
使用日期、用户名、主机名、工作区信息等标记二进制文件。
标记: affects_outputs
影响 Bazel 严格执行有效 build 输入(规则定义、标志组合等)的程度的选项:
--[no]check_licenses 默认值:“false”
检查依赖软件包施加的许可限制是否与正在构建的目标的分发模式冲突。默认情况下,系统不会检查许可。
标签: build_file_semantics
--[no]check_visibility 默认值:“true”
如果停用,目标依赖项中的可见性错误将降级为警告。
标签: build_file_semantics
--[no]enforce_constraints 默认值:“true”
检查每个目标平台兼容的环境,如果任何目标平台具有不支持相同环境的依赖项,则报告错误
标记: build_file_semantics
--[no]incompatible_check_testonly_for_output_files 默认值:“false”
如果已启用,请通过查找生成规则的 testonly 来检查作为输出文件的前提条件目标的 testonly。这与可见性检查相匹配。
标记: build_file_semanticsincompatible_change
--[no]strict_filesets 默认值:“false”
如果启用此选项,系统会将跨软件包边界的文件集报告为错误。
标记: build_file_semanticseagerness_to_exit
--target_environment=<a build target label> 累积多次使用
声明相应 build 的目标环境。必须是对“环境”规则的标签引用。如果指定了此属性,则所有顶级目标平台都必须与此环境兼容。
标记: changes_inputs
此选项会影响 Starlark 语言或可供 BUILD 文件、.bzl 文件或 WORKSPACE 文件访问的 build API 的语义:
--[no]incompatible_config_setting_private_default_visibility 默认值:“false”
如果 incompatible_enforce_config_setting_visibility=false,则此值为 noop。否则,如果此标志为 false,则任何没有明确 visibility 属性的 config_setting 都是 //visibility:public。如果此标志为 true,则 config_setting 遵循与其他所有规则相同的可见性逻辑。请参阅 https://github.com/bazelbuild/bazel/issues/12933。
标记: loading_and_analysisincompatible_change
--[no]incompatible_enforce_config_setting_visibility 默认值:“true”
如果为 true,则强制执行 config_setting 可见性限制。如果为 false,则每个 config_setting 对每个目标都可见。请参阅 https://github.com/bazelbuild/bazel/issues/12932。
标记: loading_and_analysisincompatible_change
--[no]incompatible_use_plus_in_repo_names 默认值:“true”
无操作。
标记: loading_and_analysis
用于控制测试环境或测试运行程序行为的选项:
--[no]allow_analysis_failures 默认值:“false”
如果为 true,则规则目标的分析失败会导致目标传播包含错误说明的 AnalysisFailureInfo 实例,而不是导致 build 失败。
标记: loading_and_analysisexperimental
--analysis_testing_deps_limit=<an integer> 默认值:“2000”
通过具有 for_analysis_testing 配置转换的规则属性设置传递依赖项的最大数量。超出此限制会导致规则错误。
标签: loading_and_analysis
--test_env=<a 'name=value' assignment with an optional value part> 累积多次使用
指定要注入到测试运行程序环境中的其他环境变量。变量可以通过名称指定(在这种情况下,其值将从 Bazel 客户端环境中读取),也可以通过 name=value 对指定。此选项可多次使用,以指定多个变量。仅供“bazel test”命令使用。
标记: test_runner
与查询输出和语义相关的选项:
--aspect_deps=<off, conservative or precise> 默认值:“conservative”
当输出格式为 {xml,proto,record} 时,如何解决方面依赖项。“off”表示不解析任何方面依赖项;“conservative”(默认)表示添加所有已声明的方面依赖项,无论它们是否具有直接依赖项的规则类;“precise”表示仅添加那些可能处于有效状态的方面(根据直接依赖项的规则类)。请注意,精确模式需要加载其他软件包才能评估单个目标,因此比其他模式慢。另请注意,即使是精确模式也不是完全精确的:是否计算某个方面是在分析阶段决定的,而分析阶段不会在“bazel query”期间运行。
标签: build_file_semantics
--[no]consistent_labels 默认值:“false”
如果启用,每个查询命令都会发出标签,就像通过应用于 <code>Label</code> 实例的 Starlark <code>str</code> 函数一样。这对于需要匹配不同查询命令和/或规则发出的标签的工具非常有用。如果未启用,输出格式化程序可以随意发出明显的代码库名称(相对于主代码库),以使输出更易于阅读。
标签: terminal_output
--[no]experimental_explicit_aspects 默认值:“false”
aquery、cquery:是否在输出中包含方面生成的动作。query:无操作(始终遵循方面)。
标签: terminal_output
--[no]experimental_graphless_query 默认值:“自动”
如果为 true,则使用不复制图的 Query 实现。新实现仅支持 --order_output=no,并且仅支持部分输出格式化程序。
标记: build_file_semanticseagerness_to_exit
--graph:conditional_edges_limit=<an integer> 默认值:“4”
要显示的情况标签数量上限。-1 表示不截断,0 表示不添加注释。此选项仅适用于 --output=graph。
标签: terminal_output
--[no]graph:factored 默认值:“true”
如果为 true,则图将以“分解”方式发出,即拓扑等效节点将合并在一起,并且它们的标签将串联起来。此选项仅适用于 --output=graph。
标签: terminal_output
--graph:node_limit=<an integer> 默认值:“512”
输出中图节点的标签字符串的最大长度。较长的标签会被截断;-1 表示不截断。此选项仅适用于 --output=graph。
标签: terminal_output
--[no]implicit_deps 默认值:“true”
如果启用,则隐式依赖项将包含在查询所针对的依赖关系图中。隐式依赖项是指未在 BUILD 文件中明确指定但由 Bazel 添加的依赖项。对于 cquery,此选项用于控制过滤已解析的工具链。
标签: build_file_semantics
--[no]include_aspects 默认值:“true”
aquery、cquery:是否在输出中包含方面生成的动作。query:无操作(始终遵循方面)。
标签: terminal_output
--[no]incompatible_lexicographical_output 默认值:“true”
如果设置了此选项,则按字典顺序对 --order_output=auto 输出进行排序。
标记: terminal_outputincompatible_change
--[no]incompatible_package_group_includes_double_slash 默认值:“true”
如果启用,在输出 package_group 的“packages”属性时,不会省略开头的“//”。
标记: terminal_outputincompatible_change
--[no]infer_universe_scope 默认值:“false”
如果设置了此标志,但未设置 --universe_scope,则 --universe_scope 的值将被推断为查询表达式中唯一目标模式的列表。请注意,对于使用全宇宙范围函数(例如 `allrdeps`)的查询表达式,推断出的 --universe_scope 值可能不是您想要的,因此只有在您知道自己在做什么的情况下才应使用此选项。如需了解详情和查看示例,请访问 https://bazel.build/reference/query#sky-query。如果设置了 --universe_scope,则忽略此选项的值。注意:此选项仅适用于“query”(即不适用于“cquery”)。
标记: loading_and_analysis
--[no]line_terminator_null 默认值:“false”
每种格式是否以 \0 而不是换行符结尾。
标签: terminal_output
--[no]nodep_deps 默认值:“true”
如果启用,则来自“nodep”属性的依赖项将包含在查询所针对的依赖关系图中。“nodep”属性的一个常见示例是“visibility”。运行并解析 `info build-language` 的输出,以了解 build 语言中的所有“nodep”属性。
标签: build_file_semantics
--noorder_results
按依赖顺序(默认)或无序方式输出结果。无序输出速度更快,但仅在 --output 不是 minrank、maxrank 或 graph 时受支持。
展开后:
  --order_output=no

标记: terminal_output
--null
每种格式是否以 \0 而不是换行符结尾。
展开后:
  --line_terminator_null=true

标记: terminal_output
--order_output=<no, deps, auto or full> 默认值:“自动”
以无序 (no)、按依赖关系排序 (deps) 或完全排序 (full) 的方式输出结果。默认值为“auto”,表示结果将按依赖关系排序或完全排序输出,具体取决于输出格式化程序(对于 proto、minrank、maxrank 和 graph,按依赖关系排序;对于所有其他格式化程序,完全排序)。如果输出完全有序,则节点会以完全确定的(总)顺序打印。首先,所有节点按字母顺序排序。然后,列表中的每个节点都用作后序深度优先搜索的起点,其中未访问节点的出边按后继节点的字母顺序遍历。最后,节点会按访问顺序的相反顺序打印。
标签: 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、xml。
标签: terminal_output
--output_file=<a string> 默认值:""
指定此标志后,查询结果将直接写入此文件,并且不会向 Bazel 的标准输出流 (stdout) 打印任何内容。在基准测试中,这通常比 <code>bazel query &gt; file</code> 快。
标记: 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() 创建的可配置属性会被扁平化。对于列表类型,扁平化表示形式是一个列表,其中包含选择映射的每个值一次。标量类型会扁平化为 null。
标签: 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_classes 默认值:“false”
填充每个规则的 rule_class_key 字段;对于具有给定 rule_class_key 的第一个规则,还要填充其 rule_class_info proto 字段。rule_class_key 字段可唯一标识规则类,而 rule_class_info 字段是 Stardoc 格式的规则类 API 定义。
标签: 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,则当 tests() 表达式遇到包含非测试目标的 test_suite 时会给出错误。
标记: build_file_semanticseagerness_to_exit
--[no]tool_deps 默认值:“true”
查询:如果停用,则依赖于“执行配置”的依赖项将不会包含在查询所针对的依赖关系图中。“exec 配置”依赖项边(例如从任何“proto_library”规则到 Protocol Compiler 的依赖项边)通常指向在 build 期间执行的工具,而不是同一“target”程序的一部分。 Cquery:如果停用,则过滤掉所有配置的目标,这些目标从发现此配置的顶级目标交叉执行转换。这意味着,如果顶级目标位于目标配置中,则仅返回目标配置中也包含的已配置目标。如果顶级目标位于执行配置中,则仅返回执行配置的目标。此选项不会排除已解析的工具链。
标签: build_file_semantics
--universe_scope=<comma-separated list of options> 默认值:""
以英文逗号分隔的目标模式集(加法和减法)。查询可以在指定目标传递闭包所定义的范围内执行。此选项用于 query 和 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
影响日志记录详细程度、格式或位置的选项:
--experimental_repository_resolved_file=<a string> 默认值:""
如果非空,则写入一个 Starlark 值,其中包含已执行的所有 Starlark 代码库规则的已解析信息。
标记: affects_outputs
用于指定或更改 Bazel 命令的通用输入(不属于其他类别)的选项:
--flag_alias=<a 'name=value' flag alias> 累积多次使用
为 Starlark 标志设置简短名称。它以“<key>=<value>”形式的单个键值对作为实参。
标记: changes_inputs
未归入其他类别的杂项选项:
--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,该命令将使用依赖项的任何缓存版本,如果不存在任何缓存版本,该命令将失败。
--package_path=<colon-separated list of options> 默认值:“%workspace%”
以英文冒号分隔的软件包搜索位置列表。以“%workspace%”开头的元素相对于封闭的工作区。如果省略或为空,则默认为“bazel info default-package-path”的输出。
--[no]show_loading_progress 默认值:“true”
如果启用,会导致 Bazel 打印“正在加载软件包:”消息。

运行选项

继承 build 中的所有选项。

显示在命令之前且由客户端解析的选项:
--[no]portable_paths 默认值:“false”
如果为 true,则在 ExecRequest 中包含要替换的路径,以使生成的路径可移植。
标签: affects_outputs
--[no]run 默认值:“true”
如果为 false,则跳过为 build 目标构建的命令行。请注意,对于所有 --script_path build,此标志都会被忽略。
标签: affects_outputs
--run_env=<a 'name=value' assignment with an optional value part> 累积多次使用
指定可供具有目标配置的操作使用的一组环境变量。变量可以通过名称指定(在这种情况下,系统会从调用环境中获取值),也可以通过 name=value 对指定(这样会独立于调用环境设置值)。此选项可多次使用;对于同一变量给出的选项,以最新的为准;对于不同变量的选项,则会累积。
标记: affects_outputs
允许用户配置预期输出(影响其值,而非存在)的选项:
--script_path=<a path> 默认值:请参阅说明
如果已设置,则将调用目标的 shell 脚本写入指定的文件。如果设置了此选项,则不会从 Bazel 运行目标。使用“bazel run --script_path=foo //foo && ./foo”可调用目标“//foo”。这与“bazel run //foo”的不同之处在于,前者会释放 bazel 锁定,并将可执行文件连接到终端的 stdin。
标志: affects_outputsexecution
此选项会影响 Starlark 语言或可供 BUILD 文件、.bzl 文件或 WORKSPACE 文件访问的 build API 的语义:
--[no]incompatible_use_plus_in_repo_names 默认值:“true”
无操作。
标记: loading_and_analysis

关机选项

用于控制命令输出的选项:
--iff_heap_size_greater_than=<an integer> 默认值:“0”
如果非零,则仅当 JVM 消耗的总内存(以 MB 为单位)超过此值时,关闭才会关闭服务器。
标志: loses_incremental_stateeagerness_to_exit
此选项会影响 Starlark 语言或可供 BUILD 文件、.bzl 文件或 WORKSPACE 文件访问的 build API 的语义:
--[no]incompatible_use_plus_in_repo_names 默认值:“true”
无操作。
标记: loading_and_analysis

同步选项

控制 build 执行的选项:
--[no]configure 默认值:“False”
仅同步标记为“配置”的仓库,以用于系统配置。
标签: changes_inputs
是否直接进行文件系统调用来创建符号链接树,而不是委托给辅助进程。
标记: loading_and_analysisexecutionexperimental
--[no]experimental_remotable_source_manifests 默认值:“false”
是否使源清单操作可远程执行
标记: loading_and_analysisexecutionexperimental
--[no]experimental_strict_fileset_output 默认值:“false”
如果启用此选项,文件集会将所有输出制品视为常规文件。它们不会遍历目录,也不会对符号链接敏感。
标记: executionexperimental
--[no]incompatible_modify_execution_info_additive 默认值:“false”
启用后,传递多个 --modify_execution_info 标志是累加的。如果停用,则只会考虑最后一个标志。
标记: executionaffects_outputsloading_and_analysisincompatible_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”“HOST_CPUS”“HOST_RAM”),可以选择后跟运算符号([-|*]<float>),例如:“auto”“HOST_CPUS*.5”。“自动”会根据主机资源设置合理的默认值。不得少于 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'。
标记: executionaffects_outputsloading_and_analysis
--only=<a string> 累积多次使用
如果指定了此选项,则仅同步此选项指定的代码库。仍将所有(或所有类似配置的,如果指定了 --configure)过时的配置视为过时。
标记: changes_inputs
用于配置执行操作所用工具链的选项:
--[no]incompatible_bazel_test_exec_run_under 默认值:“false”
如果启用,则“bazel test --run_under=//:runner”会在执行配置中构建“//:runner”。如果停用,则在目标配置中构建“//:runner”。Bazel 在执行机器上执行测试,因此前者更正确。这不会影响“bazel run”,后者始终在目标配置中构建“--run_under=//foo”。
标记: affects_outputsincompatible_change
用于控制命令输出的选项:
如果为 true,则为所有目标构建 runfiles 符号链接森林。如果为 false,则仅在本地操作、测试或运行命令需要时写入它们。
标签: affects_outputs
--[no]build_runfile_manifests 默认值:“true”
如果为 true,则为所有目标写入 runfiles 清单。如果为 false,则省略这些参数。如果为 false,本地测试将无法运行。
标签: affects_outputs
--[no]incompatible_always_include_files_in_data 默认值:“true”
如果为 true,原生规则会将数据依赖项的 <code>DefaultInfo.files</code> 添加到其 runfiles 中,这与 Starlark 规则的推荐行为一致 (https://bazel.build/extending/rules#runfiles_features_to_avoid)。
标记: affects_outputsincompatible_change
--[no]legacy_external_runfiles 默认值:“false”
如果为 true,则在 .runfiles/wsname/external/repo(以及 .runfiles/repo)下为外部代码库构建 runfiles 符号链接森林。
标记: affects_outputs
允许用户配置预期输出(影响其值,而非存在)的选项:
--action_env=<a 'name=value' assignment with an optional value part> 累积多次使用
指定可供具有目标配置的操作使用的一组环境变量。变量可以通过 <code>name</code> 指定,在这种情况下,值将从调用环境中获取;也可以通过 <code>name=value</code> 对指定,这样设置的值与调用环境无关。此选项可多次使用;对于同一变量给出的选项,以最新的为准;对于不同变量的选项,则会累积。 <br> 请注意,除非 <code>--incompatible_repo_env_ignores_action_env</code> 为 true,否则所有 <code>name=value</code> 对都将可供代码库规则使用。
标签: action_command_lines
--allowed_cpu_values=<comma-separated set of options> 默认值:""
--cpu 标志的允许值。
标记: changes_inputsaffects_outputs
--[no]collect_code_coverage 默认值:“false”
如果指定了此标志,Bazel 将检测代码(尽可能使用离线检测),并在测试期间收集覆盖率信息。只有与 --instrumentation_filter 匹配的目标会受到影响。通常情况下,不应直接指定此选项,而应使用“bazel coverage”命令。
标签: affects_outputs
--compilation_mode=<fastbuild, dbg or opt> [-c] 默认值:“fastbuild”
指定二进制文件的构建模式。值:“fastbuild”“dbg”“opt”。
标记: affects_outputsaction_command_lines
--cpu=<a string> 默认值:""
目标 CPU。
标记: changes_inputsaffects_outputs
--define=<a 'name=value' assignment> 累积多次使用
每个 --define 选项都指定一个 build 变量的赋值。如果某个变量有多个值,则最后一个值胜出。
标记: changes_inputsaffects_outputs
--[no]enable_runfiles 默认值:“自动”
启用 runfiles 符号链接树;默认情况下,在 Windows 上处于关闭状态,在其他平台上处于开启状态。
标签: affects_outputs
--experimental_action_listener=<a build target label> 累积多次使用
已弃用,取而代之的是方面。使用 action_listener 将 extra_action 附加到现有 build 操作。
标记: executionexperimental
--[no]experimental_collect_code_coverage_for_generated_files 默认值:“false”
如果指定,Bazel 还会为生成的文件生成收集覆盖率信息。
标记: affects_outputsexperimental
--experimental_output_paths=<off, content or strip> 默认值:“关闭”
用于确定在输出树中规则应将输出写入何处,尤其适用于多平台 / 多配置 build。此功能尚处于高度实验阶段。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/6526。Starlark 操作可以通过向“execution_requirements”字典添加“supports-path-mapping”键来选择启用路径映射。
标记: loses_incremental_statebazel_internal_configurationaffects_outputsexecution
--experimental_override_name_platform_in_output_dir=<a 'label=value' assignment> 累积多次使用
每个条目都应采用“标签=值”的形式,其中标签是指平台,值是指要在输出路径中使用的所需简称。仅在 --experimental_platform_in_output_dir 为 true 时使用。具有最高的命名优先级。
标记: affects_outputsexperimental
--[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_outputsexperimental
--[no]experimental_use_platforms_in_output_dir_legacy_heuristic 默认值:“true”
请仅在建议的迁移或测试策略中使用此标志。请注意,该启发式方法存在已知缺陷,建议迁移到仅依赖于 --experimental_override_name_platform_in_output_dir。
标记: affects_outputsexperimental
--features=<a string> 累积多次使用
对于在目标配置中构建的目标,给定的功能将默认处于启用或停用状态。指定 -<功能> 将停用相应功能。否定功能始终会覆盖肯定功能。另请参阅 --host_features
标记: changes_inputsaffects_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”
指定 build 期间使用的工具将以何种模式构建。值:“fastbuild”“dbg”“opt”。
标记: affects_outputsaction_command_lines
--host_cpu=<a string> 默认值:""
主机 CPU。
标记: changes_inputsaffects_outputs
--host_features=<a string> 累积多次使用
对于在执行配置中构建的目标,给定的功能将默认处于启用或停用状态。指定 -<功能> 将停用相应功能。负特征始终会覆盖正特征。
标记: changes_inputsaffects_outputs
--[no]incompatible_auto_exec_groups 默认值:“false”
启用后,系统会自动为规则使用的每个工具链创建一个执行组。为此,规则需要在其操作中指定“toolchain”参数。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/17134。
标记: affects_outputsincompatible_change
--[no]incompatible_merge_genfiles_directory 默认值:“true”
如果为 true,则 genfiles 目录会折叠到 bin 目录中。
标记: affects_outputsincompatible_change
--[no]instrument_test_targets 默认值:“false”
启用覆盖率时,指定是否考虑插桩测试规则。如果设置了此标志,则会插桩由 --instrumentation_filter 包含的测试规则。否则,测试规则始终会从覆盖率检测中排除。
标签: affects_outputs
--instrumentation_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths> 默认值:“-/javatests[/:],-/test/java[/:]”
启用覆盖率后,系统只会检测名称包含在指定基于正则表达式的过滤条件中的规则。带有“-”前缀的规则会被排除。请注意,除非启用 --instrument_test_targets,否则仅对非测试规则进行检测。
标签: affects_outputs
--platform_suffix=<a string> 默认值:请参阅说明
指定要添加到配置目录的后缀。
标记: loses_incremental_stateaffects_outputsloading_and_analysis
--run_under=<a prefix in front of command> 默认值:请参阅说明
在“test”和“run”命令的可执行文件之前插入的前缀。如果值为“foo -bar”,而执行命令行是“test_binary -baz”,则最终命令行是“foo -bar test_binary -baz”。这也可以是可执行目标的标签。例如:“valgrind”“strace”“strace -c”“valgrind --quiet --num-callers=20”“//package:target”“//package:target --options”。
标签: action_command_lines
--[no]stamp 默认值:“false”
使用日期、用户名、主机名、工作区信息等标记二进制文件。
标记: affects_outputs
影响 Bazel 严格执行有效 build 输入(规则定义、标志组合等)的程度的选项:
--[no]check_licenses 默认值:“false”
检查依赖软件包施加的许可限制是否与正在构建的目标的分发模式冲突。默认情况下,系统不会检查许可。
标签: build_file_semantics
--[no]check_visibility 默认值:“true”
如果停用,目标依赖项中的可见性错误将降级为警告。
标签: build_file_semantics
--[no]enforce_constraints 默认值:“true”
检查每个目标平台兼容的环境,如果任何目标平台具有不支持相同环境的依赖项,则报告错误
标记: build_file_semantics
--[no]incompatible_check_testonly_for_output_files 默认值:“false”
如果已启用,请通过查找生成规则的 testonly 来检查作为输出文件的前提条件目标的 testonly。这与可见性检查相匹配。
标记: build_file_semanticsincompatible_change
--[no]strict_filesets 默认值:“false”
如果启用此选项,系统会将跨软件包边界的文件集报告为错误。
标记: build_file_semanticseagerness_to_exit
--target_environment=<a build target label> 累积多次使用
声明相应 build 的目标环境。必须是对“环境”规则的标签引用。如果指定了此属性,则所有顶级目标平台都必须与此环境兼容。
标记: changes_inputs
此选项会影响 Starlark 语言或可供 BUILD 文件、.bzl 文件或 WORKSPACE 文件访问的 build API 的语义:
--[no]incompatible_config_setting_private_default_visibility 默认值:“false”
如果 incompatible_enforce_config_setting_visibility=false,则此值为 noop。否则,如果此标志为 false,则任何没有明确 visibility 属性的 config_setting 都是 //visibility:public。如果此标志为 true,则 config_setting 遵循与其他所有规则相同的可见性逻辑。请参阅 https://github.com/bazelbuild/bazel/issues/12933。
标记: loading_and_analysisincompatible_change
--[no]incompatible_enforce_config_setting_visibility 默认值:“true”
如果为 true,则强制执行 config_setting 可见性限制。如果为 false,则每个 config_setting 对每个目标都可见。请参阅 https://github.com/bazelbuild/bazel/issues/12932。
标记: loading_and_analysisincompatible_change
--[no]incompatible_use_plus_in_repo_names 默认值:“true”
无操作。
标记: loading_and_analysis
用于控制测试环境或测试运行程序行为的选项:
--[no]allow_analysis_failures 默认值:“false”
如果为 true,则规则目标的分析失败会导致目标传播包含错误说明的 AnalysisFailureInfo 实例,而不是导致 build 失败。
标记: loading_and_analysisexperimental
--analysis_testing_deps_limit=<an integer> 默认值:“2000”
通过具有 for_analysis_testing 配置转换的规则属性设置传递依赖项的最大数量。超出此限制会导致规则错误。
标签: loading_and_analysis
--test_env=<a 'name=value' assignment with an optional value part> 累积多次使用
指定要注入到测试运行程序环境中的其他环境变量。变量可以通过名称指定(在这种情况下,其值将从 Bazel 客户端环境中读取),也可以通过 name=value 对指定。此选项可多次使用,以指定多个变量。仅供“bazel test”命令使用。
标记: test_runner
影响日志记录详细程度、格式或位置的选项:
--experimental_repository_resolved_file=<a string> 默认值:""
如果非空,则写入一个 Starlark 值,其中包含已执行的所有 Starlark 代码库规则的已解析信息。
标记: affects_outputs
用于指定或更改 Bazel 命令的通用输入(不属于其他类别)的选项:
--flag_alias=<a 'name=value' flag alias> 累积多次使用
为 Starlark 标志设置简短名称。它以“<key>=<value>”形式的单个键值对作为实参。
标记: changes_inputs
未归入其他类别的杂项选项:
--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,该命令将使用依赖项的任何缓存版本,如果不存在任何缓存版本,该命令将失败。
--package_path=<colon-separated list of options> 默认值:“%workspace%”
以英文冒号分隔的软件包搜索位置列表。以“%workspace%”开头的元素相对于封闭的工作区。如果省略或为空,则默认为“bazel info default-package-path”的输出。
--[no]show_loading_progress 默认值:“true”
如果启用,会导致 Bazel 打印“正在加载软件包:”消息。

测试选项

继承 build 中的所有选项。

此选项会影响 Starlark 语言或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义:
--[no]incompatible_use_plus_in_repo_names 默认值:“true”
无操作。
标记: loading_and_analysis
影响日志记录详细程度、格式或位置的选项:
--[no]print_relative_test_log_paths 默认值:“false”
如果为 true,则在打印测试日志的路径时,使用利用“testlogs”便捷符号链接的相对路径。注意 - 后续使用不同配置的“build”“test”等调用可能会导致此符号链接的目标发生变化,从而使之前打印的路径不再有用。
标签: affects_outputs
--[no]test_verbose_timeout_warnings 默认值:“false”
如果为 true,则在实际测试执行时间与测试定义的超时时间(无论是隐式还是显式)不匹配时,打印额外的警告。
标签: affects_outputs
--[no]verbose_test_summary 默认值:“true”
如果为 true,则在测试摘要中打印其他信息(时间、失败的运行次数等)。
标记: affects_outputs

供应商选项

继承自 test 的所有选项。

控制 build 执行的选项:
--[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”“HOST_CPUS”“HOST_RAM”),可以选择后跟运算符号([-|*]<float>),例如:“auto”“HOST_CPUS*.5”。“自动”会根据主机资源设置合理的默认值。不得少于 1。
标记: bazel_internal_configuration
此选项会影响 Starlark 语言或可供 BUILD 文件、.bzl 文件或 WORKSPACE 文件访问的 build API 的语义:
--[no]incompatible_config_setting_private_default_visibility 默认值:“false”
如果 incompatible_enforce_config_setting_visibility=false,则此值为 noop。否则,如果此标志为 false,则任何没有明确 visibility 属性的 config_setting 都是 //visibility:public。如果此标志为 true,则 config_setting 遵循与其他所有规则相同的可见性逻辑。请参阅 https://github.com/bazelbuild/bazel/issues/12933。
标记: loading_and_analysisincompatible_change
--[no]incompatible_enforce_config_setting_visibility 默认值:“true”
如果为 true,则强制执行 config_setting 可见性限制。如果为 false,则每个 config_setting 对每个目标都可见。请参阅 https://github.com/bazelbuild/bazel/issues/12932。
标记: loading_and_analysisincompatible_change
--[no]incompatible_use_plus_in_repo_names 默认值:“true”
无操作。
标记: loading_and_analysis
与 Bzlmod 输出和语义相关的选项:
--repo=<a string> 累积多次使用
仅指定了相应代码库的供应商,可以是 `@apparent_repo_name` 或 `@@canonical_repo_name`。此选项可多次设置
标记: changes_inputs
其他未归类的选项:
--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,该命令将使用依赖项的任何缓存版本,如果不存在任何缓存版本,该命令将失败。
--package_path=<colon-separated list of options> 默认值:“%workspace%”
以英文冒号分隔的软件包搜索位置列表。以“%workspace%”开头的元素相对于封闭的工作区。如果省略或为空,则默认为“bazel info default-package-path”的输出。
--[no]show_loading_progress 默认值:“true”
如果启用,会导致 Bazel 打印“正在加载软件包:”消息。
控制 build 执行的选项:
是否直接进行文件系统调用来创建符号链接树,而不是委托给辅助进程。
标记: loading_and_analysisexecutionexperimental
--[no]experimental_persistent_aar_extractor 默认值:“false”
使用 worker 启用持久性 aar 提取器。
标记: executionexperimental
--[no]experimental_remotable_source_manifests 默认值:“false”
是否使源清单操作可远程执行
标记: loading_and_analysisexecutionexperimental
--[no]experimental_split_coverage_postprocessing 默认值:“false”
如果为 true,则 Bazel 将在新 spawn 中运行测试的覆盖率后处理。
标记: executionexperimental
--[no]experimental_strict_fileset_output 默认值:“false”
如果启用此选项,文件集会将所有输出制品视为常规文件。它们不会遍历目录,也不会对符号链接敏感。
标记: executionexperimental
--[no]incompatible_modify_execution_info_additive 默认值:“false”
启用后,传递多个 --modify_execution_info 标志是累加的。如果停用,则只会考虑最后一个标志。
标记: executionaffects_outputsloading_and_analysisincompatible_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'。
标记: executionaffects_outputsloading_and_analysis
--persistent_android_dex_desugar
通过使用 worker 启用持久性 Android dex 和 desugar 操作。
展开后:
  --internal_persistent_android_dex_desugar
  --strategy=Desugar=worker
  --strategy=DexBuilder=worker

标记: host_machine_resource_optimizationsexecution
--persistent_android_resource_processor
使用工作器启用持久性 Android 资源处理器。
展开后:
  --internal_persistent_busybox_tools
  --strategy=AaptPackage=worker
  --strategy=AndroidResourceParser=worker
  --strategy=AndroidResourceValidator=worker
  --strategy=AndroidResourceCompiler=worker
  --strategy=RClassGenerator=worker
  --strategy=AndroidResourceLink=worker
  --strategy=AndroidAapt2=worker
  --strategy=AndroidAssetMerger=worker
  --strategy=AndroidResourceMerger=worker
  --strategy=AndroidCompiledResourceMerger=worker
  --strategy=ManifestMerger=worker
  --strategy=AndroidManifestMerger=worker
  --strategy=Aapt2Optimize=worker
  --strategy=AARGenerator=worker
  --strategy=ProcessDatabinding=worker
  --strategy=GenerateDataBindingBaseClasses=worker

标记: host_machine_resource_optimizationsexecution
--persistent_multiplex_android_dex_desugar
通过使用 worker 启用持久的多路复用 Android dex 和 desugar 操作。
展开后:
  --persistent_android_dex_desugar
  --internal_persistent_multiplex_android_dex_desugar

标记: host_machine_resource_optimizationsexecution
--persistent_multiplex_android_resource_processor
使用工作线程启用持久复用的 Android 资源处理器。
展开后:
  --persistent_android_resource_processor
  --modify_execution_info=AaptPackage=+supports-multiplex-workers
  --modify_execution_info=AndroidResourceParser=+supports-multiplex-workers
  --modify_execution_info=AndroidResourceValidator=+supports-multiplex-workers
  --modify_execution_info=AndroidResourceCompiler=+supports-multiplex-workers
  --modify_execution_info=RClassGenerator=+supports-multiplex-workers
  --modify_execution_info=AndroidResourceLink=+supports-multiplex-workers
  --modify_execution_info=AndroidAapt2=+supports-multiplex-workers
  --modify_execution_info=AndroidAssetMerger=+supports-multiplex-workers
  --modify_execution_info=AndroidResourceMerger=+supports-multiplex-workers
  --modify_execution_info=AndroidCompiledResourceMerger=+supports-multiplex-workers
  --modify_execution_info=ManifestMerger=+supports-multiplex-workers
  --modify_execution_info=AndroidManifestMerger=+supports-multiplex-workers
  --modify_execution_info=Aapt2Optimize=+supports-multiplex-workers
  --modify_execution_info=AARGenerator=+supports-multiplex-workers

标记: host_machine_resource_optimizationsexecution
--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_optimizationsexecution
--[no]use_target_platform_for_tests 默认值:“false”
如果为 true,则 Bazel 将使用目标平台来运行测试,而不是测试执行组。
标记: execution
用于配置执行操作所用工具链的选项:
--android_compiler=<a string> 默认值:请参阅说明
Android 目标编译器。
标记: affects_outputsloading_and_analysisloses_incremental_state
--android_manifest_merger=<legacy, android or force_android> 默认值:“android”
选择要用于 android_binary 规则的清单合并器。标志,用于帮助从旧版合并器过渡到 Android 清单合并器。
标记: affects_outputsloading_and_analysisloses_incremental_state
--android_platforms=<a build target label> 默认值:""
设置 android_binary 目标使用的平台。如果指定了多个平台,则相应二进制文件为胖 APK,其中包含每个指定目标平台的原生二进制文件。
标记: changes_inputsloading_and_analysisloses_incremental_state
--apple_crosstool_top=<a build target label> 默认值:“@bazel_tools//tools/cpp:toolchain”
要在 Apple 和 Objc 规则及其依赖项中使用的交叉工具链软件包的标签。
标记: loses_incremental_statechanges_inputs
--cc_output_directory_tag=<a string> 默认值:""
指定要添加到配置目录的后缀。
标签: affects_outputs
--compiler=<a string> 默认值:请参阅说明
用于编译目标的 C++ 编译器。
标记: loading_and_analysisexecution
--coverage_output_generator=<a build target label> 默认值:“@bazel_tools//tools/test:lcov_merger”
用于后处理原始覆盖率报告的二进制文件的位置。目前,这必须是一个包含单个文件(即二进制文件)的 filegroup。默认为“//tools/test:lcov_merger”。
标记: changes_inputsaffects_outputsloading_and_analysis
--coverage_report_generator=<a build target label> 默认值:“@bazel_tools//tools/test:coverage_report_generator”
用于生成覆盖率报告的二进制文件的位置。目前,这必须是一个包含单个文件(即二进制文件)的 filegroup。默认为“//tools/test:coverage_report_generator”。
标记: changes_inputsaffects_outputsloading_and_analysis
--coverage_support=<a build target label> 默认值:“@bazel_tools//tools/test:coverage_support”
每个收集代码覆盖率的测试操作的输入中所需的支持文件的位置。默认为“//tools/test:coverage_support”。
标记: changes_inputsaffects_outputsloading_and_analysis
--custom_malloc=<a build target label> 默认值:请参阅说明
指定自定义 malloc 实现。此设置会覆盖 build 规则中的 malloc 属性。
标记: changes_inputsaffects_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_stateloading_and_analysisexecutionexperimental
--[no]experimental_prefer_mutual_xcode 默认值:“true”
如果为 true,则使用本地和远程可用的最新 Xcode。如果为 false,或者没有共同可用的版本,则使用通过 xcode-select 选择的本地 Xcode 版本。
标记: loses_incremental_stateexperimental
--extra_execution_platforms=<comma-separated list of options> 默认值:""
可作为执行平台来运行操作的平台。平台可以按确切目标指定,也可以按目标模式指定。这些平台将优先于通过 register_execution_platforms() 在 WORKSPACE 文件中声明的平台得到考虑。此选项只能设置一次;后续实例将覆盖之前的标志设置。
标签: execution
--extra_toolchains=<comma-separated list of options> 累积多次使用
在工具链解析期间要考虑的工具链规则。可以通过确切的目标或作为目标模式来指定工具链。这些工具链将优先于通过 register_toolchains() 在 WORKSPACE 文件中声明的工具链进行考虑。
标记: affects_outputschanges_inputsloading_and_analysis
--grte_top=<a label> 默认值:请参阅说明
已签入的 libc 库的标签。默认值由交叉工具链选择,您几乎不需要替换它。
标记: action_command_linesaffects_outputs
--host_compiler=<a string> 默认值:请参阅说明
空操作标志。将在未来版本中移除。
标记: loading_and_analysisexecution
--host_grte_top=<a label> 默认值:请参阅说明
如果指定,此设置会替换执行配置的 libc 顶级目录 (--grte_top)。
标记: action_command_linesaffects_outputs
--host_platform=<a build target label> 默认值:“@bazel_tools//tools:host_platform”
描述宿主系统的平台规则的标签。
标记: affects_outputschanges_inputsloading_and_analysis
--[no]incompatible_bazel_test_exec_run_under 默认值:“false”
如果启用,则“bazel test --run_under=//:runner”会在执行配置中构建“//:runner”。如果停用,则在目标配置中构建“//:runner”。Bazel 在执行机器上执行测试,因此前者更正确。这不会影响“bazel run”,后者始终在目标配置中构建“--run_under=//foo”。
标记: affects_outputsincompatible_change
--[no]incompatible_dont_enable_host_nonhost_crosstool_features 默认值:“true”
如果为 true,Bazel 将不会在 C++ 工具链中启用“host”和“nonhost”功能(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7407)。
标记: loading_and_analysisincompatible_change
--[no]incompatible_enable_apple_toolchain_resolution 默认值:“false”
使用工具链解析来选择 Apple 规则(Starlark 和原生)的 Apple SDK
标记: loading_and_analysisincompatible_change
--[no]incompatible_remove_legacy_whole_archive 默认值:“true”
如果为 true,Bazel 默认不会将库依赖项作为整个归档进行链接(如需迁移说明,请参阅 https://github.com/bazelbuild/bazel/issues/7362)。
标记: loading_and_analysisincompatible_change
--[no]incompatible_strip_executable_safely 默认值:“false”
如果为 true,则可执行文件的剥离操作将使用标志 -x,该标志不会中断动态符号解析。
标记: action_command_linesincompatible_change
--[no]interface_shared_objects 默认值:“true”
如果工具链支持,则使用接口共享对象。所有 ELF 工具链目前都支持此设置。
标签: loading_and_analysisaffects_outputsaffects_outputs
--ios_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
指定用于构建 iOS 应用的 iOS SDK 版本。如果未指定,则使用来自“xcode_version”的默认 iOS SDK 版本。
标签: loses_incremental_state
--macos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
指定用于构建 macOS 应用的 macOS SDK 版本。如果未指定,则使用来自“xcode_version”的默认 macOS SDK 版本。
标签: loses_incremental_state
--minimum_os_version=<a string> 默认值:请参阅说明
您的编译所针对的最低操作系统版本。
标记: loading_and_analysisaffects_outputs
--platform_mappings=<a main workspace-relative path> 默认值:""
映射文件的位置,用于描述在未设置平台时要使用哪个平台,或在平台已存在时要设置哪些标志。必须相对于主工作区根目录。默认为“platform_mappings”(工作区根目录下的一个文件)。
标记: affects_outputschanges_inputsloading_and_analysisimmutable
--platforms=<a build target label> 默认值:""
描述当前命令的目标平台的平台规则的标签。
标记: affects_outputschanges_inputsloading_and_analysis
--python_path=<a string> 默认值:请参阅说明
在目标平台上调用以运行 Python 目标的 Python 解释器的绝对路径。已弃用;已通过 --incompatible_use_python_toolchains 停用。
标记: loading_and_analysisaffects_outputs
--python_top=<a build target label> 默认值:请参阅说明
py_runtime 的标签,表示在目标平台上调用以运行 Python 目标的 Python 解释器。已弃用;已通过 --incompatible_use_python_toolchains 停用。
标记: loading_and_analysisaffects_outputs
--tvos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
指定用于构建 tvOS 应用的 tvOS SDK 版本。如果未指定,则使用来自“xcode_version”的默认 tvOS SDK 版本。
标签: loses_incremental_state
--watchos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
指定用于构建 watchOS 应用的 watchOS SDK 版本。如果未指定,则使用来自“xcode_version”的默认 watchOS SDK 版本。
标签: loses_incremental_state
--xcode_version=<a string> 默认值:请参阅说明
如果指定,则使用指定版本的 Xcode 执行相关的 build 操作。如果未指定,则使用执行器的默认 Xcode 版本。
标签: loses_incremental_state
--xcode_version_config=<a build target label> 默认值:“@bazel_tools//tools/cpp:host_xcodes”
用于在 build 配置中选择 Xcode 版本的 xcode_config 规则的标签。
标记: loses_incremental_stateloading_and_analysis
用于控制命令输出的选项:
--[no]apple_generate_dsym 默认值:“false”
是否生成调试符号 (.dSYM) 文件。
标记: affects_outputsaction_command_lines
如果为 true,则为所有目标构建 runfiles 符号链接森林。如果为 false,则仅在本地操作、测试或运行命令需要时写入它们。
标签: affects_outputs
--[no]build_runfile_manifests 默认值:“true”
如果为 true,则为所有目标写入 runfiles 清单。如果为 false,则省略这些参数。如果为 false,本地测试将无法运行。
标签: affects_outputs
--[no]build_test_dwp 默认值:“false”
如果启用,在静态构建 C++ 测试并使用 fission 时,系统也会自动构建测试二进制文件的 .dwp 文件。
标记: loading_and_analysisaffects_outputs
--cc_proto_library_header_suffixes=<comma-separated set of options> 默认值:“.pb.h”
设置 cc_proto_library 创建的头文件的后缀。
标记: affects_outputsloading_and_analysis
--cc_proto_library_source_suffixes=<comma-separated set of options> 默认值:“.pb.cc”
设置 cc_proto_library 创建的源文件的后缀。
标记: affects_outputsloading_and_analysis
--[no]experimental_proto_descriptor_sets_include_source_info 默认值:“false”
在 proto_library 中针对备用 Java API 版本运行额外的操作。
标记: affects_outputsloading_and_analysisexperimental
--[no]experimental_save_feature_state 默认值:“false”
将已启用和已请求的功能的状态保存为编译的输出。
标记: affects_outputsexperimental
--fission=<a set of compilation modes> 默认值:“否”
指定哪些编译模式使用 fission 进行 C++ 编译和链接。可以是 {'fastbuild', 'dbg', 'opt'} 的任意组合,也可以是特殊值“yes”(启用所有模式)和“no”(停用所有模式)。
标记: loading_and_analysisaction_command_linesaffects_outputs
--[no]incompatible_always_include_files_in_data 默认值:“true”
如果为 true,原生规则会将数据依赖项的 <code>DefaultInfo.files</code> 添加到其 runfiles 中,这与 Starlark 规则的推荐行为一致 (https://bazel.build/extending/rules#runfiles_features_to_avoid)。
标记: affects_outputsincompatible_change
--[no]legacy_external_runfiles 默认值:“false”
如果为 true,则在 .runfiles/wsname/external/repo(以及 .runfiles/repo)下为外部代码库构建 runfiles 符号链接森林。
标签: affects_outputs
--[no]objc_generate_linkmap 默认值:“false”
指定是否生成 linkmap 文件。
标签: 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> 累积多次使用
指定可供具有目标配置的操作使用的一组环境变量。变量可以通过 <code>name</code> 指定,在这种情况下,值将从调用环境中获取;也可以通过 <code>name=value</code> 对指定,这样设置的值与调用环境无关。此选项可多次使用;对于同一变量给出的选项,以最新的为准;对于不同变量的选项,则会累积。 <br> 请注意,除非 <code>--incompatible_repo_env_ignores_action_env</code> 为 true,否则所有 <code>name=value</code> 对都将可供代码库规则使用。
标签: action_command_lines
--allowed_cpu_values=<comma-separated set of options> 默认值:""
--cpu 标志的允许值。
标记: changes_inputsaffects_outputs
--[no]android_databinding_use_androidx 默认值:“true”
生成与 AndroidX 兼容的数据绑定文件。这仅适用于数据绑定 v2。此标志为无操作。
标记: affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]android_databinding_use_v3_4_args 默认值:“true”
使用 3.4.0 实参的 Android 数据绑定 v2。此标志为无操作。
标记: affects_outputsloading_and_analysisloses_incremental_stateexperimental
--android_dynamic_mode=<off, default or fully> 默认值:“关闭”
确定当 cc_binary 未明确创建共享库时,Android 规则的 C++ 依赖项是否会动态链接。“default”表示 Bazel 将选择是否动态链接。“fully”表示所有库都将动态关联。“off”表示所有库都将以主要静态模式进行关联。
标记: affects_outputsloading_and_analysis
--android_manifest_merger_order=<alphabetical, alphabetical_by_configuration or dependency> 默认值:“alphabetical”
设置传递给 Android 二进制文件清单合并器的清单顺序。ALPHABETICAL 表示清单按相对于执行根目录的路径排序。ALPHABETICAL_BY_CONFIGURATION 表示清单按相对于输出目录中配置目录的路径进行排序。DEPENDENCY 表示清单的顺序为:每个库的清单位于其依赖项的清单之前。
标记: action_command_linesexecution
--[no]android_resource_shrinking 默认值:“false”
为使用 ProGuard 的 android_binary APK 启用资源缩减功能。
标记: affects_outputsloading_and_analysis
--[no]build_python_zip 默认值:“自动”
构建 Python 可执行压缩文件;在 Windows 上为 on,在其他平台上为 off
标记: affects_outputs
--catalyst_cpus=<comma-separated list of options> 累积多次使用
以英文逗号分隔的架构列表,用于构建 Apple Catalyst 二进制文件。
标记: loses_incremental_stateloading_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_outputsaction_command_lines
--conlyopt=<a string> 累积多次使用
编译 C 源文件时要传递给 gcc 的其他选项。
标记: action_command_linesaffects_outputs
--copt=<a string> 累积多次使用
要传递给 gcc 的其他选项。
标记: action_command_linesaffects_outputs
--cpu=<a string> 默认值:""
目标 CPU。
标记: changes_inputsaffects_outputs
--cs_fdo_absolute_path=<a string> 默认值:请参阅说明
使用 CSFDO 配置文件信息来优化编译。指定包含配置文件(原始或已编入索引的 LLVM 配置文件)的 ZIP 文件的绝对路径名。
标签: affects_outputs
--cs_fdo_instrument=<a string> 默认值:请参阅说明
生成具有上下文相关 FDO 检测功能的二进制文件。使用 Clang/LLVM 编译器时,它还接受将在运行时转储原始配置文件的目录名称。
标签: affects_outputs
--cs_fdo_profile=<a build target label> 默认值:请参阅说明
表示要用于优化的上下文相关配置文件的 cs_fdo_profile。
标签: affects_outputs
--cxxopt=<a string> 累积多次使用
在编译 C++ 源文件时要传递给 gcc 的其他选项。
标记: action_command_linesaffects_outputs
--define=<a 'name=value' assignment> 累积多次使用
每个 --define 选项都指定一个 build 变量的赋值。如果某个变量有多个值,则最后一个值胜出。
标记: changes_inputsaffects_outputs
--dynamic_mode=<off, default or fully> 默认值:“default”
确定 C++ 二进制文件是否将动态链接。“default”表示 Bazel 将选择是否动态链接。“fully”表示所有库都将动态关联。“off”表示所有库都将以主要静态模式进行关联。
标记: loading_and_analysisaffects_outputs
--[no]enable_propeller_optimize_absolute_paths 默认值:“true”
如果设置,任何使用绝对路径进行螺旋桨优化的操作都会引发错误。
标签: affects_outputs
--[no]enable_remaining_fdo_absolute_paths 默认值:“true”
如果设置,则任何使用 FDO 绝对路径的行为都会引发错误。
标签: affects_outputs
--[no]enable_runfiles 默认值:“自动”
启用 runfiles 符号链接树;默认情况下,在 Windows 上处于关闭状态,在其他平台上处于开启状态。
标签: affects_outputs
--experimental_action_listener=<a build target label> 累积多次使用
已弃用,取而代之的是方面。使用 action_listener 将 extra_action 附加到现有 build 操作。
标记: executionexperimental
--[no]experimental_android_compress_java_resources 默认值:“false”
压缩 APK 中的 Java 资源
标记: affects_outputsloading_and_analysisexperimental
--[no]experimental_android_databinding_v2 默认值:“true”
使用 Android 数据绑定 v2。此标志为无操作。
标记: affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]experimental_android_resource_shrinking 默认值:“false”
为使用 ProGuard 的 android_binary APK 启用资源缩减功能。
标记: affects_outputsloading_and_analysisexperimental
--[no]experimental_android_rewrite_dexes_with_rex 默认值:“false”
使用 rex 工具重写 dex 文件
标记: affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]experimental_collect_code_coverage_for_generated_files 默认值:“false”
如果指定,Bazel 还会为生成的文件生成收集覆盖率信息。
标记: affects_outputsexperimental
--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_linesaffects_outputsexperimental
--experimental_output_paths=<off, content or strip> 默认值:“关闭”
用于确定在输出树中规则应将输出写入何处,尤其适用于多平台 / 多配置 build。此功能尚处于高度实验阶段。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/6526。Starlark 操作可以通过向“execution_requirements”字典添加“supports-path-mapping”键来选择启用路径映射。
标记: loses_incremental_statebazel_internal_configurationaffects_outputsexecution
--experimental_override_name_platform_in_output_dir=<a 'label=value' assignment> 累积多次使用
每个条目都应采用“标签=值”的形式,其中标签是指平台,值是指要在输出路径中使用的所需简称。仅在 --experimental_platform_in_output_dir 为 true 时使用。具有最高的命名优先级。
标记: affects_outputsexperimental
--[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_outputsexperimental
--[no]experimental_py_binaries_include_label 默认值:“false”
即使在停用戳记功能的情况下,py_binary 目标也会包含其标签。
标记: affects_outputsexperimental
--[no]experimental_use_llvm_covmap 默认值:“false”
如果指定,当 collect_code_coverage 处于启用状态时,Bazel 将生成 llvm-cov 代码覆盖率映射信息,而不是 gcov 代码覆盖率映射信息。
标记: changes_inputsaffects_outputsloading_and_analysisexperimental
--[no]experimental_use_platforms_in_output_dir_legacy_heuristic 默认值:“true”
请仅在建议的迁移或测试策略中使用此标志。请注意,该启发式方法存在已知缺陷,建议迁移到仅依赖于 --experimental_override_name_platform_in_output_dir。
标记: affects_outputsexperimental
--fdo_instrument=<a string> 默认值:请参阅说明
生成带有 FDO 检测的二进制文件。使用 Clang/LLVM 编译器时,它还接受将在运行时转储原始配置文件的目录名称。
标签: affects_outputs
--fdo_optimize=<a string> 默认值:请参阅说明
使用 FDO 配置文件信息来优化编译。指定包含 .gcda 文件树、包含自动配置文件的 AFDO 文件或 LLVM 配置文件在内的 ZIP 文件的名称。此标志还接受指定为标签的文件(例如 `//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> 累积多次使用
对于在目标配置中构建的目标,给定的功能将默认处于启用或停用状态。指定 -<功能> 将停用相应功能。否定功能始终会覆盖肯定功能。另请参阅 --host_features
标记: changes_inputsaffects_outputs
--[no]force_pic 默认值:“false”
如果启用,所有 C++ 编译都会生成位置无关代码 (-fPIC),链接会优先选择 PIC 预构建库而非非 PIC 库,并且链接会生成位置无关可执行文件 (-pie)。
标记: loading_and_analysisaffects_outputs
--host_action_env=<a 'name=value' assignment with an optional value part> 累积多次使用
指定可供具有执行配置的操作使用的一组环境变量。变量可以通过名称指定(在这种情况下,系统会从调用环境中获取值),也可以通过 name=value 对指定(这样会独立于调用环境设置值)。此选项可多次使用;对于同一变量给出的选项,以最新的为准;对于不同变量的选项,则会累积。
标签: action_command_lines
--host_compilation_mode=<fastbuild, dbg or opt> 默认值:“opt”
指定 build 期间使用的工具将以何种模式构建。值:“fastbuild”“dbg”“opt”。
标记: affects_outputsaction_command_lines
--host_conlyopt=<a string> 累积多次使用
在执行配置中编译 C(而非 C++)源文件时要传递给 C 编译器的其他选项。
标记: action_command_linesaffects_outputs
--host_copt=<a string> 累积多次使用
要传递给 C 编译器(针对在执行配置中构建的工具)的其他选项。
标记: action_command_linesaffects_outputs
--host_cpu=<a string> 默认值:""
主机 CPU。
标记: changes_inputsaffects_outputs
--host_cxxopt=<a string> 累积多次使用
要传递给 C++ 编译器的其他选项,用于在执行配置中构建的工具。
标记: action_command_linesaffects_outputs
--host_features=<a string> 累积多次使用
对于在执行配置中构建的目标,给定的功能将默认处于启用或停用状态。指定 -<功能> 将停用相应功能。负特征始终会覆盖正特征。
标记: changes_inputsaffects_outputs
--host_force_python=<PY2 or PY3> 默认值:请参阅说明
替换执行配置的 Python 版本。可以是“PY2”或“PY3”。
标记: loading_and_analysisaffects_outputs
--host_linkopt=<a string> 累积多次使用
在执行配置中关联工具时,传递给链接器的其他选项。
标记: action_command_linesaffects_outputs
--host_macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
主机目标的最低兼容 macOS 版本。如果未指定,则使用“macos_sdk_version”。
标签: loses_incremental_state
--host_per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options> 累积多次使用
在编译执行配置中的某些文件时,有选择性地传递给 C/C++ 编译器的其他选项。此选项可以多次传递。语法:regex_filter@option_1,option_2,...,option_n。其中,regex_filter 表示包含和排除正则表达式模式的列表(另请参阅 --instrumentation_filter)。option_1 到 option_n 表示任意命令行选项。如果某个选项包含英文逗号,则必须使用反斜杠进行转义。选项可以包含 @。系统只会使用第一个 @ 来拆分字符串。示例:--host_per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 会将 -O0 命令行选项添加到 //foo/ 中除 bar.cc 之外的所有 cc 文件的 gcc 命令行中。
标记: action_command_linesaffects_outputs
--[no]incompatible_auto_exec_groups 默认值:“false”
启用后,系统会自动为规则使用的每个工具链创建一个执行组。为此,规则需要在其操作中指定“toolchain”参数。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/17134。
标记: affects_outputsincompatible_change
--[no]incompatible_merge_genfiles_directory 默认值:“true”
如果为 true,则 genfiles 目录会折叠到 bin 目录中。
标记: affects_outputsincompatible_change
--[no]instrument_test_targets 默认值:“false”
启用覆盖率时,指定是否考虑插桩测试规则。如果设置了此标志,则会插桩由 --instrumentation_filter 包含的测试规则。否则,测试规则始终会从覆盖率检测中排除。
标签: affects_outputs
--instrumentation_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths> 默认值:“-/javatests[/:],-/test/java[/:]”
启用覆盖率后,系统只会检测名称包含在指定基于正则表达式的过滤条件中的规则。带有“-”前缀的规则会被排除。请注意,除非启用 --instrument_test_targets,否则仅对非测试规则进行检测。
标签: affects_outputs
--ios_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
目标模拟器和设备的最低兼容 iOS 版本。如果未指定,则使用“ios_sdk_version”。
标签: loses_incremental_state
--ios_multi_cpus=<comma-separated list of options> 累积多次使用
以英文逗号分隔的架构列表,用于构建 ios_application。结果是一个包含所有指定架构的通用二进制文件。
标记: loses_incremental_stateloading_and_analysis
--[no]legacy_whole_archive 默认值:“true”
已弃用,已被 --incompatible_remove_legacy_whole_archive 取代(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7362)。如果设置为开启,则对于 linkshared=True 且 linkopts 中包含 linkstatic=True 或 '-static' 的 cc_binary 规则,使用 --whole-archive。这仅是为了实现向后兼容性。更好的替代方案是在需要时使用 alwayslink=1。
标记: action_command_linesaffects_outputsdeprecated
--linkopt=<a string> 累积多次使用
链接时要传递给 gcc 的其他选项。
标记: action_command_linesaffects_outputs
--ltobackendopt=<a string> 累积多次使用
传递给 LTO 后端步骤的其他选项(在 --features=thin_lto 下)。
标记: action_command_linesaffects_outputs
--ltoindexopt=<a string> 累积多次使用
要传递给 LTO 索引步骤的其他选项(在 --features=thin_lto 下)。
标记: action_command_linesaffects_outputs
--macos_cpus=<comma-separated list of options> 累积多次使用
以英文逗号分隔的架构列表,用于构建 Apple macOS 二进制文件。
标记: loses_incremental_stateloading_and_analysis
--macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
目标的最低兼容 macOS 版本。如果未指定,则使用“macos_sdk_version”。
标签: loses_incremental_state
--memprof_profile=<a build target label> 默认值:请参阅说明
使用 memprof 配置文件。
标签: affects_outputs
--[no]objc_debug_with_GLIBCXX 默认值:“false”
如果已设置,且编译模式设置为“dbg”,则定义 GLIBCXX_DEBUG、GLIBCXX_DEBUG_PEDANTIC 和 GLIBCPP_CONCEPT_CHECKS。
标签: action_command_lines
--[no]objc_enable_binary_stripping 默认值:“false”
是否对关联的二进制文件执行符号和死代码剥离。如果同时指定了此标志和 --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_n 表示任意命令行选项。如果某个选项包含英文逗号,则必须使用反斜杠进行转义。选项可以包含 @。系统只会使用第一个 @ 来拆分字符串。示例:--per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 会将 -O0 命令行选项添加到 //foo/ 中除 bar.cc 之外的所有 cc 文件的 gcc 命令行中。
标记: action_command_linesaffects_outputs
--per_file_ltobackendopt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options> 累积多次使用
在编译某些后端对象时,有选择地传递给 LTO 后端(在 --features=thin_lto 下)的其他选项。此选项可以多次传递。语法:regex_filter@option_1,option_2,...,option_n。其中,regex_filter 表示包含和排除正则表达式模式的列表,option_1 到 option_n 表示任意命令行选项。如果某个选项包含英文逗号,则必须使用反斜杠进行转义。选项可以包含 @。系统只会使用第一个 @ 来拆分字符串。示例:--per_file_ltobackendopt=//foo/.*\.o,-//foo/bar\.o@-O0 会将 -O0 命令行选项添加到 //foo/ 中除 bar.o 以外的所有 o 文件的 LTO 后端命令行中。
标记: action_command_linesaffects_outputs
--platform_suffix=<a string> 默认值:请参阅说明
指定要添加到配置目录的后缀。
标记: loses_incremental_stateaffects_outputsloading_and_analysis
--propeller_optimize=<a build target label> 默认值:请参阅说明
使用 Propeller 配置文件信息来优化 build 目标。Propeller 配置文件必须包含至少一个文件,即 cc 配置文件和 ld 配置文件。此标志接受必须引用螺旋桨配置文件输入文件的 build 标签。例如,定义标签的 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_linesaffects_outputs
--propeller_optimize_absolute_cc_profile=<a string> 默认值:请参阅说明
Propeller 优化 build 的 cc_profile 文件的绝对路径名。
标签: affects_outputs
--propeller_optimize_absolute_ld_profile=<a string> 默认值:请参阅说明
Propeller 优化 build 的 ld_profile 文件的绝对路径名。
标签: affects_outputs
--run_under=<a prefix in front of command> 默认值:请参阅说明
在“test”和“run”命令的可执行文件之前插入的前缀。如果值为“foo -bar”,而执行命令行是“test_binary -baz”,则最终命令行是“foo -bar test_binary -baz”。这也可以是可执行目标的标签。例如:“valgrind”“strace”“strace -c”“valgrind --quiet --num-callers=20”“//package:target”“//package:target --options”。
标签: action_command_lines
--[no]share_native_deps 默认值:“true”
如果为 true,则包含相同功能的原生库将在不同目标之间共享
标记: loading_and_analysisaffects_outputs
--[no]stamp 默认值:“false”
使用日期、用户名、主机名、工作区信息等标记二进制文件。
标记: affects_outputs
--strip=<always, sometimes or never> 默认值:“sometimes”
指定是否剥离二进制文件和共享库(使用“-Wl,--strip-debug”)。默认值“sometimes”表示仅当 --compilation_mode=fastbuild 时才剥离。
标签: affects_outputs
--stripopt=<a string> 累积多次使用
生成“<name>.stripped”二进制文件时要传递给 strip 的其他选项。
标记: action_command_linesaffects_outputs
--tvos_cpus=<comma-separated list of options> 累积多次使用
以英文逗号分隔的架构列表,用于构建 Apple tvOS 二进制文件。
标记: loses_incremental_stateloading_and_analysis
--tvos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
目标模拟器和设备的最低兼容 tvOS 版本。如果未指定,则使用“tvos_sdk_version”。
标签: loses_incremental_state
--visionos_cpus=<comma-separated list of options> 累积多次使用
以英文逗号分隔的架构列表,用于构建 Apple visionOS 二进制文件。
标记: loses_incremental_stateloading_and_analysis
--watchos_cpus=<comma-separated list of options> 累积多次使用
以英文逗号分隔的架构列表,用于构建 Apple watchOS 二进制文件。
标记: loses_incremental_stateloading_and_analysis
--watchos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
目标模拟器和设备的最低兼容 watchOS 版本。如果未指定,则使用“watchos_sdk_version”。
标签: loses_incremental_state
--xbinary_fdo=<a build target label> 默认值:请参阅说明
使用 XbinaryFDO 配置文件信息来优化编译。指定默认跨二进制配置文件名称。当此选项与 --fdo_instrument/--fdo_optimize/--fdo_profile 一起使用时,这些选项始终优先,就好像从未指定 xbinary_fdo 一样。
标记: affects_outputs
影响 Bazel 严格执行有效 build 输入(规则定义、标志组合等)的选项:
--[no]check_licenses 默认值:“false”
检查依赖软件包施加的许可限制是否与正在构建的目标的分发模式冲突。默认情况下,系统不会检查许可。
标签: build_file_semantics
--[no]check_visibility 默认值:“true”
如果停用,目标依赖项中的可见性错误将降级为警告。
标签: build_file_semantics
--[no]desugar_for_android 默认值:“true”
是否在 dexing 之前对 Java 8 字节码进行 desugar 处理。
标记: affects_outputsloading_and_analysisloses_incremental_state
--[no]desugar_java8_libs 默认值:“false”
是否在面向旧版设备的应用中包含受支持的 Java 8 库。
标记: affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]enforce_constraints 默认值:“true”
检查每个目标平台兼容的环境,如果任何目标平台具有不支持相同环境的依赖项,则报告错误
标记: build_file_semantics
--[no]experimental_check_desugar_deps 默认值:“true”
是否在 Android 二进制文件级别仔细检查正确的脱糖。
标记: eagerness_to_exitloading_and_analysisexperimental
--experimental_import_deps_checking=<a string> 默认值:请参阅说明
无操作,仅为实现向后兼容性而保留
标记: loading_and_analysis
--experimental_one_version_enforcement=<off, warning or error> 默认值:“OFF”
启用后,强制执行 java_binary 规则,确保类路径上不能包含同一类文件的多个版本。此强制执行可能会导致 build 失败,也可能只会导致警告。
标签: loading_and_analysis
--experimental_strict_java_deps=<off, warn, error, strict or default> 默认值:“default”
如果为 true,则检查 Java 目标是否明确声明所有直接使用的目标作为依赖项。
标记: build_file_semanticseagerness_to_exit
--[no]incompatible_check_testonly_for_output_files 默认值:“false”
如果已启用,请通过查找生成规则的 testonly 来检查作为输出文件的前提条件目标的 testonly。这与可见性检查相匹配。
标记: build_file_semanticsincompatible_change
--[no]incompatible_check_visibility_for_toolchains 默认值:“false”
如果启用,可见性检查也适用于工具链实现。
标记: build_file_semanticsincompatible_change
--[no]incompatible_disable_native_android_rules 默认值:“false”
如果启用,则会停用对原生 Android 规则的直接使用。请使用来自 https://github.com/bazelbuild/rules_android 的 Starlark Android 规则
标记: eagerness_to_exitincompatible_change
--[no]incompatible_disable_native_apple_binary_rule 默认值:“false”
无操作。保留在此处是为了向后兼容。
标记: eagerness_to_exitincompatible_change
--[no]incompatible_python_disable_py2 默认值:“true”
如果为 true,使用 Python 2 设置会导致错误。这包括 python_version=PY2、srcs_version=PY2 和 srcs_version=PY2ONLY。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/15684。
标记: loading_and_analysisincompatible_change
--[no]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_semanticseagerness_to_exit
--strict_proto_deps=<off, warn, error, strict or default> 默认值:“error”
除非设置为 OFF,否则会检查 proto_library 目标是否明确声明了所有直接使用的目标作为依赖项。
标记: build_file_semanticseagerness_to_exitincompatible_change
--strict_public_imports=<off, warn, error, strict or default> 默认值:“关闭”
除非设置为 OFF,否则会检查 proto_library 目标是否明确声明了“import public”中使用的所有目标为已导出。
标记: build_file_semanticseagerness_to_exitincompatible_change
--[no]strict_system_includes 默认值:“false”
如果为 true,则通过系统 include 路径 (-isystem) 找到的标头也必须声明。
标记: loading_and_analysiseagerness_to_exit
--target_environment=<a build target label> 累积多次使用
声明相应 build 的目标环境。必须是对“环境”规则的标签引用。如果指定了此属性,则所有顶级目标平台都必须与此环境兼容。
标记: changes_inputs
影响 build 签名输出的选项:
--apk_signing_method=<v1, v2, v1_v2 or v4> 默认值:“v1_v2”
用于对 APK 进行签名的实现
标记: action_command_linesaffects_outputsloading_and_analysis
--[no]device_debug_entitlements 默认值:“true”
如果已设置,且编译模式不是“opt”,则 objc 应用在签名时将包含调试授权。
标签: changes_inputs
--ios_signing_cert_name=<a string> 默认值:请参阅说明
用于 iOS 签名的证书名称。如果未设置,则会回退到配置配置文件。可能是证书的钥匙串身份偏好设置,也可能是证书的公用名(子字符串),具体请参阅 codesign 的手册页(签名身份)。
标记: action_command_lines
此选项会影响 Starlark 语言或可供 BUILD 文件、.bzl 文件或 WORKSPACE 文件访问的 build API 的语义:
--[no]incompatible_disallow_legacy_py_provider 默认值:“true”
无操作,很快就会被移除。
标记: loading_and_analysisincompatible_change
--[no]incompatible_disallow_sdk_frameworks_attributes 默认值:“false”
如果为 true,则不允许在 objc_library 和 objc_import 中使用 sdk_frameworks 和 weak_sdk_frameworks 属性。
标记: build_file_semanticsincompatible_change
如果为 true,则将 objc_library 和 objc_import 中 alwayslink 属性的默认值设为 true。
标记: build_file_semanticsincompatible_change
--[no]incompatible_python_disallow_native_rules 默认值:“false”
如果为 true,则在使用内置 py_* 规则时会发生错误;而应使用 rule_python 规则。如需了解详情和迁移说明,请参阅 https://github.com/bazelbuild/bazel/issues/17773。
标记: loading_and_analysisincompatible_change
用于控制测试环境或测试运行程序行为的选项:
--[no]allow_analysis_failures 默认值:“false”
如果为 true,则规则目标的分析失败会导致目标传播包含错误说明的 AnalysisFailureInfo 实例,而不是导致 build 失败。
标记: loading_and_analysisexperimental
--analysis_testing_deps_limit=<an integer> 默认值:“2000”
通过具有 for_analysis_testing 配置转换的规则属性设置传递依赖项的最大数量。超出此限制会导致规则错误。
标签: loading_and_analysis
--[no]break_build_on_parallel_dex2oat_failure 默认值:“false”
如果为 true,dex2oat 操作失败将导致 build 中断,而不是在测试运行时执行 dex2oat。
标记: loading_and_analysisexperimental
--default_test_resources=<a resource name followed by equal and 1 float or 4 float, e.g. memory=10,30,60,100> 累积多次使用
替换测试的默认资源量。预期格式为 <resource>=<value>。如果将单个正数指定为 <value>,则该值将替换所有测试规模的默认资源。如果指定了 4 个以英文逗号分隔的数字,它们将分别替换小型、中型、大型和超大型测试规模的资源量。值也可以是 HOST_RAM/HOST_CPU,后面可以选择性地跟上 [-|*]<float>(例如,memory=HOST_RAM*.1,HOST_RAM*.2,HOST_RAM*.3,HOST_RAM*.4)。此标志指定的默认测试资源会被标记中指定的显式资源覆盖。
--[no]experimental_android_use_parallel_dex2oat 默认值:“false”
并行使用 dex2oat,以尽可能加快 android_test 的速度。
标记: loading_and_analysishost_machine_resource_optimizationsexperimental
--[no]ios_memleaks 默认值:“false”
在 ios_test 目标中启用内存泄漏检查。
标签: action_command_lines
--ios_simulator_device=<a string> 默认值:请参阅说明
在模拟器中运行 iOS 应用时要模拟的设备,例如“iPhone 6”。您可以在运行模拟器的机器上运行“xcrun simctl list devicetypes”,以获取设备列表。
标签: test_runner
--ios_simulator_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:请参阅说明
在运行或测试时要在模拟器上运行的 iOS 版本。如果 ios_test 规则中指定了目标设备,则忽略此属性。
标签: test_runner
--runs_per_test=<a positive integer or test_regex@runs. This flag may be passed more than once> 累积多次使用
指定运行每个测试的次数。如果任何尝试因任何原因而失败,则整个测试都被视为失败。通常,指定的值只是一个整数。示例:--runs_per_test=3 将运行所有测试 3 次。替代语法:regex_filter@runs_per_test。其中,runs_per_test 表示一个整数值,regex_filter 表示包含和排除正则表达式模式的列表(另请参阅 --instrumentation_filter)。示例:--runs_per_test=//foo/.*,-//foo/bar/.*@3 会运行 //foo/ 中的所有测试(foo/bar 下的测试除外),运行次数为 3 次。此选项可以多次传递。系统会优先采用最近传递的匹配实参。如果没有任何匹配项,则测试仅运行一次。
--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 默认值:“false”
如果为 true,未声明的测试输出将归档到 zip 文件中。
标记: test_runner
触发构建时间优化的选项:
--[no]experimental_filter_library_jar_with_program_jar 默认值:“false”
过滤 ProGuard ProgramJar 以移除 LibraryJar 中也存在的任何类。
标记: action_command_linesexperimental
--[no]experimental_inmemory_dotd_files 默认值:“true”
如果启用,C++ .d 文件将直接通过内存从远程 build 节点传递,而不是写入磁盘。
标记: loading_and_analysisexecutionaffects_outputsexperimental
--[no]experimental_inmemory_jdeps_files 默认值:“true”
如果启用,从 Java 编译生成的依赖项 (.jdeps) 文件将直接通过内存从远程 build 节点传递,而不是写入磁盘。
标记: loading_and_analysisexecutionaffects_outputsexperimental
--[no]experimental_retain_test_configuration_across_testonly 默认值:“false”
启用后,--trim_test_configuration 不会针对标记为 testonly=1 的规则剪裁测试配置。此举旨在减少非测试规则依赖于 cc_test 规则时的操作冲突问题。如果 --trim_test_configuration 为 false,则无效。
标记: loading_and_analysisloses_incremental_stateexperimental
--[no]experimental_starlark_cc_import 默认值:“false”
如果启用,则可以使用 cc_import 的 Starlark 版本。
标记: loading_and_analysisexperimental
--[no]experimental_unsupported_and_brittle_include_scanning 默认值:“false”
是否通过解析输入文件中的 #include 行来缩小 C/C++ 编译的输入范围。这样可以减小编译输入树的大小,从而提高性能和增量。不过,它也可能会破坏 build,因为 include 扫描器并未完全实现 C 预处理器语义。特别是,它无法理解动态 #include 指令,并且会忽略预处理器条件逻辑。使用时需自行承担风险。提交的与此标志相关的任何问题都将关闭。
标记: loading_and_analysisexecutionchanges_inputsexperimental
--[no]incremental_dexing 默认值:“true”
可为每个 Jar 文件单独执行大部分 dexing 工作。
标记: affects_outputsloading_and_analysisloses_incremental_state
--[no]objc_use_dotd_pruning 默认值:“true”
如果设置,则使用 clang 发出的 .d 文件来剪除传递到 objc 编译中的输入集。
标记: changes_inputsloading_and_analysis
--[no]process_headers_in_dependencies 默认值:“false”
构建目标 //a:a 时,处理 //a:a 所依赖的所有目标中的标头(如果工具链启用了标头处理)。
标签: execution
--[no]trim_test_configuration 默认值:“true”
启用后,测试相关选项将清除到 build 的顶级以下。如果此标志处于有效状态,则无法将测试构建为非测试规则的依赖项,但对测试相关选项的更改不会导致重新分析非测试规则。
标记: loading_and_analysisloses_incremental_state
影响日志记录详细程度、格式或位置的选项:
--toolchain_resolution_debug=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths> 默认值:“-.*”
在工具链解析期间打印调试信息。该标志接受一个正则表达式,系统会根据该表达式检查工具链类型和特定目标,以确定要调试的内容。多个正则表达式可以用英文逗号分隔,然后系统会分别检查每个正则表达式。注意:此标志的输出非常复杂,可能仅对工具链解析方面的专家有用。
标记: terminal_output
用于指定或更改 Bazel 命令的通用输入(不属于其他类别)的选项:
--flag_alias=<a 'name=value' flag alias> 累积多次使用
为 Starlark 标志设置简短名称。它以“<key>=<value>”形式的单个键值对作为实参。
标签: changes_inputs
--[no]incompatible_default_to_explicit_init_py 默认值:“false”
此标志会更改默认行为,使 __init__.py 文件不再在 Python 目标的 runfiles 中自动创建。具体而言,当 py_binary 或 py_test 目标的 legacy_create_init 设置为“auto”(默认值)时,当且仅当设置了此标志时,该目标才会被视为 false。请参阅 https://github.com/bazelbuild/bazel/issues/10076。
标记: affects_outputsincompatible_change
--[no]incompatible_py2_outputs_are_suffixed 默认值:“true”
如果为 true,则在 Python 2 配置中构建的目标将显示在包含后缀“-py2”的输出根目录下,而为 Python 3 构建的目标将显示在没有 Python 相关后缀的根目录下。这意味着 `bazel-bin` 便利符号链接将指向 Python 3 目标,而不是 Python 2。如果您启用此选项,还建议您启用 `--incompatible_py3_is_default`。
标记: affects_outputsincompatible_change
--[no]incompatible_py3_is_default 默认值:“true”
如果为 true,未设置其 `python_version`(或 `default_python_version`)属性的 `py_binary` 和 `py_test` 目标将默认使用 PY3 而不是 PY2。如果您设置了此标志,还建议设置 `--incompatible_py2_outputs_are_suffixed`。
标记: loading_and_analysisaffects_outputsincompatible_change
--[no]incompatible_use_python_toolchains 默认值:“true”
如果设置为 true,可执行的原生 Python 规则将使用 Python 工具链指定的 Python 运行时,而不是旧版标志(例如 --python_top)提供的运行时。
标记: loading_and_analysisincompatible_change
--python_version=<PY2 or PY3> 默认值:请参阅说明
Python 主要版本模式,可以是 `PY2` 或 `PY3`。请注意,此标志会被 `py_binary` 和 `py_test` 目标替换(即使它们未明确指定版本),因此通常没有太多理由提供此标志。
标记: loading_and_analysisaffects_outputs
未归入其他类别的其他选项:
--[no]cache_test_results [-t] 默认值:“自动”
如果设置为“自动”,则当且仅当满足以下条件时,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_outputsloading_and_analysisexperimental
--[no]experimental_fetch_all_coverage_outputs 默认值:“false”
如果为 true,则 Bazel 在覆盖率运行期间会为每个测试提取整个覆盖率数据目录。
标记: affects_outputsloading_and_analysisexperimental
--[no]experimental_generate_llvm_lcov 默认值:“false”
如果为 true,则 clang 的覆盖率将生成 LCOV 报告。
标记: affects_outputsloading_and_analysisexperimental
--[no]experimental_j2objc_header_map 默认值:“true”
是否在 J2ObjC 转译过程中并行生成 J2ObjC 标头映射。
标签: experimental
--[no]experimental_j2objc_shorter_header_path 默认值:“false”
是否生成较短的头文件路径(使用“_ios”代替“_j2objc”)。
标记: affects_outputsexperimental
--experimental_java_classpath=<off, javabuilder, bazel or bazel_no_fallback> 默认值:“javabuilder”
为 Java 编译启用缩减的类路径。
--[no]experimental_limit_android_lint_to_android_constrained_java 默认值:“false”
无操作,仅为实现向后兼容性而保留
标记: affects_outputsexperimental
--[no]experimental_run_android_lint_on_java_rules 默认值:“false”
是否验证 java_* 来源。
标记: affects_outputsexperimental
--[no]explicit_java_test_deps 默认值:“false”
在 java_test 中明确指定对 JUnit 或 Hamcrest 的依赖项,而不是意外地从 TestRunner 的依赖项中获取。目前仅适用于 Bazel。
--host_java_launcher=<a build target label> 默认值:请参阅说明
在 build 期间执行的工具所使用的 Java 启动器。
--host_javacopt=<a string> 累积多次使用
在构建期间执行的工具时要传递给 javac 的其他选项。
--host_jvmopt=<a string> 累积多次使用
在构建期间执行的工具时,要传递给 Java 虚拟机的其他选项。这些选项将添加到每个 java_binary 目标的虚拟机启动选项中。
--[no]incompatible_check_sharding_support 默认值:“true”
如果为 true,则当测试运行程序未通过在 TEST_SHARD_STATUS_FILE 中的路径上触碰文件来表明其支持分片时,Bazel 将使分片测试失败。如果为 false,不支持分片的测试运行程序会导致所有测试在每个分片中运行。
标签: incompatible_change
--[no]incompatible_exclusive_test_sandboxed 默认值:“true”
如果为 true,则独占性测试将以沙盒策略运行。添加“local”标记以强制在本地运行独占测试
标记: incompatible_change
--[no]incompatible_strict_action_env 默认值:“false”
如果为 true,Bazel 会使用一个 PATH 具有静态值的环境,并且不会继承 LD_LIBRARY_PATH。如果您想从客户端继承特定的环境变量,请使用 --action_env=ENV_VARIABLE,但请注意,如果使用共享缓存,这样做可能会阻止跨用户缓存。
标记: loading_and_analysisincompatible_change
--j2objc_translation_flags=<comma-separated list of options> 累积多次使用
要传递给 J2ObjC 工具的其他选项。
--java_debug
使 Java 测试的 Java 虚拟机在开始测试之前等待来自符合 JDWP 标准的调试器(例如 jdb)的连接。表示 -test_output=streamed。
展开后:
  --test_arg=--wrapper_script_flag=--debug
  --test_output=streamed
  --test_strategy=exclusive
  --test_timeout=9999
  --nocache_test_results
--[no]java_deps 默认值:“true”
针对每个 Java 目标生成依赖项信息(目前为编译时类路径)。
--[no]java_header_compilation 默认值:“true”
直接从源代码编译 ijars。
--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 虚拟机的其他选项。这些选项将添加到每个 java_binary 目标的虚拟机启动选项中。
--legacy_main_dex_list_generator=<a build target label> 默认值:请参阅说明
指定用于生成类列表的二进制文件,在编译旧版 multidex 时,该列表中的类必须位于主 dex 中。
--optimizing_dexer=<a build target label> 默认值:请参阅说明
指定用于在不分片的情况下执行 dexing 的二进制文件。
--plugin=<a build target label> 累积多次使用
要在 build 中使用的插件。目前适用于 java_plugin。
--proguard_top=<a build target label> 默认值:请参阅说明
指定在构建 Java 二进制文件时用于移除代码的 ProGuard 版本。
--proto_compiler=<a build target label> 默认值:“@bazel_tools//tools/proto:protoc”
proto 编译器的标签。
标记: affects_outputsloading_and_analysis
--[no]proto_profile 默认值:“true”
是否将 profile_path 传递给 proto 编译器。
标记: affects_outputsloading_and_analysis
--proto_profile_path=<a build target label> 默认值:请参阅说明
要作为 profile_path 传递给 proto 编译器的配置文件。如果未设置,但 --proto_profile 为 true(默认值),则从 --fdo_optimize 推断路径。
标记: affects_outputsloading_and_analysis
--proto_toolchain_for_cc=<a build target label> 默认值:“@bazel_tools//tools/proto:cc_toolchain”
proto_lang_toolchain() 的标签,用于描述如何编译 C++ proto
标记: affects_outputsloading_and_analysis
--proto_toolchain_for_j2objc=<a build target label> 默认值:“@bazel_tools//tools/j2objc:j2objc_proto_toolchain”
proto_lang_toolchain() 的标签,用于描述如何编译 j2objc proto
标记: affects_outputsloading_and_analysis
--proto_toolchain_for_java=<a build target label> 默认值:“@bazel_tools//tools/proto:java_toolchain”
proto_lang_toolchain() 的标签,用于描述如何编译 Java proto
标记: affects_outputsloading_and_analysis
--proto_toolchain_for_javalite=<a build target label> 默认值:“@bazel_tools//tools/proto:javalite_toolchain”
proto_lang_toolchain() 的标签,用于描述如何编译 JavaLite proto
标记: affects_outputsloading_and_analysis
--protocopt=<a string> 累积多次使用
要传递给 protobuf 编译器的其他选项。
标签: affects_outputs
--[no]runs_per_test_detects_flakes 默认值:“false”
如果为 true,则至少有一次运行/尝试通过且至少有一次运行/尝试失败的任何分片都会获得 FLAKY 状态。
--shell_executable=<a path> 默认值:请参阅说明
供 Bazel 使用的 shell 可执行文件的绝对路径。如果未设置此变量,但在首次调用 Bazel(启动 Bazel 服务器)时设置了 BAZEL_SH 环境变量,则 Bazel 会使用该变量。如果两者均未设置,Bazel 会使用硬编码的默认路径,具体取决于其运行的操作系统(Windows:c:/msys64/usr/bin/bash.exe;FreeBSD:/usr/local/bin/bash;所有其他操作系统:/bin/bash)。请注意,使用与 bash 不兼容的 shell 可能会导致生成的二进制文件出现 build 失败或运行时失败。
标签: 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 属性,则“explicit”表示仅使用分片。“disabled”表示从不使用测试分片。“forced=k”可强制执行“k”个分片以进行测试,而无论“shard_count”BUILD 属性如何。
--tool_java_language_version=<a string> 默认值:""
用于执行构建期间所需工具的 Java 语言版本
--tool_java_runtime_version=<a string> 默认值:“remotejdk_11”
在 build 期间用于执行工具的 Java 运行时版本
--[no]use_ijars 默认值:“true”
如果启用,此选项会导致 Java 编译使用接口 jar。这会加快增量编译速度,但错误消息可能会有所不同。

版本选项

允许用户配置预期输出(会影响其值,而不是其存在)的选项:
--[no]gnu_format 默认值:“false”
如果设置,则使用 GNU 标准中所述的惯例将版本写入标准输出。
标志: affects_outputsexecution
此选项会影响 Starlark 语言或可供 BUILD 文件、.bzl 文件或 WORKSPACE 文件访问的 build API 的语义:
--[no]incompatible_use_plus_in_repo_names 默认值:“true”
无操作。
标记: loading_and_analysis

选项效果标记

unknown 此选项的效果未知或未记录。
no_op 此选项实际上没有任何效果。
loses_incremental_state 更改此选项的值可能会导致增量状态大幅丢失,从而减慢 build 速度。状态可能会因服务器重启或依赖关系图的大部分失效而丢失。
changes_inputs 此选项会主动更改 Bazel 在构建时考虑的输入,例如文件系统限制、代码库版本或其他选项。
affects_outputs 此选项会影响 Bazel 的输出。此标记有意设置得非常宽泛,可以包含传递效应,并且未指定它影响的输出类型。
build_file_semantics 此选项会影响 BUILD 或 .bzl 文件的语义。
bazel_internal_configuration 此选项会影响 bazel 内部机制的设置。此标记本身并不意味着 build 制品会受到影响。
loading_and_analysis 此选项会影响依赖项的加载和分析,以及依赖关系图的构建。
execution 此选项会影响执行阶段,例如与沙盒或远程执行相关的选项。
host_machine_resource_optimizations 此选项会触发可能特定于机器的优化,但无法保证在所有机器上都能正常运行。优化可能会与其他方面的性能(例如内存或 CPU 成本)相权衡。
eagerness_to_exit 此选项用于更改 Bazel 在出现故障时退出程序的积极程度,可以选择在出现故障时继续运行还是结束调用。
bazel_monitoring 此选项用于监控 Bazel 的行为和性能。
terminal_output 此选项会影响 Bazel 的终端输出。
action_command_lines 此选项会更改一个或多个 build 操作的命令行实参。
test_runner 此选项会更改 build 的 testrunner 环境。

选项元数据标记

experimental 此选项会触发一项实验性功能,但无法保证其功能。
incompatible_change 此选项会触发重大变更。使用此选项可测试您是否已做好迁移准备,或抢先体验新功能
deprecated 此选项已弃用。可能是因为该功能已弃用,或者更倾向于使用其他方法来提供信息。
immutable 此选项无法在过渡期间更改。