命令行参考

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 构建并运行指定的测试目标。
version 输出 bazel 的版本信息。

启动选项

出现在命令之前并由客户端解析的选项:
--[no]autodetect_server_javabase 默认值:“true”
传递 --noautodetect_server_javabase 后,Bazel 不会回退到本地 JDK 来运行 bazel 服务器,而是退出。
标记:affects_outputsloses_incremental_state
--[no]batch 默认值:“false”
如果设置此参数,Bazel 将像没有服务器的客户端进程一样运行,而不是在标准客户端/服务器模式下运行。此 API 已被弃用,并将被移除。如果您希望避免服务器延迟,请明确关闭服务器。
标记: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”都将被忽略,这对于停用对用户 rc 文件的搜索很有用(例如在发布 build 中)。 您还可以多次指定此选项。 例如,使用 `--bazelrc=x.rc --bazelrc=y.rc --bazelrc=/dev/null --bazelrc=z.rc`, 1) 会读取 x.rc 和 y.rc。 2) z.rc 由于前面的 /dev/null 而被忽略。 如果未指定,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
--[no]expand_configs_in_place 默认值:“true”
将 --config 标志的展开改为了原位,而不是在普通 rc 选项和命令行指定的选项之间按固定点展开。
标记:no_opdeprecated
--failure_detail_out=<path> 默认值:参见说明
如果设置此参数,则指定一个位置,以便在服务器遇到故障且无法通过 gRPC 报告失败时写入 failed_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> 默认值:“默认”
设置在 macOS 上运行时的 Bazel 服务器的 QoS 服务类别。此标志对所有其他平台没有任何影响,但受支持,可确保 rc 文件无需更改即可在这些平台之间共享。可能的值包括:用户交互、用户启动、默认、实用程序和背景。
标记: host_machine_resource_optimizations
--max_idle_secs=<integer> 默认值:“10800”
构建服务器在空闲前等待的秒数。零表示服务器永远不会关闭。此字段仅在服务器启动时读取,更改此选项不会导致服务器重启。
标记:eagerness_to_exitloses_incremental_state
--output_base=<path> 默认值:参见说明
如果设置此参数,则指定将所有构建输出写入到的输出位置。否则,位置将为 ${OUTPUT_ROOT}/_blaze_${USER}/${MD5_OF_WORKSPACE_ROOT}。注意:如果您为此值的下一次 Bazel 调用指定了不同的选项,很可能会启动额外的 Bazel 服务器。Bazel 只会为每个指定的输出库启动一个服务器。通常,每个工作区有一个输出基准。但是,使用此选项时,每个工作区可能有多个输出基准,从而在同一机器上同时运行同一客户端的多个构建。如需了解如何关闭 Bazel 服务器,请参阅“bazel 帮助关闭”。
标记:affects_outputsloses_incremental_state
--output_user_root=<path> 默认值:参见说明
特定于用户的目录,所有 build 输出都将写入到该目录下;默认情况下,这是 $USER 函数,但通过指定常量,build 输出可以在协作者之间共享。
标记:affects_outputsloses_incremental_state
--[no]preemptible 默认值:“false”
如果为 true,则当启动另一个命令时,该命令可能会被抢占。
标记: eagerness_to_exit
--server_jvm_out=<path> 默认值:参见说明
服务器 JVM 输出的写入位置。如果未设置,则默认为 output_base 中的某个位置。
标记:affects_outputsloses_incremental_state
--[no]shutdown_on_low_sys_mem 默认值:“false”
如果已设置 max_idle_secs 且构建服务器已闲置一段时间,请在系统可用 RAM 不足时关闭服务器。仅适用于 Linux。
标记:eagerness_to_exitloses_incremental_state
--[no]system_rc 默认值:“true”
是否查找系统级 bazelrc。
标记: changes_inputs
--[no]unlimit_coredumps 默认值:“false”
将软核心转储限制提高到硬性限制,以便在常见情况下,可以对服务器(包括 JVM)和客户端进行核心转储。将此标志保留在您的 Bazel 中一次即可忘记,这样,在实际遇到触发它的条件时,您就会获得 coredump。
标记: bazel_internal_configuration
--[no]watchfs 默认值:“false”
如果为 true,则 bazel 会尝试使用操作系统的文件监控服务来记录本地更改,而不是扫描每个文件以查看是否有更改。
标记: deprecated
如果为 true,系统会在 Windows 上创建实际的符号链接,而不是复制文件。需要启用 Windows 开发者模式以及 Windows 10 版本 1703 或更高版本。
标记: bazel_internal_configuration
--[no]workspace_rc 默认值:“true”
是否在 $workspace/.bazelrc 中查找 Workspace 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
--host_jvm_profile=<profiler_name> 默认值:“”
添加一些特定于性能分析器/调试程序的 JVM 启动标记的便捷选项。Bazel 具有一个已知值列表,这些值映射到硬编码的 JVM 启动标志,可能会通过一些硬编码路径搜索特定文件。
--server_javabase=<jvm path> 默认值:“”
用于执行 Bazel 本身的 JVM 的路径。

所有命令通用的选项

用于控制构建执行的选项:
--experimental_ui_max_stdouterr_bytes=<an integer in (-1)-1073741819 range> 默认值:“1048576”
将输出到控制台的 stdout / stderr 文件的大小上限。-1 表示无限制。
标记: execution
如果设置为 true 且 --incompatible_remote_symlinks 也为 true,则操作输出中的符号链接可以挂起。
标记:executionincompatible_change
如果设置为 true,Bazel 将在相应远程缓存/执行协议的操作输出中呈现符号链接。否则,符号链接将得到追踪,并表示为文件或目录。如需了解详情,请参阅 #6631。
标记:executionincompatible_change
用于配置用于执行操作的工具链的选项:
--[no]incompatible_enable_proto_toolchain_resolution 默认值:“false”
如果为 true,proto lang 规则会定义 rules_proto、 rules_java 和 rules_cc 代码库中的工具链。
标记:loading_and_analysisincompatible_change
一些选项,可让用户配置预期输出,影响预期输出的值,而非影响其值:
--bep_maximum_open_remote_upload_files=<an integer> 默认值:“-1”
BEP 工件上传期间允许的打开文件数量上限。
标记: affects_outputs
--remote_download_all
将所有远程输出下载到本地机器。此标志是 --remote_download_outputs=all 的别名。
扩展为:
  --remote_download_outputs=all

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

标签: affects_outputs
--remote_download_outputs=<all, minimal or toplevel> 默认值:“toplevel”
如果设置为“minimal”,系统不会将任何远程构建输出下载到本地计算机,本地操作所需的输出除外。如果将此属性设置为 'toplevel',则其行为类似于“minimal”,除了会将顶级目标的输出下载到本地计算机。如果网络带宽是瓶颈,则这两种方案都可以显著缩短构建时间。
标记: affects_outputs
请创建符号链接,而不是将远程构建输出下载到本地机器。符号链接的目标可以模板字符串的形式指定。此模板字符串可能包含 {hash} 和 {size_bytes},分别扩展为该对象的哈希值和大小(以字节为单位)。例如,这些符号链接可能指向按需加载来自 CAS 对象的 FUSE 文件系统。
标记: 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
此选项会影响 Starlark 语言或者 build 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义。
--[no]enable_bzlmod 默认值:“true”
如果为 true,则启用 Bzlmod 依赖项管理系统,其优先级高于 WORKSPACE。如需了解详情,请参阅 https://bazel.build/docs/bzlmod。
标记: loading_and_analysis
--[no]experimental_action_resource_set 默认值:“true”
如果设置为 true,则 ctx.actions.run() 和 ctx.actions.run_shell() 接受 resource_set 参数以用于本地执行。否则,默认为 250 MB 的内存和 1 个 CPU。
标记:executionbuild_file_semanticsexperimental
--[no]experimental_bzl_visibility 默认值:“true”
如果启用,则会添加一个“visibility()”函数,.bzl 文件可能会在顶级评估期间调用该函数来设置其可见性,以便用于 load() 语句。
标记:loading_and_analysisexperimental
--[no]experimental_cc_shared_library 默认值:“false”
如果设置为 true,则规则属性和 cc_shared_library 规则所需的 Starlark API 方法将可用
标记:build_file_semanticsloading_and_analysisexperimental
--[no]experimental_disable_external_package 默认值:“false”
如果设置为 true,自动生成的 //外部软件包将不再可用。Bazel 仍无法解析文件“external/BUILD”,但从未命名的软件包访问 external/ 的 glob 可以正常运行。
标记:loading_and_analysisloses_incremental_stateexperimental
--[no]experimental_enable_android_migration_apis 默认值:“false”
如果设置为 true,则启用支持 Android Starlark 迁移所需的 API。
标记: build_file_semantics
--[no]experimental_enable_scl_dialect 默认值:“false”
如果设置为 true,则可以在 load() 语句中使用 .scl 文件。
标记: build_file_semantics
--[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 对调试很有用。
标记:loading_and_analysisexperimental
--[no]experimental_repo_remote_exec 默认值:“false”
如果设置为 true,repo_rule 将获得一些远程执行功能。
标记:build_file_semanticsloading_and_analysisexperimental
--[no]experimental_sibling_repository_layout 默认值:“false”
如果设置为 true,则非主代码库将作为指向执行根目录中主代码库的符号链接进行植入。也就是说,所有代码库都是 $output_base/execution_root 目录的直接子代码库。这样做的副作用是将 $output_base/execution_root/__main__/external 释放为真正的顶级“外部”目录。
标记:action_command_linesbazel_internal_configurationloading_and_analysisloses_incremental_stateexperimental
--[no]incompatible_allow_tags_propagation 默认值:“true”
如果设置为 true,则标记将从目标传播到相应操作的执行要求;否则,标记不会传播。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/8830。
标记:build_file_semanticsexperimental
--[no]incompatible_always_check_depset_elements 默认值:“true”
检查所有构造函数中添加到 depset 的元素的有效性。元素必须是不可变的,但过去 depset(direct=...) 构造函数忘记了检查。在 depset 元素中使用元组,而不是列表。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/10313。
标记:build_file_semanticsincompatible_change
--[no]incompatible_depset_for_java_output_source_jars 默认值:“true”
如果为 true,则 Bazel 不再从 java_info.java_output[0].source_jars 返回列表,而是改为返回 depset。
标记:loading_and_analysisincompatible_change
如果设置为 true,则 Bazel 不再从 linked_context. libraries_to_link 返回列表,而是改为返回 depset。
标记:loading_and_analysisincompatible_change
--[no]incompatible_disable_objc_library_transition 默认值:“true”
停用 objc_library 的自定义转换,改为从顶级目标继承
标记:build_file_semanticsincompatible_change
--[no]incompatible_disable_starlark_host_transitions 默认值:“false”
如果设置为 true,规则属性便无法设置 'cfg = "host"'。规则应改为设置“cfg = "exec"。
标记:loading_and_analysisincompatible_change
--[no]incompatible_disable_target_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_disallow_empty_glob 默认值:“false”
如果设置为 true,则 glob() 的“allow_empty”参数的默认值为 False。
标记:build_file_semanticsincompatible_change
--[no]incompatible_disallow_struct_provider_syntax 默认值:“false”
如果设置为 true,规则实现函数不得返回结构体。它们必须改为返回提供程序实例的列表。
标记:build_file_semanticsincompatible_change
--[no]incompatible_existing_rules_immutable_view 默认值:“true”
如果设置为 true,native.existing_rule 和 native.existing_rules 会返回轻量级不可变视图对象,而不是可变字典。
标记:build_file_semanticsloading_and_analysisincompatible_change
--[no]incompatible_fail_on_unknown_attributes 默认值:“true”
启用后,将未知属性设置为“无”的目标将失败。
标记:loading_and_analysisincompatible_change
--[no]incompatible_fix_package_group_reporoot_syntax 默认值:“true”
在 package_group 的“packages”属性中,更改了值“//...”的含义以引用当前代码库中的所有软件包,而不是任何代码库中的所有软件包。您可以使用特殊值“public”代替“//...”来获取旧行为。此标志要求同时启用 --incompatible_package_group_has_public_syntax。
标记:build_file_semanticsincompatible_change
--[no]incompatible_java_common_parameters 默认值:“true”
如果设置为 true,则 pack_sources 中的 output_jar 和 host_javabase 参数以及 compile 中的 host_javabase 参数都将被移除。
标记:build_file_semanticsincompatible_change
--[no]incompatible_merge_fixed_and_default_shell_env 默认值:“true”
启用后,通过 placeholder 。如果停用,在本例中会完全忽略“env”的值。
标记:loading_and_analysisincompatible_change
--[no]incompatible_new_actions_api 默认值:“true”
如果设置为 true,用于创建操作的 API 将仅适用于“ctx.actions”,而不适用于“ctx”。
标记:build_file_semanticsincompatible_change
--[no]incompatible_no_attr_license 默认值:“true”
如果设置为 true,系统会停用函数“attr.license”。
标记:build_file_semanticsincompatible_change
--[no]incompatible_no_implicit_file_export 默认值:“false”
如果设置了此字段,则(已使用)源文件除非明确导出,否则是软件包私有文件。请参阅 https://github.com/bazelbuild/Proposals/blob/master/designs/2019-10-24-file-visibility.md
标记:build_file_semanticsincompatible_change
--[no]incompatible_no_rule_outputs_param 默认值:“false”
如果设置为 true,系统会停用 Starlark 函数的“rule()”的“outputs”参数。
标记:build_file_semanticsincompatible_change
--[no]incompatible_objc_provider_remove_linking_info 默认值:“false”
如果设置为 true,则系统会移除用于关联信息的 ObjcProvider API。
标记: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。链接_context 的旧 getter 也将停用,仅 linker_inputs 可用。
标记:build_file_semanticsloading_and_analysisincompatible_change
--[no]incompatible_run_shell_command_string 默认值:“true”
如果设置为 true, actions.run_shell 的命令参数将仅接受字符串
标记:build_file_semanticsincompatible_change
--[no]incompatible_stop_exporting_language_modules 默认值:“false”
启用后,某些语言专用模块(例如“cc_common”)将不会在用户 .bzl 文件中使用,只能从其各自的规则代码库中调用。
标记:loading_and_analysisincompatible_change
--[no]incompatible_struct_has_no_methods 默认值:“false”
停用结构体的 to_json 和 to_proto 方法,这些方法会污染结构体字段命名空间。对于 JSON,请改用 json.encode 或 json.encode_重大,对于 textproto,请改用 proto.encode_text。
标记:build_file_semanticsincompatible_change
--[no]incompatible_top_level_aspects_require_providers 默认值:“false”
如果设置为 true,顶级元素将遵循其所需的提供程序,并且仅在顶级目标上运行,这些目标的规则所通告的提供程序满足该方面所需的提供程序。
标记:loading_and_analysisincompatible_change
--[no]incompatible_unambiguous_label_stringification 默认值:“true”
如果为 true,Bazel 会将标签 @//foo:bar 字符串化为 @//foo:bar,而不是 //foo:bar。这只会影响 str()、% 运算符等的行为;repr() 的行为保持不变。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/15916。
标记:loading_and_analysisincompatible_change
--[no]incompatible_use_cc_configure_from_rules_cc 默认值:“false”
如果设为 true,Bazel 将不再允许使用 @bazel_tools 中的 cc_configure。如需了解详情和迁移说明,请参阅 https://github.com/bazelbuild/bazel/issues/10134。
标记:loading_and_analysisincompatible_change
--[no]incompatible_visibility_private_attributes_at_definition 默认值:“true”
如果设置为 true,系统会根据规则定义检查专用规则属性的可见性;如果未显示,则回退到使用规则。
标记:build_file_semanticsincompatible_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
触发构建时间优化的选项:
--[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 相比,后续构建没有任何增量。
标记: loses_incremental_state
--[no]track_incremental_state 默认值:“true”
如果为 false,Blaze 将不会保留允许对增量 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] 格式指定构建事件服务 (BES) 后端端点。默认设置是停用 BES 上传。支持的架构包括 grpc 和 grpcs(已启用 TLS 的 grpc)。如果未提供架构,则 Bazel 会假定使用 grpcs。
标记: affects_outputs
--[no]bes_check_preceding_lifecycle_events 默认值:“false”
在 PublishBuildToolEventStreamRequest 上设置字段 check_preceding_lifecycle_events_present,用于指示 BES 检查之前是否收到了与当前工具事件匹配的 InvocationEnforcementStarted 和 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”
指定要在 BEP 中缓冲的 stdout 或 stderr 的最大大小,然后再将其报告为进度事件。即使写入的数据大于指定的值(不超过 --bes_outerr_chunk_size),系统仍会在单个事件中报告单个写入操作。
标记: affects_outputs
--bes_outerr_chunk_size=<an integer> 默认值:“1048576”
用于指定在单个消息中要发送到 BEP 的 stdout 或 stderr 的大小上限。
标记: affects_outputs
--bes_proxy=<a string> 默认值:参见说明
通过代理连接到构建事件服务。目前,此标志只能用于配置 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 时添加关键字的构建服务操作器。使用此标志的构建服务运算符应阻止用户替换标志值。
标记: 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”
指定构建事件服务上传是应该阻止构建完成,还是应该立即结束调用并在后台完成上传。可以是“wait_for_upload_complete”(默认)、“nowait_for_upload_complete”或“full_async”。
标记: eagerness_to_exit
--build_event_binary_file=<a string> 默认值:“”
如果为非空,请将以 varint 分隔的二进制表示法(以表示构建事件协议)写入该文件。此选项隐含 --bes_upload_mode=wait_for_upload_complete。
标记: affects_outputs
--[no]build_event_binary_file_path_conversion 默认值:“true”
尽可能将 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 的构建事件服务上传是应该阻止构建完成,还是应该立即结束调用并在后台完成上传。可以是“wait_for_upload_complete”(默认)、“nowait_for_upload_complete”或“full_async”。
标记: eagerness_to_exit
--build_event_json_file=<a string> 默认值:“”
如果非空,请将构建事件协议的 JSON 序列化写入该文件。此选项隐含 --bes_upload_mode=wait_for_upload_complete。
标记: affects_outputs
--[no]build_event_json_file_path_conversion 默认值:“true”
尽可能将 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 的构建事件服务上传是应该阻止构建完成,还是应该立即结束调用并在后台完成上传。可以是“wait_for_upload_complete”(默认)、“nowait_for_upload_complete”或“full_async”。
标记: eagerness_to_exit
--build_event_max_named_set_of_file_entries=<an integer> 默认值:“-1”
单个 name_set_of_files 事件的最大条目数;小于 2 的值会被忽略,并且不执行事件拆分。此属性旨在限制构建事件协议中的最大事件大小,但并非直接控制事件大小。事件总大小是集合结构以及文件和 URI 长度的函数,而这又可能取决于哈希函数。
标记: affects_outputs
--[no]build_event_publish_all_actions 默认值:“false”
是否应发布所有操作。
标记: affects_outputs
--build_event_text_file=<a string> 默认值:“”
如果非空,请将构建事件协议的文本表示形式写入该文件
标记:affects_outputs
--[no]build_event_text_file_path_conversion 默认值:“true”
尽可能将 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 的构建事件服务上传是应该阻止构建完成,还是应该立即结束调用并在后台完成上传。可以是“wait_for_upload_complete”(默认)、“nowait_for_upload_complete”或“full_async”。
标记: eagerness_to_exit
--[no]experimental_announce_profile_path 默认值:“false”
启用后,系统会将 JSON 配置文件路径添加到日志。
标记: bazel_monitoring
--[no]experimental_bep_target_summary 默认值:“false”
是否发布 TargetSummary 事件。
--[no]experimental_build_event_expand_filesets 默认值:“false”
如果为 true,则在展示输出文件时展开 BEP 中的文件集。
标记: affects_outputs
如果为 true,则在显示输出文件时完全解析 BEP 中的相对 Fileset 符号链接。需要 --experimental_build_event_expand_filesets。
标记: affects_outputs
--experimental_build_event_upload_max_retries=<an integer> 默认值:“4”
Bazel 应重新尝试上传构建事件的次数上限。
标记: bazel_internal_configuration
--experimental_build_event_upload_retry_minimum_delay=<An immutable length of time.> 默认值:“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_system_network_usage 默认值:“false”
如果启用,性能分析器将收集系统的网络使用情况。
标记: bazel_monitoring
--[no]experimental_collect_worker_data_in_profiler 默认值:“false”
如果启用,性能分析器将收集 worker 的汇总资源数据。
标记: bazel_monitoring
已累计 --experimental_profile_additional_tasks=<phase, action, action_check, action_lock, action_release, action_update, action_complete, bzlmod, info, create_package, remote_execution, local_execution, scanner, local_parse, upload_time, remote_process_time, remote_queue, remote_setup, fetch, local_process_time, vfs_stat, vfs_dir, vfs_readlink, vfs_md5, vfs_xattr, vfs_delete, vfs_open, vfs_read, vfs_write, vfs_glob, vfs_vmfs_stat, vfs_vmfs_dir, vfs_vmfs_read, wait, thread_name, thread_sort_index, skyframe_eval, skyfunction, critical_path, critical_path_component, handle_gc_notification, action_counts, action_cache_counts, local_cpu_usage, system_cpu_usage, cpu_usage_estimation, local_memory_usage, system_memory_usage, memory_usage_estimation, system_network_up_usage, system_network_down_usage, workers_memory_usage, system_load_average, starlark_parser, starlark_user_fn, starlark_builtin_fn, starlark_user_compiled_fn, starlark_repository_fn, action_fs_staging, remote_cache_check, remote_download, remote_network, filesystem_traversal, worker_execution, worker_setup, worker_borrow, worker_working, worker_copying_outputs, credential_helper, pressure_stall_io, pressure_stall_memory, conflict_check, dynamic_lock or unknown> 次多次使用
指定要包含在配置文件中的其他配置文件任务。
标记: bazel_monitoring
--[no]experimental_profile_include_primary_output 默认值:“false”
在操作事件中包含额外的“out”属性,该属性包含操作的主要输出的执行路径。
标记: bazel_monitoring
--[no]experimental_profile_include_target_label 默认值:“false”
在操作事件的 JSON 个人资料数据中包含目标标签。
标记: bazel_monitoring
--[no]experimental_run_bep_event_include_residue 默认值:“false”
是否在运行的 build 事件中包含可能包含该残留的命令行。默认情况下,可能含有该残留的运行命令构建事件中不包含该残留。
标记: affects_outputs
--[no]experimental_stream_log_file_uploads 默认值:“false”
将日志文件上传直接流式传输到远程存储空间,而不是将其写入磁盘。
标记: affects_outputs
--experimental_workspace_rules_log_file=<a path> 默认值:参见说明
将某些工作区规则事件以分隔的 WorkspaceEvent proto 记录到此文件中。
--[no]generate_json_trace_profile 默认值:“auto”
启用后,Bazel 会分析 build,并将 JSON 格式的配置文件写入输出库的文件中。进入 chrome://tracing 即可查看配置文件。默认情况下,Bazel 会为所有类似 build 的命令和查询编写配置文件。
标记: bazel_monitoring
--[no]heap_dump_on_oom 默认值:“false”
在抛出 OOM 时是否手动输出堆转储(包括因达到 --gc_thrashing_limits 而导致的手动 OOM)。转储将写入 <output_base>/<invocation_id>.heapdump.hprof。此选项可有效取代 -XX:+HeapDumpOnOutOfMemoryError,后者对手动 OOM 没有任何影响。
标记: bazel_monitoring
--[no]legacy_important_outputs 默认值:“true”
使用此选项可禁止在 TargetComplete 事件中生成旧版 important_outputs 字段。Bazel 到 ResultStore 集成需要用到 gaming_outputs 字段。
标记: affects_outputs
--logging=<0 <= an integer <= 6> 默认值:“3”
日志记录级别。
标记: affects_outputs
--memory_profile=<a path> 默认值:参见说明
如果设置此参数,则在构建结束时会将内存使用情况数据写入指定的文件,并将稳定堆写入主日志。
标记: bazel_monitoring
--memory_profile_stable_heap_parameters=<integers, separated by a comma expected in pairs> 默认值:“1,0”
调整内存配置文件在构建结束时对稳定堆的计算。必须是偶数个整数,且以英文逗号分隔。在每个键值对中,第一个整数是要执行的 GC 数量。每一对中的第二个整数表示在垃圾回收之间等待的秒数。例如:2、4、4、0 则会发生 2 个暂停 4 秒的 GC,接着是 4 个暂停 0 秒的 GC
标记:bazel_monitoring
--profile=<a path> 默认值:参见说明
如果设置,则对 Bazel 进行性能分析并将数据写入指定的文件。使用 bazel analyze-profile 文件分析配置文件。
标记: bazel_monitoring
--[no]record_full_profiler_data 默认值:“false”
默认情况下,Bazel 性能分析器仅会记录快速但众多事件(例如统计文件)的汇总数据。如果启用此选项,分析器将记录每个事件,从而产生更精确的分析数据,但会降低性能。仅当同时使用 --profile 时,此选项才有效。
标记: bazel_monitoring
--remote_print_execution_messages=<failure, success or all> 默认值:“failure”
选择何时输出远程执行消息。有效值为“failure”,表示仅在失败时输出,值为“success”时仅在成功时输出,值为“all”时,一律输出。
标记: terminal_output
--[no]slim_profile 默认值:“true”
如果 JSON 配置文件过大,则可以通过合并事件来缩减 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
远程缓存和执行选项:
--experimental_circuit_breaker_strategy=<failure> 默认值:参见说明
指定断路器要使用的策略。可用的策略为“失败”。当选项的值无效时,与未设置该选项的行为相同。
标记: execution
--[no]experimental_guard_against_concurrent_changes 默认值:“false”
关闭此设置即可禁止在将操作上传到远程缓存之前检查其输入文件的 ctime。在某些情况下,Linux 内核会延迟写入文件,从而导致误报。
--[no]experimental_remote_cache_async 默认值:“false”
如果为 true,远程缓存 I/O 将在后台进行,而不是在生成过程中执行。
--[no]experimental_remote_cache_lease_extension 默认值:“false”
如果设置为 true,Bazel 会定期向远程缓存发送“FindMissingBlobs”调用,从而延长构建期间远程操作输出的租期。该频率取决于“--experimental_remote_cache_ttl”的值。
--experimental_remote_cache_ttl=<An immutable length of time.> 默认值:“3h”
在远程缓存中最近引用的摘要(例如通过 ActionResult 或 FindMissingBlobs)引用了远程缓存中的 blob 后,保证的最小 TTL。Bazel 会根据 blob 的 TTL 进行多项优化,例如,不会在增量构建中重复调用 GetActionResult。该值应设置为略小于实际 TTL,因为服务器返回摘要与 Bazel 接收摘要的时间之间存在时间差。
标记: execution
--experimental_remote_capture_corrupted_outputs=<a path> 默认值:参见说明
将捕获损坏输出的目录的路径。
--[no]experimental_remote_discard_merkle_trees 默认值:“false”
如果设置为 true,则会在调用 GetActionResult() 和 Execute() 期间舍弃输入根的 Merkle 树和关联输入映射的内存中副本。这会显著减少内存用量,但需要 Bazel 在远程缓存未命中和重试时重新计算这些副本。
--experimental_remote_downloader=<a string> 默认值:参见说明
要用作远程下载代理的 Remote Asset API 端点 URI。支持的架构包括 grpc、grpcs(已启用 TLS 的 grpc)和 unix(本地 UNIX 套接字)。如果未提供架构,Bazel 将默认使用 grpcs。请参阅:https://github.com/bazelbuild/remote-apis/blob/master/build/bazel/remote/asset/v1/remote_asset.proto
--[no]experimental_remote_downloader_local_fallback 默认值:“false”
如果远程下载程序失败,是否回退到本地下载程序。
--[no]experimental_remote_execution_keepalive 默认值:“false”
是否对远程执行调用使用 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.> 默认值:“60s”
计算远程请求的失败率的时间间隔。使用零值或负值时,计算失败的整个执行时长。可以使用以下单位:天 (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,则缓存大小不受限制。最佳值因项目规模而异。默认值为 1,000。
--[no]experimental_remote_require_cached 默认值:“false”
如果设置为 true,则强制缓存所有可以远程运行的操作,否则让构建失败。这对于排查非确定性问题非常有用,因为它可以检查本应缓存的操作是否实际已缓存,而不会错误地将新结果注入缓存。
--experimental_remote_scrubbing_config=<Converts to a Scrubber> 默认值:参见说明
使用提供的配置文件启用远程缓存键清理,该文件必须是文本格式的 ScrubbingConfig 协议缓冲区。 此功能旨在方便在不同平台上执行但定位到同一平台的操作之间共享远程/磁盘缓存。使用时应格外小心,因为设置不当可能会导致意外共享缓存条目,并导致构建错误。 清理不会影响操作的执行方式,而只会影响其远程/磁盘缓存键的计算方式,以检索或存储操作结果。它不能与远程执行结合使用。修改清理配置不会使本地文件系统或内部缓存中存在的输出失效;必须进行干净的 build 才能重新执行受影响的操作。 为了成功使用此功能,您可能需要同时设置自定义 --host_platform 与 --experimental_platform_in_output_dir(用于将输出前缀标准化)和 --incompatible_Strict_action_env(用于将环境变量标准化)。
--[no]incompatible_remote_build_event_upload_respect_no_cache 默认值:“false”
已弃用。无运维。请改用 --remote_build_event_upload=minimal。
--[no]incompatible_remote_downloader_send_all_headers 默认值:“true”
是否将一个多值标头的所有值(而不仅仅是第一个值)发送到远程下载程序。
标记: incompatible_change
--[no]incompatible_remote_output_paths_relative_to_input_root 默认值:“false”
如果设置为 true,则输出路径将相对于输入根目录而不是工作目录。
标记: incompatible_change
--[no]incompatible_remote_results_ignore_disk 默认值:“true”
空操作
标记: incompatible_change
--[no]remote_accept_cached 默认值:“true”
是否接受远程缓存的操作结果。
--remote_build_event_upload=<all or minimal> 默认值:“minimal”
如果设置为“all”,则 BEP 引用的所有本地输出都将上传到远程缓存。如果设置为“minimal”,则 BEP 引用的本地输出不会上传到远程缓存,但对 BEP 使用者很重要的文件(例如测试日志和时间配置文件)除外。即使远程缓存中缺少 bytestream:// 方案,也不会始终使用 bytestream:// 方案。 默认为“minimal”。
--remote_bytestream_uri_prefix=<a string> 默认值:参见说明
要在写入 build 事件流的 bytestream:// URI 中使用的主机名和实例名称。在使用代理执行构建时可以设置此选项,这会导致 --remote_executor 和 --remote_instance_name 的值不再与远程执行服务的规范名称相对应。如果未设置,则默认为“${hostname}/${instance_name}”。
--remote_cache=<a string> 默认值:参见说明
缓存端点的 URI。支持的架构包括 http、https、grpc、grpcs(启用了 TLS 的 grpc)和 unix(本地 UNIX 套接字)。如果未提供架构,Bazel 将默认使用 grpcs。指定 grpc://、http:// 或 unix: 架构以停用 TLS。请参阅 https://bazel.build/remote/caching
--[no]remote_cache_compression 默认值:“false”
启用后,使用 zstd 压缩/解压缩缓存 blob。
已累计 --remote_cache_header=<a 'name=value' assignment> 次多次使用
指定要包含在缓存请求中的标头:--remote_cache_header=Name=Value。可以通过多次指定标志来传递多个标头。系统会将具有相同名称的多个值转换为以逗号分隔的列表。
已累计 --remote_default_exec_properties=<a 'name=value' assignment> 次多次使用
如果执行平台尚未设置 exec_properties,请设置要用作远程执行平台的默认 exec 属性。
标记: affects_outputs
--remote_default_platform_properties=<a string> 默认值:“”
如果执行平台尚未设置 remote_execution_properties,请设置要为远程执行 API 设置的默认平台属性。如果主机平台被选作远程执行的执行平台,则也将使用此值。
已累计 --remote_download_regex=<a string> 次多次使用
强制 Bazel 下载与指定正则表达式匹配的工件。与不带 Bytes(或内部等效项)的 Build 结合使用,以允许客户端请求本地可能需要的某些工件(例如 IDE 支持)。可以通过重复使用此标记来指定多个正则表达式。
标记: 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.> 默认值:“60s”
等待远程执行和缓存调用的最长时间。对于 REST 缓存,这是指连接和读取超时。可以使用的单位包括:天 (d)、小时 (h)、分钟 (m)、秒 (s) 和毫秒 (ms)。如果省略单位,则值将解释为秒。
--[no]remote_upload_local_results 默认值:“true”
是否应将本地执行的操作结果上传到远程缓存(如果远程缓存支持此操作并且用户已获得执行此操作的授权)。
--[no]remote_verify_downloads 默认值:“true”
如果设置为 true,Bazel 会计算所有远程下载的哈希总和,如果远程缓存的值与预期值不匹配,则会舍弃这些值。
其他选项,未以其他方式分类:
已累计 --build_metadata=<a 'name=value' assignment> 次多次使用
要在构建事件中提供的自定义键值对字符串对。
标记: terminal_output
--color=<yes, no or auto> 默认值:“auto”
使用终端控件为输出着色。
已累计 --config=<a string> 次多次使用
从 rc 文件中选择其他配置部分;对于每个 <command> 部分,如果这样的部分存在,则还会从 <command>:<config> 中提取选项;如果任何 .rc 文件中都不存在此部分,则 Blaze 会失败并报错。等效的配置部分和标志组合位于 tools/*.blazerc 配置文件中。
已累计 --credential_helper=<Path to a credential helper. It may be absolute, relative to the PATH environment variable, or %workspace%-relative. The path be optionally prefixed by a scope followed by an '='. The scope is a domain name, optionally with a single leading '*' wildcard component. A helper applies to URIs matching its scope, with more specific scopes preferred. If a helper has no scope, it applies to every URI.> 次多次使用
配置凭据帮助程序,用于检索授权凭据以进行代码库提取、远程缓存和执行以及构建事件服务。 帮助程序提供的凭据优先于 --google_default_credentials、--google_credentials、.netrc 文件或存储库 .csv.download 和存储库 中 auth 参数提供的凭据。 可以多次指定,以设置多个帮助程序。 如需了解详情,请参阅 https://github.com/bazelbuild/Proposals/blob/main/designs/2022-06-07-bazel-credential-helpers.md。
--credential_helper_cache_duration=<An immutable length of time.> 默认值:“30m”
凭据帮助程序提供的凭据的缓存时长。 使用其他值调用将调整先前存在条目的生命周期;传递零以清除缓存。无论此标志如何,干净命令始终会清除缓存。
--credential_helper_timeout=<An immutable length of time.> 默认值:“10s”
配置凭据帮助程序的超时时间。 凭据帮助程序未能在此超时时间内响应将导致调用失败。
--curses=<yes, no or auto> 默认值:“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(在 Windows 上)等。
--[no]experimental_rule_extension_api 默认值:“false”
启用实验性规则扩展 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.> 默认值:“20s”
为传出 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
空操作。
标记:loading_and_analysisincompatible_change
--[no]progress_in_terminal_title 默认值:“false”
在终端标题中显示命令进度。有助于了解 bazel 在有多个终端标签页时执行的操作。
--[no]show_progress 默认值:“true”
在构建期间显示进度消息。
--show_progress_rate_limit=<a double> 默认值:“0.2”
输出中进度消息之间的最小秒数。
--[no]show_timestamps 默认值:“false”
在消息中添加时间戳
--tls_certificate=<a string> 默认值:参见说明
指定可信的 TLS 证书的路径,以对服务器证书进行签名。
--tls_client_certificate=<a string> 默认值:参见说明
指定要使用的 TLS 客户端证书;您还需要提供客户端密钥以启用客户端身份验证。
--tls_client_key=<a string> 默认值:参见说明
指定要使用的 TLS 客户端密钥;您还需要提供客户端证书以启用客户端身份验证。
--ui_actions_shown=<an integer> 默认值:“8”
详细进度条中显示的并发操作数量;每项操作单独显示一行。进度条始终显示至少一个,所有小于 1 的数字都会映射到 1。
标记: terminal_output
--[no]watchfs 默认值:“false”
在 Linux/macOS 上:如果为 true,则 bazel 会尝试使用操作系统的文件监视服务进行本地更改,而不是扫描每个文件以查找更改。在 Windows 上:此标记目前是一个非操作,但可以与 --experimental_windows_watchfs 一起启用。在任何操作系统上:如果您的工作区位于网络文件系统中,而文件是在远程机器上编辑的,则此行为是未定义的。

Analyze-profile 选项

出现在命令之前并由客户端解析的选项:
已累计 --distdir=<a path> 次多次使用
在访问网络下载归档文件之前,可在其他位置搜索归档文件。
标记: bazel_internal_configuration
如果设置此参数,当缓存命中时,代码库缓存将对文件进行硬链接,而不是进行复制。这是为了节省磁盘空间。
标记: bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 默认值:“0”
下载错误重试次数上限。如果设置为 0,系统会停用重试。
标记: experimental
--experimental_scale_timeouts=<a double> 默认值:“1.0”
按此系数扩缩 Starlark 代码库规则中的所有超时。通过这种方式,无需更改源代码,即可让外部代码库在速度低于规则作者预期的机器上运行。
标记:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 默认值:“8”
http 下载的尝试次数上限。
标记: bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 默认值:“0s”
http 下载重试的超时上限。如果值为 0,则未定义超时上限。
标记: bazel_internal_configuration
--http_timeout_scaling=<a double> 默认值:“1.0”
根据给定系数调整与 http 下载相关的所有超时时间
标记:bazel_internal_configuration
--repository_cache=<a path> 默认值:参见说明
指定在提取外部代码库期间获取的已下载值的缓存位置。使用空字符串作为参数会请求停用缓存,否则会使用默认值“<output_user_root>/cache/repos/v1”。
标记:bazel_internal_configuration
--[no]repository_disable_download 默认值:“false”
如果已设置此参数,则在代码库提取过程中,不允许使用 ctx.download{,_and_Extract} 进行下载。请注意,网络访问并非完全停用; ctx.execute 仍可以运行访问互联网的任意可执行文件。
标记: bazel_internal_configuration
用于控制构建执行的选项:
--gc_thrashing_threshold=<an integer in 0-100 range> 默认值:“100”
占用的空间百分比 (0-100),超过此值时,GcThrashingDetector 会将内存压力事件视为相对于其限值 (--gc_thrashing_limits)。如果设置为 100,则会停用 GcThrashingDetector。
标记: host_machine_resource_optimizations
与 Bzlmod 输出和语义相关的选项:
已累计 --allow_yanked_versions=<a string> 次多次使用
以“<module1>@<version1>,<module2>@<version2>”的形式指定模块版本,即使这些版本在来源的注册表中进行了声明(如果它们并非来自 NonRegistryOverride),也允许出现在已解析的依赖关系图中。否则,拉取版本会导致解析失败。您还可以使用“BZLMOD_ALLOW_YANKED_VERSIONS”环境变量定义允许的拖动版本。您可以使用关键字“all”停用此检查(不推荐)。
标记: loading_and_analysis
--check_bazel_compatibility=<error, warning or off> 默认值:“error”
检查 Bazel 模块的 Bazel 版本兼容性。有效值包括“error”(可上报为解决失败),“off”可停用检查,值为“warning”(用于在检测到不匹配时输出警告)。
标记: loading_and_analysis
--check_direct_dependencies=<off, warning or error> 默认值:“警告”
检查根模块中声明的直接“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 or error> 默认值:“update”
指定如何以及是否使用锁定文件。有效值包括,值为“update”以使用锁文件并在有更改时更新锁文件;值为“error”使用锁文件,但如果锁文件不是最新文件,则抛出错误;值为“off”既不对锁文件执行读取或写入操作,也抛出错误。
标记: loading_and_analysis
已累计 --override_module=<an equals-separated mapping of module name to path> 次多次使用
使用 <模块名称>=<路径> 形式的本地路径替换模块。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出
已累计 --registry=<a string> 次多次使用
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在之前的注册表中查找模块,只有在之前的注册表中缺失模块时,才会回退到后续注册表。
标记: changes_inputs
触发构建时间优化的选项:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 默认值:“1s:2,20s:3,1m:5”
限制,如果达到这些限制,则会导致 GcThrashingDetector 导致 Bazel 崩溃并出现 OOM。每个限制以 <period>:<count> 形式指定,其中 period 是时长,计数是正整数。如果在 <period> 内连续 <count> 次完整 GC 后仍被占用的到期空间(旧代堆)百分比超过 --gc_thrashing_threshold%,则会触发 OOM。可以用英文逗号分隔指定多个限制。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过 --skyframe_high_water_mark_threshold 设置的阈值,则当发生完整 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示完整 GC 事件永远不会触发丢弃操作。达到此上限后,当发生完整 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过由 --skyframe_high_water_mark_threshold 设置的阈值,当发生次要 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示次要 GC 事件永远不会触发丢弃操作。达到此上限后,当发生次要 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 默认值:“85”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量不低于此阈值,则会丢弃不必要的临时 Skyframe 状态。当 GC 抖动 (i) 是由此临时状态的内存使用引起的且 (ii) 在需要时比重构状态的成本更高时,即可降低 GC 抖动对实际使用时间的影响。
标记: host_machine_resource_optimizations
影响日志记录的详细程度、格式或位置的选项:
--dump=<text or raw> [-d] 默认:参见说明
以人类可读的“文本”格式或支持脚本的“原始”格式输出完整的配置文件数据转储。
标记: affects_outputs
--[no]experimental_command_profile 默认值:“false”
将 Java 飞行记录器 CPU 配置文件记录到输出基本目录中的 profile.jfr 文件中。此标志的语法和语义将来可能会更改,以支持不同的配置文件类型或输出格式;使用时需自行承担风险。
--[no]experimental_record_metrics_for_all_mnemonics 默认值:“false”
默认情况下,已执行操作数量最多的 20 种助记符不得超过操作类型的数量。设置此选项后,系统会写入所有助记符的统计信息。
用于指定或更改不属于其他类别的 Bazel 命令的通用输入的选项:
--experimental_resolved_file_instead_of_workspace=<a string> 默认值:“”
如果非空,则读取指定的已解析文件而不是 WORKSPACE 文件
标记: changes_inputs
远程缓存和执行选项:
--experimental_downloader_config=<a string> 默认值:参见说明
指定要用于配置远程下载程序的文件。此文件由多个行组成,其中每个行以指令(“allow”“block”或“rewrite”)开头,后跟主机名(分别用于“allow”和“block”)或两种格式,一种用于匹配,另一种用作替换网址,反向引用从“$1”开始。可以针对同一个网址提供多个“rewrite”指令,在这种情况下,系统会返回多个网址。
--experimental_worker_for_repo_fetching=<off, platform or virtual> 默认值:“关闭”
用于代码库提取的线程模式。如果设置为“off”,则不使用任何工作线程,并且 Repo 提取功能可能会重启。否则,如果设置为“platform”,则使用平台线程(即操作系统线程),如果设置为“virtual”,则使用虚拟线程。
其他选项,未以其他方式分类:
已累计 --override_repository=<an equals-separated mapping of repository name to path> 次多次使用
使用 <repo name>=<path> 形式的本地路径替换代码库。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出

Aquery 选项

build 继承所有选项。

出现在命令之前并由客户端解析的选项:
已累计 --distdir=<a path> 次多次使用
在访问网络下载归档文件之前,可在其他位置搜索归档文件。
标记: bazel_internal_configuration
如果设置此参数,当缓存命中时,代码库缓存将对文件进行硬链接,而不是进行复制。这是为了节省磁盘空间。
标记: bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 默认值:“0”
下载错误重试次数上限。如果设置为 0,系统会停用重试。
标记: experimental
--experimental_scale_timeouts=<a double> 默认值:“1.0”
按此系数扩缩 Starlark 代码库规则中的所有超时。通过这种方式,无需更改源代码,即可让外部代码库在速度低于规则作者预期的机器上运行。
标记:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 默认值:“8”
http 下载的尝试次数上限。
标记: bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 默认值:“0s”
http 下载重试的超时上限。如果值为 0,则未定义超时上限。
标记: bazel_internal_configuration
--http_timeout_scaling=<a double> 默认值:“1.0”
根据给定系数调整与 http 下载相关的所有超时时间
标记:bazel_internal_configuration
--repository_cache=<a path> 默认值:参见说明
指定在提取外部代码库期间获取的已下载值的缓存位置。使用空字符串作为参数会请求停用缓存,否则会使用默认值“<output_user_root>/cache/repos/v1”。
标记:bazel_internal_configuration
--[no]repository_disable_download 默认值:“false”
如果已设置此参数,则在代码库提取过程中,不允许使用 ctx.download{,_and_Extract} 进行下载。请注意,网络访问并非完全停用; ctx.execute 仍可以运行访问互联网的任意可执行文件。
标记: bazel_internal_configuration
用于控制构建执行的选项:
--gc_thrashing_threshold=<an integer in 0-100 range> 默认值:“100”
占用的空间百分比 (0-100),超过此值时,GcThrashingDetector 会将内存压力事件视为相对于其限值 (--gc_thrashing_limits)。如果设置为 100,则会停用 GcThrashingDetector。
标记: host_machine_resource_optimizations
与查询输出和语义相关的选项:
--aspect_deps=<off, conservative or precise> 默认值:“保守型”
当输出格式为 {xml,proto,record} 之一时,如何解析切面依赖项。“off”表示不解析任何切面依赖项;“保守”(默认值)表示添加所有已声明的切面依赖项,无论它们是否获得了直接依赖项的规则类,“确切”表示仅添加在直接依赖项的规则类下可能处于活动状态的那些方面。请注意,精确模式需要加载其他软件包来评估单个目标,因此该模式比其他模式慢。另请注意,即使是精确模式也不是完全精确:是否计算某个方面的决定是在分析阶段决定的,而该阶段不会在“bazel 查询”期间运行。
标记: build_file_semantics
--[no]consistent_labels 默认值:“false”
启用后,每个查询命令都会发出标签,就像是通过应用于 <code>Label</code> 实例的 Starlark <code>str</code> 函数来发出。这对于需要匹配不同查询命令的输出和/或由规则发出的标签输出的工具非常有用。如果未启用,输出格式设置工具可以自由发出明显的代码库名称(相对于主代码库),以使输出更易于阅读。
标记: 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:no-op(始终遵循切面)。
标记: terminal_output
--[no]include_commandline 默认值:“true”
在输出中包含操作命令行的内容(可能较大)。
标记: terminal_output
--[no]include_file_write_contents 默认值:“false”
添加 FileWrite、SourceSymlinkManifest 和 RepoMappingManifest 操作的文件内容(可能较大)。
标记: terminal_output
--[no]include_param_files 默认值:“false”
添加命令中使用的参数文件的内容(可能较大)。注意:启用此标志后,系统将自动启用 --include_commandline 标志。
标记: terminal_output
--[no]incompatible_package_group_includes_double_slash 默认值:“true”
启用后,在输出 package_group 的“packages”属性时,前导“//”将不会省略。
标记:terminal_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”
输出查询结果时应采用的格式。允许的查询值包括:text、textproto、proto、streamed_proto、jsonproto。
标记: terminal_output
--[no]proto:default_values 默认值:“true”
如果为 true,则会包含未在 BUILD 文件中明确指定值的属性;否则,系统会省略这些属性。此选项适用于 --output=proto
标记:terminal_output
--[no]proto:definition_stack 默认值:“false”
填充 Definition_stack proto 字段,该字段会在定义规则的类时记录每个规则实例的 Starlark 调用堆栈。
标记: terminal_output
--[no]proto:flatten_selects 默认值:“true”
启用后, select() 创建的可配置属性将展平。对于列表类型,扁平化表示形式是一个列表,其中每个选定映射的值都正好包含一次。标量类型会展平为 null。
标记: build_file_semantics
--[no]proto:include_attribute_source_aspects 默认值:“false”
使用来源切面填充每个 Attribute 的 source_aspect_name proto 字段(如果未填写,则为空字符串)。
标记: terminal_output
--[no]proto:include_synthetic_attribute_hash 默认值:“false”
是否计算并填充 $internal_attr_hash 属性。
标记: terminal_output
--[no]proto:instantiation_stack 默认值:“false”
填充每条规则的实例化调用堆栈。请注意,该堆栈必须存在。
标记:terminal_output
--[no]proto:locations 默认值:“true”
是否在 proto 输出中输出位置信息。
标记: terminal_output
--proto:output_rule_attrs=<comma-separated list of options> 默认值:“all”
要在输出中包含的属性列表(以英文逗号分隔)。默认为所有属性。设置为空字符串,不输出任何属性。此选项适用于 --output=proto。
标记: terminal_output
--[no]proto:rule_inputs_and_outputs 默认值:“true”
是否填充 rule_input 和 rule_output 字段。
标记: terminal_output
--query_file=<a string> 默认值:“”
如果设置此参数,查询将从此处指定的文件中读取查询,而不是在命令行中读取。在此处指定文件以及命令行查询会出错。
标记: changes_inputs
--[no]relative_locations 默认值:“false”
如果为 true,则 xml 和 proto 输出中 BUILD 文件的位置将是相对位置。默认情况下,位置输出是绝对路径,不同机器之间会不一致。您可以将此选项设置为 true,以便在不同机器上获得一致的结果。
标记: terminal_output
--[no]skyframe_state 默认值:“false”
在不执行额外分析的情况下,从 Skyframe 中转储当前操作图表。注意:目前不支持使用 --skyframe_state 指定目标。此标志仅适用于 --output=proto 或 --output=textproto。
标记: terminal_output
--[no]tool_deps 默认值:“true”
查询:如果停用,对“exec configuration”的依赖关系将不会包含在执行查询的依赖关系图中。“exec configuration”依赖项边缘(例如从任何“proto_library”规则到协议编译器的依赖项)通常指向构建期间执行的工具,而不是同一“目标”程序的一部分。 Cquery:如果停用,则从发现了此已配置目标的顶级目标的执行转换中过滤掉所有已配置的目标。这意味着,如果顶级目标在目标配置中,则系统只会返回同样位于目标配置中的已配置目标。如果顶级目标位于 exec 配置中,则仅返回 exec 配置的目标。此选项不会排除已解析的工具链。
标记: build_file_semantics
--universe_scope=<comma-separated list of options> 默认值:“”
一组以英文逗号分隔的目标模式(加法和减法)。查询可以在由指定目标的传递闭包定义的宇宙中执行。此选项用于 query 和 cquery 命令。 对于 cquery,此选项的输入是构建所有答案的目标,因此此选项可能会影响配置和转换。如果未指定此选项,则假定顶级目标为从查询表达式解析的目标。注意:对于 cquery,如果无法使用顶级选项构建从查询表达式解析的目标,则不指定此选项可能会导致构建中断。
标记: loading_and_analysis
与 Bzlmod 输出和语义相关的选项:
已累计 --allow_yanked_versions=<a string> 次多次使用
以“<module1>@<version1>,<module2>@<version2>”的形式指定模块版本,即使这些版本在来源的注册表中进行了声明(如果它们并非来自 NonRegistryOverride),也允许出现在已解析的依赖关系图中。否则,拉取版本会导致解析失败。您还可以使用“BZLMOD_ALLOW_YANKED_VERSIONS”环境变量定义允许的拖动版本。您可以使用关键字“all”停用此检查(不推荐)。
标记: loading_and_analysis
--check_bazel_compatibility=<error, warning or off> 默认值:“error”
检查 Bazel 模块的 Bazel 版本兼容性。有效值包括“error”(可上报为解决失败),“off”可停用检查,值为“warning”(用于在检测到不匹配时输出警告)。
标记: loading_and_analysis
--check_direct_dependencies=<off, warning or error> 默认值:“警告”
检查根模块中声明的直接“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 or error> 默认值:“update”
指定如何以及是否使用锁定文件。有效值包括,值为“update”以使用锁文件并在有更改时更新锁文件;值为“error”使用锁文件,但如果锁文件不是最新文件,则抛出错误;值为“off”既不对锁文件执行读取或写入操作,也抛出错误。
标记: loading_and_analysis
已累计 --override_module=<an equals-separated mapping of module name to path> 次多次使用
使用 <模块名称>=<路径> 形式的本地路径替换模块。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出
已累计 --registry=<a string> 次多次使用
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在之前的注册表中查找模块,只有在之前的注册表中缺失模块时,才会回退到后续注册表。
标记: changes_inputs
触发构建时间优化的选项:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 默认值:“1s:2,20s:3,1m:5”
限制,如果达到这些限制,则会导致 GcThrashingDetector 导致 Bazel 崩溃并出现 OOM。每个限制以 <period>:<count> 形式指定,其中 period 是时长,计数是正整数。如果在 <period> 内连续 <count> 次完整 GC 后仍被占用的到期空间(旧代堆)百分比超过 --gc_thrashing_threshold%,则会触发 OOM。可以用英文逗号分隔指定多个限制。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过 --skyframe_high_water_mark_threshold 设置的阈值,则当发生完整 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示完整 GC 事件永远不会触发丢弃操作。达到此上限后,当发生完整 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过由 --skyframe_high_water_mark_threshold 设置的阈值,当发生次要 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示次要 GC 事件永远不会触发丢弃操作。达到此上限后,当发生次要 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 默认值:“85”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量不低于此阈值,则会丢弃不必要的临时 Skyframe 状态。当 GC 抖动 (i) 是由此临时状态的内存使用引起的且 (ii) 在需要时比重构状态的成本更高时,即可降低 GC 抖动对实际使用时间的影响。
标记: host_machine_resource_optimizations
影响日志记录的详细程度、格式或位置的选项:
--[no]experimental_command_profile 默认值:“false”
将 Java 飞行记录器 CPU 配置文件记录到输出基本目录中的 profile.jfr 文件中。此标志的语法和语义将来可能会更改,以支持不同的配置文件类型或输出格式;使用时需自行承担风险。
--[no]experimental_record_metrics_for_all_mnemonics 默认值:“false”
默认情况下,已执行操作数量最多的 20 种助记符不得超过操作类型的数量。设置此选项后,系统会写入所有助记符的统计信息。
用于指定或更改不属于其他类别的 Bazel 命令的通用输入的选项:
--experimental_resolved_file_instead_of_workspace=<a string> 默认值:“”
如果非空,则读取指定的已解析文件而不是 WORKSPACE 文件
标记: changes_inputs
远程缓存和执行选项:
--experimental_downloader_config=<a string> 默认值:参见说明
指定要用于配置远程下载程序的文件。此文件由多个行组成,其中每个行以指令(“allow”“block”或“rewrite”)开头,后跟主机名(分别用于“allow”和“block”)或两种格式,一种用于匹配,另一种用作替换网址,反向引用从“$1”开始。可以针对同一个网址提供多个“rewrite”指令,在这种情况下,系统会返回多个网址。
--experimental_worker_for_repo_fetching=<off, platform or virtual> 默认值:“关闭”
用于代码库提取的线程模式。如果设置为“off”,则不使用任何工作线程,并且 Repo 提取功能可能会重启。否则,如果设置为“platform”,则使用平台线程(即操作系统线程),如果设置为“virtual”,则使用虚拟线程。
其他选项,未以其他方式分类:
已累计 --override_repository=<an equals-separated mapping of repository name to path> 次多次使用
使用 <repo name>=<path> 形式的本地路径替换代码库。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出
用于控制构建执行的选项:
是否通过直接文件系统调用来创建符号链接树
标记:loading_and_analysisexecutionexperimental
--[no]experimental_persistent_aar_extractor 默认值:“false”
使用工作器启用永久性 aar 提取器。
标记: execution
--[no]experimental_remotable_source_manifests 默认值:“false”
是否将源清单操作设为可远程执行
标记:loading_and_analysisexecutionexperimental
--[no]experimental_split_coverage_postprocessing 默认值:“false”
如果为 true,则 Bazel 会在新生成中运行覆盖率后处理以进行测试。
标记: execution
--[no]experimental_strict_fileset_output 默认值:“false”
如果启用此选项,文件集会将所有输出工件视为常规文件。它们不会遍历目录,也不会对符号链接敏感。
标记: execution
--modify_execution_info=<regex=[+-]key,regex=[+-]key,...> 默认值:“”
根据操作助记符,在操作的执行信息中添加或移除键。仅适用于支持执行信息的操作。许多常用操作都支持执行信息,例如 Genrule、CppCompile、Javac、StarlarkAction、TestRunner。在指定多个值时,顺序很重要,因为多个正则表达式可能适用于同一助记符。 语法:“regex=[+-]key,regex=[+-]key,...”。 示例:'.*=+x,.*=-y,.*=+z' 在所有操作的执行信息中分别添加“x”和“z”,以及从中移除“y”。“Genrule=+Require-x”会在所有 Genrule 操作的执行信息中添加“Needs-x”。“(?!Genrule).*=- requires-x”会从所有非 Genrule 操作的执行信息中移除“Needs-x”。
标记:executionaffects_outputsloading_and_analysis
--persistent_android_dex_desugar
使用 worker 实现永久性 Android dex 和脱糖操作。
扩展为:
  --internal_persistent_android_dex_desugar
  --strategy=Desugar=worker
  --strategy=DexBuilder=worker

标记:host_machine_resource_optimizationsexecution
--persistent_android_resource_processor
使用工作器启用永久性 Android 资源处理器。
扩展为:
--internal_persistent_busybox_tools
--strategy=AaptPackage=worker
--strategy=AndroidResourceParser=worker
--strategy=AndroidResourceValidator=worker
--strategy=AndroidResourceCompiler=worker
--strategy=RClassGenerator=worker
--strategy=AndroidResourceLink=worker
--strategy=AndroidAapt2=worker
--strategy=AndroidAssetMerger=worker
--strategy=AndroidResourceMerger=worker
--strategy=AndroidCompiledResourceMerger=worker
--strategy=ManifestMerger=worker
--strategy=AndroidManifestMerger=worker
--strategy=ManifestMerger=worker
--strategy=AndroidManifestMerger=worker
--strategy=Aapt2Optimize=worker
--strategy=Aapt2Optimize=worker
--strategy=Aapt2Optimize=worker
--strategy=Aapt2Optimize=worker
--strategy=Aapt2Optimize=worker
--strategy=AARGenerator=worker--strategy=ProcessDatabinding=worker--strategy=GenerateDataBindingBaseClasses=workerhost_machine_resource_optimizationsexecution
--persistent_multiplex_android_dex_desugar
使用 worker 启用永久性多路复用 Android dex 和脱糖操作。
扩展为:
  --persistent_android_dex_desugar
  --internal_persistent_multiplex_android_dex_desugar

标记:host_machine_resource_optimizationsexecution
--persistent_multiplex_android_resource_processor
使用工作器启用永久性多路复用 Android 资源处理器。
扩展为:
--persistent_android_resource_processor
--modify_execution_info=AaptPackage=+supports-multiplex-workers
--modify_execution_info=AndroidResourceParser=+supports-multiplex-workers
--modify_execution_info=AndroidResourceValidator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceCompiler=+supports-multiplex-workers
--modify_execution_info=RClassGenerator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceLink=+supports-multiplex-workers
--modify_execution_info=AndroidAapt2=+supports-multiplex-workers
--modify_execution_info=AndroidAssetMerger=+supports-multiplex-workers
--modify_execution_info=AndroidResourceMerger=+supports-multiplex-workers
--modify_execution_info=AndroidCompiledResourceMerger=+supports-multiplex-workers
--modify_execution_info=ManifestMerger=+supports-multiplex-workers
--modify_execution_info=AndroidManifestMerger=+supports-multiplex-workers
//--modify_execution_info=Aapt2Optimize=+supports-multiplex-workers
--modify_execution_info=Aapt2Optimize=+supports-multiplex-workers
--modify_execution_info=Aapt2Optimize=+supports-multiplex-workers
--modify_execution_info=AARGenerator=+supports-multiplex-workershost_machine_resource_optimizationsexecution
--persistent_multiplex_android_tools
启用永久性和多路复用 Android 工具(dexing、脱糖、资源处理)。
扩展为:
  --internal_persistent_multiplex_busybox_tools
  --persistent_multiplex_android_resource_processor
  --persistent_multiplex_android_dex_desugar

标记:host_machine_resource_optimizationsexecution
--[no]use_target_platform_for_tests 默认值:“false”
如果为 true,则 Bazel 将使用目标平台(而不是测试执行组)来运行测试。
标记: execution
用于配置用于执行操作的工具链的选项:
--android_compiler=<a string> 默认值:参见说明
Android 目标编译器。
标记:affects_outputsloading_and_analysisloses_incremental_state
--android_crosstool_top=<a build target label> 默认值:“//external:android/crosstool”
用于 Android build 的 C++ 编译器的位置。
标记:affects_outputschanges_inputsloading_and_analysisloses_incremental_state
--android_grte_top=<a label> 默认值:参见说明
Android 目标 grte_top。
标记:changes_inputsloading_and_analysisloses_incremental_state
--android_manifest_merger=<legacy, android or force_android> 默认值:“android”
选择要用于 android_binary 规则的清单合并程序。用于帮助从旧版合并程序过渡到 Android 清单合并程序的标志。
标记:affects_outputsloading_and_analysisloses_incremental_state
--android_platforms=<a build target label> 默认值:“”
设置 android_binary 目标使用的平台。如果指定了多个平台,则二进制文件是胖 APK,其中包含每个指定目标平台的原生二进制文件。
标记:changes_inputsloading_and_analysisloses_incremental_state
--android_sdk=<a build target label> 默认值:“@bazel_tools//tools/android:sdk”
指定用于构建 Android 应用的 Android SDK/平台。
标记:changes_inputsloading_and_analysisloses_incremental_state
--apple_crosstool_top=<a build target label> 默认值:“@bazel_tools//tools/cpp:toolchain”
要在 Apple 和 Objc 规则及其依赖项中使用的 crosstool 软件包的标签。
标记:loses_incremental_statechanges_inputs
--cc_output_directory_tag=<a string> 默认值:“”
指定要添加到配置目录的后缀。
标记: affects_outputs
--compiler=<a string> 默认值:参见说明
用于编译目标的 C++ 编译器。
标记:loading_and_analysisexecution
--coverage_output_generator=<a build target label> 默认值:“@bazel_tools//tools/test:lcov_merger”
用于对原始覆盖率报告进行后处理的二进制文件的位置。目前必须是包含单个文件(即二进制文件)的文件组。默认为“//tools/test:lcov_merger”。
标记:changes_inputsaffects_outputsloading_and_analysis
--coverage_report_generator=<a build target label> 默认值:“@bazel_tools//tools/test:coverage_report_generator”
用于生成覆盖率报告的二进制文件的位置。目前必须是包含单个文件(即二进制文件)的文件组。默认值为“//tools/test:coverage_report_generator”。
标记:changes_inputsaffects_outputsloading_and_analysis
--coverage_support=<a build target label> 默认值:“@bazel_tools//tools/test:coverage_support”
为收集代码覆盖率的测试操作输入所需的支持文件的位置。默认为“//tools/test:coverage_support”。
标记:changes_inputsaffects_outputsloading_and_analysis
--crosstool_top=<a build target label> 默认值:“@bazel_tools//tools/cpp:toolchain”
用于编译 C++ 代码的 crosstool 软件包标签。
标记:loading_and_analysischanges_inputsaffects_outputs
--custom_malloc=<a build target label> 默认值:参见说明
指定自定义 malloc 实现。此设置将替换构建规则中的 malloc 属性。
标记:changes_inputsaffects_outputs
已累计 --experimental_add_exec_constraints_to_targets=<a '<RegexFilter>=<label1>[,<label2>,...]' assignment> 次多次使用
以英文逗号分隔的正则表达式列表,其中每个表达式都可以以 -(否定表达式)为前缀,赋值 (=) 以逗号分隔的限制条件值目标列表。如果目标不与任何否定表达式匹配,并且至少有一个正表达式匹配,则系统将执行其工具链解析,就像它已将约束值声明为执行约束条件一样。示例://demo,-test=@platforms//cpus:x86_64 会将“x86_64”添加到 //demo 下的任何目标(名称中包含“test”的目标除外)。
标记: loading_and_analysis
--[no]experimental_include_xcode_execution_requirements 默认值:“false”
如果设置此参数,请为每个 Xcode 操作添加“require-xcode:{version}”的执行要求。如果 Xcode 版本带有带连字符的标签,请同时添加“require-xcode-label:{version_label}”的执行要求。
标记:loses_incremental_stateloading_and_analysisexecution
--[no]experimental_prefer_mutual_xcode 默认值:“true”
如果为 true,请使用可在本地和远程获取的最新 Xcode。如果为 false,或没有相互可用的版本,请使用通过 xcode-select 选择的本地 Xcode 版本。
标记: loses_incremental_state
--extra_execution_platforms=<comma-separated list of options> 默认值:“”
可用作运行操作的执行平台的平台。平台可以按确切目标指定,也可以指定为目标模式。系统会优先考虑这些平台,然后再考虑由 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> 默认值:参见说明
用于主机编译的 C++ 编译器。如果未设置 --host_crosstool_top 则被忽略。
标记:loading_and_analysisexecution
--host_crosstool_top=<a build target label> 默认值:参见说明
默认情况下,--crosstool_top 和 --compiler 选项也会用于 exec 配置。如果提供此标志,Bazel 会针对指定的 crosstool_top 使用默认 libc 和编译器。
标记:loading_and_analysischanges_inputsaffects_outputs
--host_grte_top=<a label> 默认值:参见说明
如果指定,此设置将替换 exec 配置的 libc 顶级目录 (--grte_top)。
标记:action_command_linesaffects_outputs
--host_platform=<a build target label> 默认值:“@local_config_platform//:host”
描述主机系统的平台规则标签。
标记:affects_outputschanges_inputsloading_and_analysis
--[no]incompatible_dont_enable_host_nonhost_crosstool_features 默认值:“true”
如果为 true,则 Bazel 不会在 C++ 工具链中启用“host”和“nonhost”功能(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7407)。
标记:loading_and_analysisincompatible_change
--[no]incompatible_enable_android_toolchain_resolution 默认值:“true”
使用工具链分辨率选择 Android SDK for Android 规则(Starlark 和原生)
标记:loading_and_analysisincompatible_change
--[no]incompatible_enable_apple_toolchain_resolution 默认值:“false”
使用工具链解析方法选择 Apple SDK for Apple 规则(Starlark 和原生)
标记:loading_and_analysisincompatible_change
--[no]incompatible_make_thinlto_command_lines_standalone 默认值:“true”
如果为 true,则 Bazel 不会将 C++ 链接操作命令行重复用于 lto 索引命令行(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/6791)。
标记: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_require_ctx_in_configure_features 默认值:“true”
如果为 true,则 Bazel 将需要在 cc_common.configure_features 中请求“ctx”参数(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7793)。
标记:loading_and_analysisincompatible_change
--[no]interface_shared_objects 默认值:“true”
如果工具链支持,请使用接口共享对象。目前,所有 ELF 工具链都支持此设置。
标记:loading_and_analysisaffects_outputsaffects_outputs
--ios_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:参见说明
指定用于构建 iOS 应用的 iOS SDK 版本。如果未指定,则使用“xcode_version”中的默认 iOS SDK 版本。
标记: loses_incremental_state
--macos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:参见说明
指定用于构建 macOS 应用的 macOS SDK 版本。如果未指定,则使用“xcode_version”中的默认 macOS SDK 版本。
标记: loses_incremental_state
--minimum_os_version=<a string> 默认值:参见说明
编译针对的最低操作系统版本。
标记:loading_and_analysisaffects_outputs
--platform_mappings=<a relative path> 默认值:“”
映射文件的位置,用于说明在未设置任何平台时应使用哪个平台,或在某个平台已存在时要设置哪些标志。必须相对于主工作区根目录。默认为“platform_mappings”(位于工作区根目录正下方的文件)。
标记:affects_outputschanges_inputsloading_and_analysis
--platforms=<a build target label> 默认值:“”
用于描述当前命令的目标平台的平台规则标签。
标记:affects_outputschanges_inputsloading_and_analysis
--python2_path=<a string> 默认值:参见说明
已弃用,无操作。已被“--incompatible_use_python_toolchains”停用。
标记:no_opdeprecated
--python3_path=<a string> 默认值:参见说明
已弃用,无操作。已被“--incompatible_use_python_toolchains”停用。
标记:no_opdeprecated
--python_path=<a string> 默认值:参见说明
为在目标平台上运行 Python 目标而调用的 Python 解释器的绝对路径。已废弃;已被 --incompatible_use_python_toolchains 停用。
标记:loading_and_analysisaffects_outputs
--python_top=<a build target label> 默认值:参见说明
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 用于相关构建操作。如果未指定,则使用 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++ 测试并在切割时构建,系统也会自动构建测试二进制文件的 .dwp 文件。
标记:loading_and_analysisaffects_outputs
--cc_proto_library_header_suffixes=<comma-separated set of options> 默认值:“.pb.h”
设置 cc_proto_library 创建的头文件的后缀。
标记:affects_outputsloading_and_analysis
--cc_proto_library_source_suffixes=<comma-separated set of options> 默认值:“.pb.cc”
设置 cc_proto_library 创建的源文件的后缀。
标记:affects_outputsloading_and_analysis
--[no]experimental_proto_descriptor_sets_include_source_info 默认值:“false”
为 proto_library 中的备用 Java API 版本运行额外操作。
标记:affects_outputsloading_and_analysisexperimental
--[no]experimental_proto_extra_actions 默认值:“false”
为 proto_library 中的备用 Java API 版本运行额外操作。
标记:affects_outputsloading_and_analysisexperimental
--[no]experimental_save_feature_state 默认值:“false”
将启用和已请求功能的状态保存为编译的输出。
标记:affects_outputsexperimental
--fission=<a set of compilation modes> 默认值:“no”
指定哪些编译模式会为 C++ 编译和链接使用裂变。可以是 {'Fastbuild', 'dbg', 'opt'} 的任意组合,或者是特殊值“yes”来启用所有模式,或是用“no”来停用所有模式。
标记:loading_and_analysisaction_command_linesaffects_outputs
--[no]incompatible_always_include_files_in_data 默认值:“true”
如果为 true,原生规则会将数据依赖项的 <code>DefaultInfo.files</code> 添加到其 runfile 中,这与 Starlark 规则的建议行为 (https://bazel.build/extending/rules#runfiles_features_to_avoid) 一致。
标记:affects_outputsincompatible_change
--[no]legacy_external_runfiles 默认值:“true”
如果为 true,则在 .runfiles/wsname/external/repo(以及 .runfiles/repo)下为外部代码库构建 runfiles 符号链接林。
标记: affects_outputs
--[no]objc_generate_linkmap 默认值:“false”
指定是否生成链接映射文件。
标记: affects_outputs
--[no]save_temps 默认值:“false”
如果设置此参数,系统会保存 gcc 的临时输出。其中包括 .s 文件(编译器代码)、.i 文件(经过预处理的 C)和 .ii 文件(经过预处理的 C++)。
标记: affects_outputs
可让用户配置预期输出(影响预期输出值,而非影响其值)的选项:
已累计 --action_env=<a 'name=value' assignment with an optional value part> 次多次使用
指定可用于具有目标配置的操作的一组环境变量。变量可以按名称指定(在这种情况下值将从调用环境获取),或者由名称=值对(其值独立于调用环境设置值)指定。此选项可以多次使用;对于为同一变量指定的选项,最后胜出的选项将累积,不同变量的选项会累积。
标记: action_command_lines
--android_cpu=<a string> 默认值:“armeabi-v7a”
Android 目标 CPU。
标记:affects_outputsloading_and_analysisloses_incremental_state
--[no]android_databinding_use_androidx 默认值:“true”
生成与 AndroidX 兼容的数据绑定文件。这仅适用于数据绑定 v2。此标志是空操作。
标记:affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]android_databinding_use_v3_4_args 默认值:“true”
将 Android 数据绑定 v2 与 3.4.0 参数搭配使用。此标志是空操作。
标记:affects_outputsloading_and_analysisloses_incremental_stateexperimental
--android_dynamic_mode=<off, default or fully> 默认值:“关闭”
确定在 cc_binary 未明确创建共享库时,是否动态地链接 Android 规则的 C++ 依赖项。“default”表示 bazel 将选择是否动态进行关联。“full”表示所有库都将动态链接。“off”表示在基本上静态模式下所有库的链接。
标记:affects_outputsloading_and_analysis
--android_manifest_merger_order=<alphabetical, alphabetical_by_configuration or dependency> 默认值:“字母”
设置传递给 Android 二进制文件清单合并程序的清单的顺序。ALPHABETIVE 表示清单按相对于 execroot 的路径进行排序。ALPHABETIVE_BY_CONFIGURATION 表示清单按输出目录中配置目录的相关路径排序。DEPENDENCY 表示清单是排序的,每个库的清单排在其依赖项清单之前。
标记:action_command_linesexecution
--[no]android_resource_shrinking 默认值:“false”
为使用 ProGuard 的 android_binary APK 启用资源缩减。
标记:affects_outputsloading_and_analysis
--[no]build_python_zip 默认值:“auto”
构建 Python 可执行 zip 文件;在 Windows 上,在其他平台上关闭
标记: affects_outputs
已累计 --catalyst_cpus=<comma-separated list of options> 次多次使用
用于构建 Apple Catalyst 二进制文件的架构的列表(以英文逗号分隔)。
标记:loses_incremental_stateloading_and_analysis
--[no]collect_code_coverage 默认值:“false”
如果指定,Bazel 将对代码进行插桩(尽可能使用离线插桩),并在测试期间收集覆盖率信息。只有与 --Instrumentation_filter 匹配的目标会受到影响。通常,此选项不应直接指定,应改用“bazelCoverage”命令。
标记: affects_outputs
--compilation_mode=<fastbuild, dbg or opt> [-c] 默认值:“fastbuild”
指定要构建二进制文件的模式。值:“Fastbuild”“dbg”“opt”。
标记:affects_outputsaction_command_lines
已累计 --conlyopt=<a string> 次多次使用
在编译 C 源文件时传递给 gcc 的附加选项。
标记:action_command_linesaffects_outputs
已累计 --copt=<a string> 次多次使用
可传递给 gcc 的其他选项。
标记:action_command_linesaffects_outputs
--cpu=<a string> 默认值:“”
目标 CPU。
标记:changes_inputsaffects_outputs
--cs_fdo_absolute_path=<a string> 默认值:参见说明
使用 CSFDO 配置文件信息来优化编译。指定包含配置文件(原始或已编入索引的 LLVM 配置文件)的 ZIP 文件的绝对路径名称。
标记: affects_outputs
--cs_fdo_instrument=<a string> 默认值:参见说明
使用上下文敏感 FDO 插桩生成二进制文件。使用 Clang/LLVM 编译器时,它还接受在运行时转储原始配置文件所在的目录名称。
标记: affects_outputs
--cs_fdo_profile=<a build target label> 默认值:参见说明
cs_fdo_profile,表示要用于优化的上下文相关配置文件。
标记: affects_outputs
已累计 --cxxopt=<a string> 次多次使用
在编译 C++ 源文件时传递给 gcc 的附加选项。
标记:action_command_linesaffects_outputs
已累计 --define=<a 'name=value' assignment> 次多次使用
每个 --define 选项都会为 build 变量指定一个赋值。
标记:changes_inputsaffects_outputs
--dynamic_mode=<off, default or fully> 默认值:“默认”
确定是否要动态地链接 C++ 二进制文件。“default”表示 Bazel 将选择是否动态关联。“full”表示所有库都将动态链接。“off”表示在基本上静态模式下所有库的链接。
标记:loading_and_analysisaffects_outputs
--[no]enable_fdo_profile_absolute_path 默认值:“true”
如果设置此参数,使用 fdo_absolute_profile_path 会引发错误。
标记: affects_outputs
--[no]enable_runfiles 默认值:“auto”
启用 runfiles 符号链接树;在 Windows 上,此设置在其他平台上处于关闭状态。
标记: affects_outputs
已累计 --experimental_action_listener=<a build target label> 次多次使用
已弃用,取而代之的是切面。使用 action_listener 将 extra_action 附加到现有构建操作。
标记: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_analysis
--[no]experimental_android_rewrite_dexes_with_rex 默认值:“false”
使用 Rex 工具重写 dex 文件
标记:affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]experimental_collect_code_coverage_for_generated_files 默认值:“false”
如果指定,Bazel 还将为生成的文件生成收集覆盖率信息。
标记: affects_outputs
--experimental_objc_fastbuild_options=<comma-separated list of options> 默认值:“-O0,-DDEBUG=1”
将这些字符串用作 objc fastbuild 编译器选项。
标记: action_command_lines
--[no]experimental_omitfp 默认值:“false”
如果为 true,则使用 libunwind 进行堆栈展开,并使用 -fomit-frame-pointer 和 -fasync-unwind-tables 进行编译。
标记:action_command_linesaffects_outputsexperimental
--experimental_output_paths=<off, content or strip> 默认值:“关闭”
在输出树规则中的位置编写输出的模型,尤其是对于多平台 / 多配置 build。这尚处于实验阶段。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/6526。Starlark 操作可以选择使用路径映射,方法是将键“supports-path-mapping”添加到“execution_requirements”字典。
标记:loses_incremental_statebazel_internal_configurationaffects_outputsexecution
已累计 --experimental_override_name_platform_in_output_dir=<a 'label=value' assignment> 次多次使用
每个条目都应该采用 label=value 形式,其中 label 表示平台,value 是要在输出路径中使用的所需简称。仅在 --experimental_platform_in_output_dir 为 true 时使用。具有最高命名优先级。
标记:affects_outputsexperimental
--[no]experimental_platform_in_output_dir 默认值:“false”
如果为 true,则会在输出目录名称中使用目标平台的简称,而不是 CPU。确切的方案尚处于实验阶段,可能会发生变化:首先,在极少数情况下,--platforms 选项并不只有一个值,而是使用 platform 选项的哈希值。接下来,如果当前平台的任何简称由 --experimental_override_name_platform_in_output_dir 注册,则系统会使用该简称。然后,如果设置了 --experimental_use_platforms_in_output_dir_legacy_heuristic,则使用基于当前平台标签的简称。最后,在万不得已时,系统将使用平台选项的哈希值。
标记: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
--fat_apk_cpu=<comma-separated set of options> 默认值:“armeabi-v7a”
设置此选项会启用胖 APK,其中包含适用于所有指定目标架构的原生二进制文件,例如--fat_apk_cpu=x86,armeabi-v7a. 如果指定此标志,对于 android_binary 规则的依赖项,系统会忽略 --android_cpu。
标记:affects_outputsloading_and_analysisloses_incremental_state
--[no]fat_apk_hwasan 默认值:“false”
是否创建 HWASAN 分块。
标记:affects_outputsloading_and_analysisloses_incremental_state
--fdo_instrument=<a string> 默认值:参见说明
使用 FDO 插桩生成二进制文件。使用 Clang/LLVM 编译器时,它还接受在运行时转储原始配置文件所在的目录名称。
标记: affects_outputs
--fdo_optimize=<a string> 默认值:参见说明
使用 FDO 配置文件信息优化编译。指定包含 .gcda 文件树的 ZIP 文件、包含自动配置文件的 afdo 文件或 LLVM 配置文件的名称。此标志还接受指定为标签的文件(例如“//foo/bar:file.afdo”- 您可能需要向相应的软件包添加“exports_files”指令)和指向“fdo_profile”目标的标签。此标志将被“fdo_profile”规则取代。
标记: affects_outputs
--fdo_prefetch_hints=<a build target label> 默认值:参见说明
使用缓存预提取提示。
标记: affects_outputs
--fdo_profile=<a build target label> 默认值:参见说明
表示要用于优化的配置文件的 fdo_profile。
标记: affects_outputs
已累计 --features=<a string> 次多次使用
对于目标配置中构建的目标,系统会默认启用或停用指定功能。指定 -<feature> 将停用该功能。负特征始终会覆盖正特征。另请参阅 --host_features
标记:changes_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> 次多次使用
指定可供具有执行配置的操作使用的环境变量集。变量可以按名称指定(在这种情况下值将从调用环境获取),或者由名称=值对(其值独立于调用环境设置值)指定。此选项可以多次使用;对于为同一变量指定的选项,最后胜出的选项将累积,不同变量的选项会累积。
标记: action_command_lines
--host_compilation_mode=<fastbuild, dbg or opt> 默认值:“opt”
指定构建期间所用工具的内置模式。值:“Fastbuild”“dbg”“opt”。
标记:affects_outputsaction_command_lines
已累计 --host_conlyopt=<a string> 次多次使用
在 exec 配置中编译 C(而非 C++)源文件时传递给 C 编译器的附加选项。
标记:action_command_linesaffects_outputs
已累计 --host_copt=<a string> 次多次使用
对于在 exec 配置中构建的工具,需要传递给 C 编译器的其他选项。
标记:action_command_linesaffects_outputs
--host_cpu=<a string> 默认值:“”
主机 CPU。
标记:changes_inputsaffects_outputs
已累计 --host_cxxopt=<a string> 次多次使用
对于在 exec 配置中构建的工具,可传递给 C++ 编译器的其他选项。
标记:action_command_linesaffects_outputs
已累计 --host_features=<a string> 次多次使用
对于 exec 配置中构建的目标,系统会默认启用或停用指定功能。指定 -<feature> 将停用该功能。负特征始终会覆盖正特征。
标记:changes_inputsaffects_outputs
--host_force_python=<PY2 or PY3> 默认值:参见说明
替换 exec 配置的 Python 版本。可以是“PY2”或“PY3”。
标记:loading_and_analysisaffects_outputs
已累计 --host_linkopt=<a string> 次多次使用
在 exec 配置中关联工具时向链接器传递的额外选项。
标记: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> 次多次使用
在 exec 配置中编译某些文件时,用于选择性传递给 C/C++ 编译器的其他选项。此选项可以多次传递。语法:regex_filter@option_1,option_2,...,option_n。其中,regex_filter 代表包含和排除正则表达式模式的列表(另请参阅 --Instrument_filter)。 option_1 到 option_n 代表任意命令行选项。如果选项包含英文逗号,则必须使用反斜杠加引号。选项可以包含 @。只有第一个 @ 用于拆分字符串。示例:--host_per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 将 -O0 命令行选项添加到 //foo/ 中所有 cc 文件的 gcc 命令行中(bar.cc 除外)。
标记:action_command_linesaffects_outputs
已累计 --host_swiftcopt=<a string> 次多次使用
用于执行工具的传递给 swiftc 的其他选项。
标记: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]incompatible_use_host_features 默认值:“true”
如果为 true,请仅对目标配置使用 --features,将 --host_features 用于 exec 配置。
标记:changes_inputsaffects_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)。开启后,请为 linkopts 中包含 linkshared=True 且 linkstatic=True 或“-static”的 cc_binary 规则使用 --whole-archive。这仅用于向后兼容。更好的替代方案是在必要时使用 alwayslink=1。
标记:action_command_linesaffects_outputsdeprecated
已累计 --linkopt=<a string> 次多次使用
在链接时传递给 gcc 的附加选项。
标记:action_command_linesaffects_outputs
已累计 --ltobackendopt=<a string> 次多次使用
用于传递给 LTO 后端步骤的附加选项(在 --features=thin_lto 下)。
标记:action_command_linesaffects_outputs
已累计 --ltoindexopt=<a string> 次多次使用
用于传递给 LTO 索引编制步骤的附加选项(在 --features=thin_lto 下)。
标记:action_command_linesaffects_outputs
已累计 --macos_cpus=<comma-separated list of options> 次多次使用
构建 Apple macOS 二进制文件的架构的列表(以英文逗号分隔)。
标记:loses_incremental_stateloading_and_analysis
--macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:参见说明
目标的最低兼容 macOS 版本。如果未指定,则使用“macos_sdk_version”。
标记: loses_incremental_state
--memprof_profile=<a build target label> 默认值:参见说明
使用 memprof 配置文件。
标记: affects_outputs
--[no]objc_debug_with_GLIBCXX 默认值:“false”
如果设置此参数,并且编译模式设为“dbg”,则定义 GLIBCXX_DEBUG、GLIBCXX_DEBUG_PEDANTIC 和 GLIBCPP_CONCEPT_CHECKS。
标记: action_command_lines
--[no]objc_enable_binary_stripping 默认值:“false”
是否对关联的二进制文件执行符号和死代码删除。如果同时指定了此标志和 --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 代表包含和排除正则表达式模式的列表(另请参阅 --Instrument_filter)。 option_1 到 option_n 代表任意命令行选项。如果选项包含英文逗号,则必须使用反斜杠加引号。选项可以包含 @。只有第一个 @ 用于拆分字符串。示例:--per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 向 //foo/ 中所有 cc 文件的 gcc 命令行(bar.cc 除外)添加 -O0 命令行选项。
标记: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 向 //foo/ 中所有 o 文件(bar.o 除外)的 LTO 后端命令行添加 -O0 命令行选项。
标记: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",) 可能需要向相应的软件包添加 Export_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> 默认值:“有时”
指定是否去除二进制文件和共享库(使用“-Wl,--strip-debug”)。“有时”的默认值表示会在 iff --compilation_mode=Fastbuild 执行删除操作。
标记: affects_outputs
已累计 --stripopt=<a string> 次多次使用
生成“<name>.stripped”二进制文件时要传递的其他选项。
标记:action_command_linesaffects_outputs
已累计 --swiftcopt=<a string> 次多次使用
传递给 Swift 编译的其他选项。
标记: action_command_lines
已累计 --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 输入的严格程度的选项(规则定义、标志组合等):
--auto_cpu_environment_group=<a build target label> 默认值:“”
声明用于自动将 CPU 值映射到 target_environment 值的 environment_group。
标记:changes_inputsloading_and_analysisexperimental
--[no]check_licenses 默认值:“false”
检查依赖软件包施加的许可限制是否与正在构建的目标的分发模式冲突。默认情况下,许可处于未选中状态。
标记: build_file_semantics
--[no]check_visibility 默认值:“true”
如果停用此设置,目标依赖项中的可见性错误会降级为警告。
标记: build_file_semantics
--[no]desugar_for_android 默认值:“true”
是否在 dex 处理之前对 Java 8 字节码进行脱糖。
标记:affects_outputsloading_and_analysisloses_incremental_state
--[no]desugar_java8_libs 默认值:“false”
是否在旧版设备的应用中包含受支持的 Java 8 库。
标记:affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]enforce_constraints 默认值:“true”
检查每个目标兼容的环境,如果任何目标的依赖项不支持相同环境,则报告错误
标记:build_file_semantics
--[no]experimental_check_desugar_deps 默认值:“true”
是否在 Android 二进制文件级别仔细检查是否正确脱糖。
标记:eagerness_to_exitloading_and_analysisexperimental
--experimental_import_deps_checking=<off, warning or error>的默认值:“关闭”
启用后,检查 aar_import 的依赖项是否完整。此强制执行可能会破坏构建,或可能导致警告。
标记: loading_and_analysis
--experimental_strict_java_deps=<off, warn, error, strict or default> 默认值:“默认”
如果为 true,则检查 Java 目标是否明确将所有直接使用的目标声明为依赖项。
标记:build_file_semanticseagerness_to_exit
--[no]incompatible_check_testonly_for_output_files 默认值:“false”
如果启用,则通过查找生成规则的 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]incompatible_validate_top_level_header_inclusions 默认值:“true”
如果为 true,则 Bazel 还将验证是否包含顶级目录标头(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/10047)。
标记:loading_and_analysisincompatible_change
--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,则还需要声明通过系统包含路径 (-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 签名的证书名称。如果未设置,则回退到预配配置文件。可能是证书的钥匙串身份偏好设置或证书通用名称的(子字符串),详情请参阅代码签名的手册页面(签名 IDENTITIES)。
标记: 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 实例,不会导致构建失败。
标记:loading_and_analysisexperimental
--analysis_testing_deps_limit=<an integer> 默认值:“2000”
通过具有 for_analysis_testing 配置转换的规则属性设置传递依赖项的数量上限。超过此限制将导致规则错误。
标记: loading_and_analysis
--[no]break_build_on_parallel_dex2oat_failure 默认值:“false”
如果 dex2oat 操作为 true,则会导致构建中断,而不会在测试运行时执行 dex2oat。
标记:loading_and_analysisexperimental
--[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。其中,running_per_test 表示整数值,而 regex_filter 表示包含和排除正则表达式模式的列表(另请参阅 --Instrumentation_filter)。示例:--runs_per_test=//foo/.*,-//foo/bar/.*@3 运行 //foo/ 中的所有测试(foo/bar 下的测试除外)三次。此选项可以多次传递。最新传递的匹配的参数优先。如果没有匹配项,则测试仅运行一次。
已累计 --test_env=<a 'name=value' assignment with an optional value part> 次多次使用
指定要注入到测试运行程序环境的其他环境变量。变量可以按名称指定(在这种情况下,变量的值将从 Bazel 客户端环境读取),或者名称=值对。此选项可以多次使用,以指定多个变量。仅供“bazel test”命令使用。
标记: test_runner
--test_timeout=<a single integer or comma-separated list of 4 integers> 默认值:“-1”
替换测试超时的默认测试超时值(以秒为单位)。如果指定了单个正整数值,该值将覆盖所有类别。如果指定了 4 个以英文逗号分隔的整数,这些值将会覆盖短、中、长和永久的超时(按此顺序)。无论采用哪种方式,值 -1 都会指示 Blaze 为该类别使用默认超时值。
--[no]zip_undeclared_test_outputs 默认值:“true”
如果为 true,则未声明的测试输出将归档为 zip 文件。
标记: test_runner
与查询输出和语义相关的选项:
--aspect_deps=<off, conservative or precise> 默认值:“保守型”
当输出格式为 {xml,proto,record} 之一时,如何解析切面依赖项。“off”表示不解析任何切面依赖项;“保守”(默认值)表示添加所有已声明的切面依赖项,无论它们是否获得了直接依赖项的规则类,“确切”表示仅添加在直接依赖项的规则类下可能处于活动状态的那些方面。请注意,精确模式需要加载其他软件包来评估单个目标,因此该模式比其他模式慢。另请注意,即使是精确模式也不是完全精确:是否计算某个方面的决定是在分析阶段决定的,而该阶段不会在“bazel 查询”期间运行。
标记: build_file_semantics
--[no]consistent_labels 默认值:“false”
启用后,每个查询命令都会发出标签,就像是通过应用于 <code>Label</code> 实例的 Starlark <code>str</code> 函数来发出。这对于需要匹配不同查询命令的输出和/或由规则发出的标签输出的工具非常有用。如果未启用,输出格式设置工具可以自由发出明显的代码库名称(相对于主代码库),以使输出更易于阅读。
标记: 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:no-op(始终遵循切面)。
标记: terminal_output
--[no]include_commandline 默认值:“true”
在输出中包含操作命令行的内容(可能较大)。
标记: terminal_output
--[no]include_file_write_contents 默认值:“false”
添加 FileWrite、SourceSymlinkManifest 和 RepoMappingManifest 操作的文件内容(可能较大)。
标记: terminal_output
--[no]include_param_files 默认值:“false”
添加命令中使用的参数文件的内容(可能较大)。注意:启用此标志后,系统将自动启用 --include_commandline 标志。
标记: terminal_output
--[no]incompatible_package_group_includes_double_slash 默认值:“true”
启用后,在输出 package_group 的“packages”属性时,前导“//”将不会省略。
标记:terminal_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”
输出查询结果时应采用的格式。允许的查询值包括:text、textproto、proto、streamed_proto、jsonproto。
标记: terminal_output
--[no]proto:default_values 默认值:“true”
如果为 true,则会包含未在 BUILD 文件中明确指定值的属性;否则,系统会省略这些属性。此选项适用于 --output=proto
标记:terminal_output
--[no]proto:definition_stack 默认值:“false”
填充 Definition_stack proto 字段,该字段会在定义规则的类时记录每个规则实例的 Starlark 调用堆栈。
标记: terminal_output
--[no]proto:flatten_selects 默认值:“true”
启用后, select() 创建的可配置属性将展平。对于列表类型,扁平化表示形式是一个列表,其中每个选定映射的值都正好包含一次。标量类型会展平为 null。
标记: build_file_semantics
--[no]proto:include_attribute_source_aspects 默认值:“false”
使用来源切面填充每个 Attribute 的 source_aspect_name proto 字段(如果未填写,则为空字符串)。
标记: terminal_output
--[no]proto:include_synthetic_attribute_hash 默认值:“false”
是否计算并填充 $internal_attr_hash 属性。
标记: terminal_output
--[no]proto:instantiation_stack 默认值:“false”
填充每条规则的实例化调用堆栈。请注意,该堆栈必须存在。
标记:terminal_output
--[no]proto:locations 默认值:“true”
是否在 proto 输出中输出位置信息。
标记: terminal_output
--proto:output_rule_attrs=<comma-separated list of options> 默认值:“all”
要在输出中包含的属性列表(以英文逗号分隔)。默认为所有属性。设置为空字符串,不输出任何属性。此选项适用于 --output=proto。
标记: terminal_output
--[no]proto:rule_inputs_and_outputs 默认值:“true”
是否填充 rule_input 和 rule_output 字段。
标记: terminal_output
--query_file=<a string> 默认值:“”
如果设置此参数,查询将从此处指定的文件中读取查询,而不是在命令行中读取。在此处指定文件以及命令行查询会出错。
标记: changes_inputs
--[no]relative_locations 默认值:“false”
如果为 true,则 xml 和 proto 输出中 BUILD 文件的位置将是相对位置。默认情况下,位置输出是绝对路径,不同机器之间会不一致。您可以将此选项设置为 true,以便在不同机器上获得一致的结果。
标记: terminal_output
--[no]skyframe_state 默认值:“false”
在不执行额外分析的情况下,从 Skyframe 中转储当前操作图表。注意:目前不支持使用 --skyframe_state 指定目标。此标志仅适用于 --output=proto 或 --output=textproto。
标记: terminal_output
--[no]tool_deps 默认值:“true”
查询:如果停用,对“exec configuration”的依赖关系将不会包含在执行查询的依赖关系图中。“exec configuration”依赖项边缘(例如从任何“proto_library”规则到协议编译器的依赖项)通常指向构建期间执行的工具,而不是同一“目标”程序的一部分。 Cquery:如果停用,则从发现了此已配置目标的顶级目标的执行转换中过滤掉所有已配置的目标。这意味着,如果顶级目标在目标配置中,则系统只会返回同样位于目标配置中的已配置目标。如果顶级目标位于 exec 配置中,则仅返回 exec 配置的目标。此选项不会排除已解析的工具链。
标记: build_file_semantics
--universe_scope=<comma-separated list of options> 默认值:“”
一组以英文逗号分隔的目标模式(加法和减法)。查询可以在由指定目标的传递闭包定义的宇宙中执行。此选项用于 query 和 cquery 命令。 对于 cquery,此选项的输入是构建所有答案的目标,因此此选项可能会影响配置和转换。如果未指定此选项,则假定顶级目标为从查询表达式解析的目标。注意:对于 cquery,如果无法使用顶级选项构建从查询表达式解析的目标,则不指定此选项可能会导致构建中断。
标记: loading_and_analysis
触发构建时间优化的选项:
--[no]experimental_filter_library_jar_with_program_jar 默认值:“false”
过滤 ProGuard ProgramJar,以移除 LibraryJar 中也存在的所有类。
标记: action_command_lines
--[no]experimental_inmemory_dotd_files 默认值:“true”
启用后,C++ .d 文件将直接从远程构建节点在内存中传递,而不是写入磁盘。
标记:loading_and_analysisexecutionaffects_outputsexperimental
--[no]experimental_inmemory_jdeps_files 默认值:“true”
启用后,通过 Java 编译生成的依赖项 (.jdeps) 文件将直接从远程构建节点在内存中传递,而不是写入磁盘。
标记:loading_and_analysisexecutionaffects_outputsexperimental
--[no]experimental_objc_include_scanning 默认值:“false”
是否针对目标 C/C++ 执行包含扫描。
标记:loading_and_analysisexecutionchanges_inputs
--[no]experimental_retain_test_configuration_across_testonly 默认值:“false”
启用后,--trim_test_configuration 不会修剪标记为 testonly=1 的规则的测试配置。这是为了减少非测试规则依赖于 cc_test 规则时出现的操作冲突问题。如果 --trim_test_configuration 为 false,则不会产生任何影响。
标记:loading_and_analysisloses_incremental_state
--[no]experimental_starlark_cc_import 默认值:“false”
启用后,便可使用 Starlark 版本的 cc_import。
标记:loading_and_analysisexperimental
--[no]experimental_unsupported_and_brittle_include_scanning 默认值:“false”
是否通过解析输入文件中的 #include 行来缩小 C/C++ 编译的输入范围。这可以通过减小编译输入树的大小来提高性能和增量。不过,这也可能会中断构建,因为包含扫描器未完全实现 C 预处理器语义。特别是,它不理解动态 #include 指令,并且会忽略预处理器的条件逻辑。使用所带来的风险由您自行承担。已提交的与此标记相关的任何问题都将关闭。
标记:loading_and_analysisexecutionchanges_inputs
--[no]incremental_dexing 默认值:“true”
为每个 Jar 文件分别执行 dex 处理的大部分工作。
标记:affects_outputsloading_and_analysisloses_incremental_state
--[no]objc_use_dotd_pruning 默认值:“true”
如果设置此参数,则 clang 发出的 .d 文件将用于剪除传入 objc 编译的一组输入。
标记:changes_inputsloading_and_analysis
--[no]process_headers_in_dependencies 默认值:“false”
构建目标 //a:a 时,//a:a 所依赖的所有目标中的进程标头(如果工具链启用了标头处理)。
标记: execution
--[no]trim_test_configuration 默认值:“true”
启用后,与测试相关的选项将在 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”
此标志可更改默认行为,因此在 Python 目标的 runfile 中不会再自动创建 __init__.py 文件。确切地说,当 py_binary 或 py_test 目标将 legacy_create_init 设置为“auto”(默认值)时,当且仅当设置了此标记时,它才会被视为 false。请参阅 https://github.com/bazelbuild/bazel/issues/10076。
标记:affects_outputsincompatible_change
--[no]incompatible_py2_outputs_are_suffixed 默认值:“true”
如果为 true,在 Python 2 配置中构建的目标将显示在包含后缀“-py2”的输出根目录下,而针对 Python 3 构建的目标将显示在没有与 Python 相关的后缀的根目录下。这意味着“bazel-bin”便捷符号链接将指向 Python 3 目标,而不是 Python 2。如果启用此选项,我们还建议您启用“--incompatible_py3_is_default”。
标记:affects_outputsincompatible_change
--[no]incompatible_py3_is_default 默认值:“true”
如果为 true,则未设置“python_version”(或“default_python_version”)属性的“py_binary”和“py_test”目标将默认为 PY3,而不是 PY2。如果您设置了此标志,还建议您设置“--incompatible_py2_outputs_are_suffixed”。
标记:loading_and_analysisaffects_outputsincompatible_change
--[no]incompatible_use_python_toolchains 默认值:“true”
如果设置为 true,可执行原生 Python 规则将使用 Python 工具链指定的 Python 运行时,而不是由 --python_top 等旧版标志指定的运行时。
标记:loading_and_analysisincompatible_change
--python_version=<PY2 or PY3> 默认值:参见说明
Python 主要版本模式:“PY2”或“PY3”。请注意,此设置已被“py_binary”和“py_test”目标替换(即使它们未明确指定版本),因此通常没有太多理由提供此标志。
标记:loading_and_analysisaffects_outputs
其他选项,未以其他方式分类:
--[no]cache_test_results [-t] 默认值:“自动”
如果设置为“auto”,则仅当满足以下条件时,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_analysis
--[no]experimental_fetch_all_coverage_outputs 默认值:“false”
如果为 true,则 Bazel 会在覆盖率运行期间为每个测试提取整个覆盖率数据目录。
标记:affects_outputsloading_and_analysis
--[no]experimental_generate_llvm_lcov 默认值:“false”
如果为 true,则针对 Clang 的覆盖率将生成 LCOV 报告。
标记:affects_outputsloading_and_analysis
--[no]experimental_j2objc_header_map 默认值:“true”
是否在 J2ObjC 转译的同时生成 J2ObjC 标头映射。
--[no]experimental_j2objc_shorter_header_path 默认值:“false”
是否使用较短的标头路径(使用“_ios”而不是“_j2objc”)生成。
标记: affects_outputs
--experimental_java_classpath=<off, javabuilder or bazel> 默认值:“javabuilder”
减少了 Java 编译的类路径。
--[no]experimental_limit_android_lint_to_android_constrained_java 默认值:“false”
将 --experimental_run_android_lint_on_java_rules 限制为与 Android 兼容的库。
标记: affects_outputs
--[no]experimental_run_android_lint_on_java_rules 默认值:“false”
是否验证 java_* 源代码。
标记: affects_outputs
--[no]explicit_java_test_deps 默认值:“false”
在 java_test 中明确指定 JUnit 或 Hamcrest 的依赖项,而不是意外从 TestRunner 的依赖项中获取。目前仅适用于 bazel。
--host_java_launcher=<a build target label> 默认值:参见说明
在构建期间执行的工具使用的 Java 启动器。
已累计 --host_javacopt=<a string> 次多次使用
构建在构建期间执行的工具时要传递给 javac 的其他选项。
已累计 --host_jvmopt=<a string> 次多次使用
构建在构建期间执行的工具时要传递给 Java 虚拟机的其他选项。这些选项将添加到每个 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”
直接从源代码编译 ijar。
--java_language_version=<a string> 默认值:“”
Java 语言版本
--java_launcher=<a build target label> 默认值:参见说明
构建 Java 二进制文件时使用的 Java 启动器。如果此标志设置为空字符串,系统会使用 JDK 启动器。“launcher”属性会替换此标志。
--java_runtime_version=<a string> 默认值:“local_jdk”
Java 运行时版本
已累计 --javacopt=<a string> 次多次使用
需要传递给 javac 的其他选项。
已累计 --jvmopt=<a string> 次多次使用
要传递给 Java 虚拟机的其他选项。这些选项将添加到每个 java_binary 目标的虚拟机启动选项中。
--legacy_main_dex_list_generator=<a build target label> 默认值:参见说明
指定用于生成在编译旧版 MultiDex 时必须位于主 dex 中的类列表的二进制文件。
--optimizing_dexer=<a build target label> 默认值:参见说明
指定在不进行分片的情况下用于执行 dex 处理的二进制文件。
已累计 --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
--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_SH 环境变量是在首次调用(启动 Bazel 服务器)时设置的,则 Bazel 会使用该变量。如果二者均未设置,则 Bazel 会根据运行的操作系统(Windows:c:/tools/msys64/usr/bin/bash.exe、FreeBSD:/usr/local/bin/bash;所有其他路径:/bin/bash)使用硬编码的默认路径。请注意,使用与 bash 不兼容的 shell 可能会导致生成的二进制文件构建失败或运行时失败。
标记: 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> 默认值:“露骨内容”
指定测试分片策略:“显式”,以便仅在存在“hard_count”BUILD 属性时才使用分片。“已停用”表示永不使用测试分片。“forced=k”会强制执行“k”分片用于测试,而不考虑“fragment_count”build 属性。
--tool_java_language_version=<a string> 默认值:“”
用于执行构建期间所需工具的 Java 语言版本
--tool_java_runtime_version=<a string> 默认值:“remotejdk_11”
用于在构建期间执行工具的 Java 运行时版本
--[no]use_ijars 默认值:“true”
启用后,此选项会导致 Java 编译使用接口 JAR。这样可以加快增量编译的速度,但错误消息可能会有所不同。

构建选项

出现在命令之前并由客户端解析的选项:
已累计 --distdir=<a path> 次多次使用
在访问网络下载归档文件之前,可在其他位置搜索归档文件。
标记: bazel_internal_configuration
如果设置此参数,当缓存命中时,代码库缓存将对文件进行硬链接,而不是进行复制。这是为了节省磁盘空间。
标记: bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 默认值:“0”
下载错误重试次数上限。如果设置为 0,系统会停用重试。
标记: experimental
--experimental_scale_timeouts=<a double> 默认值:“1.0”
按此系数扩缩 Starlark 代码库规则中的所有超时。通过这种方式,无需更改源代码,即可让外部代码库在速度低于规则作者预期的机器上运行。
标记:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 默认值:“8”
http 下载的尝试次数上限。
标记: bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 默认值:“0s”
http 下载重试的超时上限。如果值为 0,则未定义超时上限。
标记: bazel_internal_configuration
--http_timeout_scaling=<a double> 默认值:“1.0”
根据给定系数调整与 http 下载相关的所有超时时间
标记:bazel_internal_configuration
--repository_cache=<a path> 默认值:参见说明
指定在提取外部代码库期间获取的已下载值的缓存位置。使用空字符串作为参数会请求停用缓存,否则会使用默认值“<output_user_root>/cache/repos/v1”。
标记:bazel_internal_configuration
--[no]repository_disable_download 默认值:“false”
如果已设置此参数,则在代码库提取过程中,不允许使用 ctx.download{,_and_Extract} 进行下载。请注意,网络访问并非完全停用; ctx.execute 仍可以运行访问互联网的任意可执行文件。
标记: bazel_internal_configuration
用于控制构建执行的选项:
--[no]check_up_to_date 默认值:“false”
请勿执行构建,只需检查它是否为最新版本即可。如果所有目标均为最新,则构建成功完成。如果需要执行任何步骤,则系统会报告错误,并且构建会失败。
标记: execution
--dynamic_local_execution_delay=<an integer> 默认值:“1000”
如果远程执行速度在构建期间至少一次,本地执行应该延迟多少毫秒?
标记:executionhost_machine_resource_optimizations
已累计 --dynamic_local_strategy=<a '[name=]value1[,..,valueN]' assignment> 次多次使用
为指定助记符使用的本地策略 - 使用第一个适用的策略。例如,“worker,sandboxed”操作会运行一些操作,这些操作使用工作器策略支持持久性工作器,而所有其他操作则使用沙盒化策略。如果未指定助记符,系统会将策略列表用作所有助记符的后备选项。默认后备列表为“worker,sandboxed”或“worker,sandboxed,standalone”(如果设置了“experimental_local_lockfree_output”)。采用 [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 中尚未包含容器映像属性,则应该使用该名称来执行沙盒化操作。此标志的值会逐字传递给“docker run”,因此它支持与 Docker 本身相同的语法和机制。
标记: execution
--[no]experimental_docker_use_customized_images 默认值:“true”
启用后,系统会在使用 Docker 映像前,将当前用户的 uid 和 gid 注入到 Docker 映像中。如果您的构建 / 测试依赖于用户在容器内拥有名称和主目录,则必须执行此操作。此功能默认处于开启状态,但如果自动图片自定义功能不适用于您的情况,或者您知道自己不需要该功能,则可以将其停用。
标记: 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,则当等待调度的操作数量较多时,系统会使用负载系数来减少本地安排的操作数量。在干净构建的情况下,这可以减轻本地机器的负载,在干净 build 中,本地机器贡献不大。
标记:executionhost_machine_resource_optimizations
--experimental_dynamic_slow_remote_time=<An immutable length of time.> 默认值:“0”
如果大于 0,表示动态运行操作必须仅在远程运行之后才优先执行其本地执行,以避免远程超时。这样可以隐藏远程执行系统上的一些问题。请勿在未监控远程执行问题的情况下开启此功能。
标记:executionhost_machine_resource_optimizations
--[no]experimental_enable_docker_sandbox 默认值:“false”
启用基于 Docker 的沙盒。如果未安装 Docker,则此选项无效。
标记: execution
--experimental_sandbox_async_tree_delete_idle_threads=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5"> 默认值:“4”
如果为 0,请在操作完成后立即删除沙盒树(这会导致操作完成延迟)。如果大于零,则在异步线程池(在构建运行时大小为 1)上删除这 3 个线程池,并在服务器空闲时大小增加到此标志指定的大小。
标记:host_machine_resource_optimizationsexecution
--experimental_sandbox_memory_limit_mb=<an integer number of MBs, or "HOST_RAM", optionally followed by [-|*]<float>.> 默认值:“0”
如果大于 0,则每个 Linux 沙盒的内存量都会受到限制(以 MB 为单位)。需要 cgroups v1 或 v2 以及用户对 cgroups 目录的权限。
标记: execution
--[no]experimental_shrink_worker_pool 默认值:“false”
启用后,可以在工作器内存压力较高时缩减工作器池。此标记仅在启用 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,则不装载 root,仅装载通过 sandbox_add_mount_pair 提供的内容。输入文件将硬链接到沙盒,而不是从沙盒进行符号链接。如果操作输入文件与沙盒位于不同的文件系统,系统会改为复制输入文件。
标记: execution
--[no]experimental_use_semaphore_for_jobs 默认值:“false”
如果设置为 true,则会额外使用信号量来限制并发作业的数量。
标记:host_machine_resource_optimizationsexecution
--[no]experimental_use_windows_sandbox 默认值:“false”
使用 Windows 沙盒来执行操作。如果为“yes”,则 --experimental_windows_sandbox_path 提供的二进制文件必须有效,并且与支持的 sandboxfs 版本相对应。如果设为“auto”,则二进制文件可能缺失或不兼容。
标记: execution
--experimental_windows_sandbox_path=<a string> 默认值:“BazelSandbox.exe”
当 --experimental_use_windows_sandbox 为 true 时要使用的 Windows 沙盒二进制文件的路径。如果为裸名称,请使用在 PATH 中找到的该名称的第一个二进制文件。
标记: execution
--experimental_worker_allowlist=<comma-separated set of options> 默认值:参见说明
如果不为空,则仅允许使用具有给定工作器键助记符的永久性磁盘。
标记:executionhost_machine_resource_optimizations
--[no]experimental_worker_as_resource 默认值:“true”
无操作,很快就会被移除。
标记: no_op
--[no]experimental_worker_cancellation 默认值:“false”
启用后,Bazel 可能会向支持它们的工作器发送取消请求。
标记: execution
--experimental_worker_memory_limit_mb=<an integer number of MBs, or "HOST_RAM", optionally followed by [-|*]<float>.> 默认值:“0”
如果此限制大于零,则当工作器的内存用量超过限制时,工作器可能会被终止。如果不与动态执行和“--experimental_dynamic_ignore_local_signals=9”结合使用,可能会导致 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
--[no]experimental_worker_strict_flagfiles 默认值:“false”
启用后,不符合工作器规范的工作器操作参数将导致错误。工作器参数必须正好有一个 @flagfile 参数作为其参数列表的最后一个参数。
标记: execution
--gc_thrashing_threshold=<an integer in 0-100 range> 默认值:“100”
占用的空间百分比 (0-100),超过此值时,GcThrashingDetector 会将内存压力事件视为相对于其限值 (--gc_thrashing_limits)。如果设置为 100,则会停用 GcThrashingDetector。
标记: host_machine_resource_optimizations
--genrule_strategy=<comma-separated list of options> 默认值:“”
指定如何执行 Genrule。此标志将逐步被淘汰。请改用 --spawn_strategy=<value> 控制所有操作,或使用 --strategy=Genrule=<value> 仅控制 Genrule。
标记: execution
已累计 --high_priority_workers=<a string> 次多次使用
无操作,很快就会被移除。
标记: execution
如果设置为 true 且 --incompatible_remote_symlinks 也为 true,则操作输出中的符号链接可以挂起。
标记:executionincompatible_change
如果设置为 true,Bazel 将在相应远程缓存/执行协议的操作输出中呈现符号链接。否则,符号链接将得到追踪,并表示为文件或目录。如需了解详情,请参阅 #6631。
标记:executionincompatible_change
--[no]incompatible_sandbox_hermetic_tmp 默认值:“true”
如果设置为 true,则每个 Linux 沙盒都会有自己的专用空目录作为 /tmp 装载,而不是与主机文件系统共享 /tmp。使用 --sandbox_add_mount_pair=/tmp,始终在所有沙盒中看到主机的 /tmp。
标记: execution
--[no]internal_spawn_scheduler 默认值:“false”
占位符选项,以便我们在 Blaze 中判断是否启用了衍生调度程序。
标记:executionhost_machine_resource_optimizations
--jobs=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5"> [-j] 默认值:“自动”
要运行的并发作业数量。接受整数或关键字(“auto”“HOST_CPUS”“HOST_RAM”),可以选择后跟运算符 ([-|*]<float>),例如:"auto", "HOST_CPUS*.5"。值必须介于 1 到 5000 之间。高于 2500 的值可能会导致内存问题。“auto”根据主机资源计算合理的默认值。
标记:host_machine_resource_optimizationsexecution
--[no]keep_going [-k] 默认值:“false”
出错后应尽量多继续操作。虽然无法分析失败的目标以及依赖于该目标的目标,但这些目标的其他前提条件可以。
标记: eagerness_to_exit
--loading_phase_threads=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5"> 默认值:“auto”
用于加载/分析阶段的并行线程数。接受整数或关键字(“auto”“HOST_CPUS”“HOST_RAM”),可以选择后跟操作指令 ([-|*]<float>),例如:"auto", "HOST_CPUS*.5"。“auto”根据主机资源设置合理的默认值。必须至少为 1。
标记: bazel_internal_configuration
--[no]reuse_sandbox_directories 默认值:“true”
如果设置为 true,则可以重复使用沙盒化非 worker 执行所用的目录,以避免不必要的设置开销。
标记:host_machine_resource_optimizationsexecution
--sandbox_base=<a string> 默认值:“”
让沙盒在此路径下创建其沙盒目录。如果您的构建 /测试包含许多输入文件,请在 tmpfs 上指定一个路径(例如/run / shm),以便大幅提升性能。注意:tmpfs 上需要有足够的 RAM 和可用空间来存放运行操作生成的输出和中间文件。
标记:host_machine_resource_optimizationsexecution
--[no]sandbox_explicit_pseudoterminal 默认值:“false”
明确允许为沙盒化操作创建伪终端。某些 Linux 发行版要求在沙盒内将进程的组 ID 设置为“tty”,伪终端才能正常运行。如果这会导致问题,可以停用此标记,以便使用其他组。
标记: execution
已累计 --sandbox_tmpfs_path=<an absolute path> 次多次使用
对于沙盒化操作,请在此绝对路径(如果沙盒实现支持,否则请忽略)处装载一个可写空目录。
标记:host_machine_resource_optimizationsexecution
--[no]skip_incompatible_explicit_targets 默认值:“false”
跳过命令行中明确列出的不兼容目标。默认情况下,构建此类目标会导致错误,但启用此选项后,系统会静默跳过这些目标。请参阅:https://bazel.build/extending/platforms#skipping-incompatible-targets
标记: loading_and_analysis
--spawn_strategy=<comma-separated list of options> 默认值:“”
指定默认如何执行生成操作。接受优先级从高到低的逗号分隔策略列表。对于每项操作,Bazel 会选择优先级最高的可以执行操作的策略。默认值为“remote,worker,sandboxed,local”。如需了解详情,请参阅 https://blog.bazel.build/2019/06/19/list-strategy.html。
标记: execution
已累计 --strategy=<a '[name=]value1[,..,valueN]' assignment> 次多次使用
指定如何分发其他生成操作的编译。接受优先级从高到低的逗号分隔策略列表。对于每项操作,Bazel 会选择优先级最高的可以执行操作的策略。默认值为“remote,worker,sandboxed,local”。此标志将覆盖 --spawn_strategy 设置的值(如果与助记式 Genrule 一起使用,则还包括 --genrule_strategy 设置的值)。如需了解详情,请参阅 https://blog.bazel.build/2019/06/19/list-strategy.html。
标记: execution
已累计 --strategy_regexp=<a '<RegexFilter>=value[,value]' assignment> 次多次使用
替换应使用哪种生成策略来执行说明与特定 regex_filter 匹配的生成操作。如需详细了解 regex_filter 匹配,请参阅 --per_file_copt。系统会使用与说明匹配的最后一个 regex_filter。此选项会覆盖用于指定策略的其他标志。示例:--strategy_regexp=//foo.*\.cc,-//foo/bar=local 表示如果操作的说明与 //foo.*.cc 而非 //foo/bar 匹配,则使用本地策略运行操作。示例:--strategy_regexp='Compiling.*/bar=local --strategy_regexp=Compiling=sandboxed 通过“local”策略运行“Compiling //foo/bar/baz”,但颠倒顺序会使用“sandboxed”运行
标记: execution
已累计 --worker_extra_flag=<a 'name=value' assignment> 次多次使用
除了 --persistent_worker 之外,还将传递给工作器进程的额外命令标志,由助记符进行键控(例如 --worker_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"> 次多次使用
使用“工作器”策略时,可能会启动每种永久性工作器的实例数。可指定为 [name=value] ,以便为每个助记符提供不同的值。该限制基于工作器键(根据助记符号、启动标记和环境加以区分),因此在某些情况下,每个助记符的工作器数量可能会超过此标记所指定的数量。接受整数或关键字(“auto”“HOST_CPUS”“HOST_RAM”),可以选择后跟运算符 ([-|*]<float>),例如:"auto", "HOST_CPUS*.5"。“auto”根据机器容量计算合理的默认值。“=value”将为未指定的助记符设置默认值。
标记:executionhost_machine_resource_optimizations
已累计 --worker_max_multiplex_instances=<[name=]value, where value is an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5"> 次多次使用
如果将“worker”策略与 --worker_multiplex 搭配使用,多路复用工作器进程可能会并行接收多少个 WorkRequest。可指定为 [name=value] ,以便为每个助记符提供不同的值。该限制基于工作器键(根据助记符号、启动标记和环境加以区分),因此在某些情况下,每个助记符的工作器数量可能会超过此标记所指定的数量。接受整数或关键字(“auto”“HOST_CPUS”“HOST_RAM”),可以选择后跟运算符 ([-|*]<float>),例如:"auto", "HOST_CPUS*.5"。“auto”根据机器容量计算合理的默认值。“=value”将为未指定的助记符设置默认值。
标记:executionhost_machine_resource_optimizations
--[no]worker_multiplex 默认值:“true”
启用后,如果工作器支持多路复用功能,则工作器将使用多路复用功能。
标记:executionhost_machine_resource_optimizations
--[no]worker_quit_after_build 默认值:“false”
如果启用,所有工作器将在构建完成后退出。
标记:executionhost_machine_resource_optimizations
--[no]worker_sandboxing 默认值:“false”
启用后,工作器将在沙盒环境中执行。
标记: execution
--[no]worker_verbose 默认值:“false”
启用后,系统会在工作器启动、关闭...时输出详细消息
用于配置用于执行操作的工具链的选项:
--target_platform_fallback=<a string> 默认值:“”
此选项已被弃用,无效。
标记:affects_outputschanges_inputsloading_and_analysis
用于控制命令输出的选项:
--[no]build 默认值:“true”
执行构建;这是常见行为。指定 --nobuild 会导致构建在执行构建操作之前停止,并且在软件包加载和分析阶段成功完成时返回零;此模式对测试这些阶段很有用。
标记:executionaffects_outputs
--[no]experimental_use_validation_aspect 默认值:“false”
是否使用切面运行验证操作(用于与测试并行执行)。
标记:executionaffects_outputs
已累计 --output_groups=<comma-separated list of options> 次多次使用
一系列以英文逗号分隔的输出组名称,每个名称(可以选择)以 + 或 - 为前缀。系统会将以 + 为前缀的组添加到默认的输出组集中,而以 - 为前缀的组将从默认输出组中移除。如果至少有一个组不带前缀,则系统会忽略一组默认的输出组。例如,--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
一些选项可让用户配置预期输出,从而影响预期输出的值,而非影响其值:
已累计 --aspects=<comma-separated list of options> 次多次使用
要应用于顶级目标的切面列表(以英文逗号分隔)。在列表中,如果方面 some_aspect 通过 required_aspect_providers 指定所需的切面提供程序,则 some_aspect 将在切面列表中之前提到的每个方面运行,并且所通告的提供程序满足 some_aspect 必需的切面提供程序。此外,some_aspect 将在 require 属性指定的所有必需切面后运行。然后,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 中的 safetySymlinksIdentified 条目将为空。
标记: 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},分别扩展为该对象的哈希值和大小(以字节为单位)。例如,这些符号链接可能指向按需加载来自 CAS 对象的 FUSE 文件系统。
标记: affects_outputs
--remote_download_toplevel
仅将顶级目标的远程输出下载到本地机器。此标志是 --remote_download_outputs=toplevel。
扩展为:
  --remote_download_outputs=toplevel

标签: affects_outputs
在构建后创建的任何便捷符号链接的前缀。如果省略,则默认值为 Build Tools 的名称,后跟连字符。如果传递“/”,则不会创建符号链接,也不会发出警告。警告:“/”的特殊功能即将弃用;请改用 --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,则是空操作。否则,如果此标志为 false,则没有明确可见性属性的任何 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]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 下的测试除外)三次稳定下来。此选项可以多次传递。最新传递的匹配的参数优先。如果没有匹配项,则行为就像上面的“default”一样。
标记: execution
--local_test_jobs=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5"> 默认值:“auto”
要并发运行的本地测试作业数上限。接受整数或关键字(“auto”“HOST_CPUS”“HOST_RAM”),可以选择后跟运算符 ([-|*]<float>),例如:"auto", "HOST_CPUS*.5"。0 表示本地资源将限制并发运行的本地测试作业数量。将此值设置为大于 --jobs 的值是无效的。
标记: execution
--[no]test_keep_going 默认值:“true”
停用后,任何未通过的测试都会导致整个构建停止。默认情况下,系统会运行所有测试,即使有些测试未能通过也是如此。
标记: execution
--test_strategy=<a string> 默认值:“”
指定在运行测试时要使用的策略。
标记: execution
--test_tmpdir=<a path> 默认值:参见说明
指定供“bazel test”使用的基本临时目录。
与查询输出和语义相关的选项:
--[no]experimental_parallel_aquery_output 默认值:“true”
空操作。
与 Bzlmod 输出和语义相关的选项:
已累计 --allow_yanked_versions=<a string> 次多次使用
以“<module1>@<version1>,<module2>@<version2>”的形式指定模块版本,即使这些版本在来源的注册表中进行了声明(如果它们并非来自 NonRegistryOverride),也允许出现在已解析的依赖关系图中。否则,拉取版本会导致解析失败。您还可以使用“BZLMOD_ALLOW_YANKED_VERSIONS”环境变量定义允许的拖动版本。您可以使用关键字“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> 默认值:“警告”
检查根模块中声明的直接“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 or error> 默认值:“update”
指定如何以及是否使用锁定文件。有效值包括,值为“update”以使用锁文件并在有更改时更新锁文件;值为“error”使用锁文件,但如果锁文件不是最新文件,则抛出错误;值为“off”既不对锁文件执行读取或写入操作,也抛出错误。
标记: loading_and_analysis
已累计 --override_module=<an equals-separated mapping of module name to path> 次多次使用
使用 <模块名称>=<路径> 形式的本地路径替换模块。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出
已累计 --registry=<a string> 次多次使用
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在之前的注册表中查找模块,只有在之前的注册表中缺失模块时,才会回退到后续注册表。
标记: changes_inputs
触发构建时间优化的选项:
--experimental_dynamic_ignore_local_signals=<a comma-separated list of signal numbers> 默认值:参见说明
获取操作系统信号编号列表。如果动态执行的本地分支因这些信号之一被终止,则系统将允许远程分支完成。对于持久性工作器,这仅影响终止工作器进程的信号。
标记: execution
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 默认值:“1s:2,20s:3,1m:5”
限制,如果达到这些限制,则会导致 GcThrashingDetector 导致 Bazel 崩溃并出现 OOM。每个限制以 <period>:<count> 形式指定,其中 period 是时长,计数是正整数。如果在 <period> 内连续 <count> 次完整 GC 后仍被占用的到期空间(旧代堆)百分比超过 --gc_thrashing_threshold%,则会触发 OOM。可以用英文逗号分隔指定多个限制。
标记: host_machine_resource_optimizations
--local_cpu_resources=<an integer, or "HOST_CPUS", optionally followed by [-|*]<float>.> 默认值:“HOST_CPUS”
明确设置可供 Bazel 用于在本地执行的构建操作的本地 CPU 核心总数。取一个整数或“HOST_CPUS”,可以选择后跟 [-|*]<float>(例如HOST_CPUS*.5 表示使用一半可用的 CPU 核心)。默认情况下,("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% 的 RAM 容量。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过 --skyframe_high_water_mark_threshold 设置的阈值,则当发生完整 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示完整 GC 事件永远不会触发丢弃操作。达到此上限后,当发生完整 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过由 --skyframe_high_water_mark_threshold 设置的阈值,当发生次要 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示次要 GC 事件永远不会触发丢弃操作。达到此上限后,当发生次要 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 默认值:“85”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量不低于此阈值,则会丢弃不必要的临时 Skyframe 状态。当 GC 抖动 (i) 是由此临时状态的内存使用引起的且 (ii) 在需要时比重构状态的成本更高时,即可降低 GC 抖动对实际使用时间的影响。
标记: host_machine_resource_optimizations
影响日志记录的详细程度、格式或位置的选项:
--[no]debug_spawn_scheduler 默认值:“false”
--[no]experimental_bep_target_summary 默认值:“false”
是否发布 TargetSummary 事件。
--[no]experimental_build_event_expand_filesets 默认值:“false”
如果为 true,则在展示输出文件时展开 BEP 中的文件集。
标记: affects_outputs
如果为 true,则在显示输出文件时完全解析 BEP 中的相对 Fileset 符号链接。需要 --experimental_build_event_expand_filesets。
标记: affects_outputs
--experimental_build_event_upload_max_retries=<an integer> 默认值:“4”
Bazel 应重新尝试上传构建事件的次数上限。
标记: bazel_internal_configuration
--experimental_build_event_upload_retry_minimum_delay=<An immutable length of time.> 默认值:“1s”
BEP 上传失败时指数退避算法重试的初始最短延迟时间。(指数:1.6)
标记: bazel_internal_configuration
--experimental_build_event_upload_strategy=<a string> 默认值:参见说明
选择如何上传 build 事件协议中引用的工件。
标记: affects_outputs
--[no]experimental_collect_local_sandbox_action_metrics 默认值:“true”
废弃了空操作。
标记: execution
--[no]experimental_command_profile 默认值:“false”
将 Java 飞行记录器 CPU 配置文件记录到输出基本目录中的 profile.jfr 文件中。此标志的语法和语义将来可能会更改,以支持不同的配置文件类型或输出格式;使用时需自行承担风险。
--[no]experimental_docker_verbose 默认值:“false”
启用后,Bazel 将输出有关 Docker 沙盒策略的更详细消息。
标记: execution
--[no]experimental_materialize_param_files_directly 默认值:“false”
如需具体化参数文件,请直接写入磁盘。
标记: execution
--[no]experimental_record_metrics_for_all_mnemonics 默认值:“false”
默认情况下,已执行操作数量最多的 20 种助记符不得超过操作类型的数量。设置此选项后,系统会写入所有助记符的统计信息。
--experimental_repository_resolved_file=<a string> 默认值:“”
如果为非空,则写入一个 Starlark 值,其中包含已执行的所有 Starlark 代码库规则的解析信息。
标记: affects_outputs
--[no]experimental_run_bep_event_include_residue 默认值:“false”
是否在运行的 build 事件中包含可能包含该残留的命令行。默认情况下,可能含有该残留的运行命令构建事件中不包含该残留。
标记: affects_outputs
--[no]experimental_stream_log_file_uploads 默认值:“false”
将日志文件上传直接流式传输到远程存储空间,而不是将其写入磁盘。
标记: affects_outputs
--explain=<a path> 默认值:参见说明
使构建系统解释构建的每个已执行步骤。说明将写入指定的日志文件。
标记: affects_outputs
--[no]ignore_unsupported_sandboxing 默认值:“false”
此系统不支持沙盒化执行时,不输出警告。
标记: terminal_output
--[no]legacy_important_outputs 默认值:“true”
使用此选项可禁止在 TargetComplete 事件中生成旧版 important_outputs 字段。Bazel 到 ResultStore 集成需要用到 gaming_outputs 字段。
标记: affects_outputs
--[no]materialize_param_files 默认值:“false”
即使在使用远程操作执行时,也会将中间参数文件写入输出树。在调试操作时很有用。这是 --subcommands 和 --verbose_failures 隐含的。
标记: execution
--max_config_changes_to_show=<an integer> 默认值:“3”
如果由于构建选项的变化而舍弃分析缓存,则最多可显示指定数量的已更改选项名称。如果给定的数字是 -1,系统会显示所有已更改的选项。
标记: terminal_output
--max_test_output_bytes=<an integer> 默认值:“-1”
指定当 --test_output 为“errors”或“all”时可以发出的每个测试日志的最大大小。有助于避免测试输出过于嘈杂的输出不堪重负。测试标头包含在日志大小中。负值表示无限制。输出为全部或零。
标记:test_runnerterminal_outputexecution
--output_filter=<a valid Java regular expression> 默认值:参见说明
仅显示名称与提供的正则表达式匹配的规则的警告和操作输出。
标记: affects_outputs
--progress_report_interval=<an integer in 0-3600 range> 默认值:“0”
针对仍在运行的作业发送报告之间等待的秒数。默认值 0 表示将在 10 秒后输出第一份报告,然后在 30 秒后输出第一份报告,之后每分钟报告一次进度。启用 --curses 后,系统会每秒报告一次进度。
标记: affects_outputs
--remote_print_execution_messages=<failure, success or all> 默认值:“failure”
选择何时输出远程执行消息。有效值为“failure”,表示仅在失败时输出,值为“success”时仅在成功时输出,值为“all”时,一律输出。
标记: terminal_output
--[no]sandbox_debug 默认值:“false”
启用沙盒功能的调试功能。这包括两点:首先,沙盒根内容在构建后保持不变;其次,在执行时输出额外的调试信息。这有助于 Bazel 或 Starlark 规则开发者调试因缺少输入文件等导致的失败问题。
标记: terminal_output
--show_result=<an integer> 默认值:“1”
显示构建结果。对于每个目标,请说明其是否处于最新状态;如果是,则提供已构建的输出文件列表。输出的文件是方便复制/粘贴到 shell 以执行它们的字符串。此选项需要一个整数参数,即目标的阈值数量,超过此值时,系统不会输出结果信息。因此,0 会抑制消息,MAX_INT 则会导致始终输出结果。默认值为 1。 如果没有为目标构建任何内容,则可以省略其结果,以使输出保持在阈值以下。
标记: affects_outputs
--[no]subcommands [-s] 默认值:“false”
显示构建期间执行的子命令。相关标志:--execution_log_json_file、--execution_log_binary_file(用于以适合工具的格式将子命令记录到文件中)。
标记: terminal_output
--test_output=<summary, errors, all or streamed> 默认值:“summary”
指定所需的输出模式。有效值包括:“summary”用于仅输出测试状态摘要,“errors”用于输出失败测试的测试日志;“all”用于输出所有测试的日志,“streamed”用于实时输出所有测试的日志(这会强制每次在本地执行一个测试,无论 --test_strategy 值如何)。
标记:test_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
--experimental_resolved_file_instead_of_workspace=<a string> 默认值:“”
如果非空文件会读取指定的已解析文件,而不是 WORKSPACE 文件
标记: changes_inputs
--target_pattern_file=<a string> 默认值:“”
如果设置此参数,build 将从此处指定的文件(而不是命令行)读取模式。在此处指定文件以及命令行格式会出错。
标记: changes_inputs
远程缓存和执行选项:
--experimental_circuit_breaker_strategy=<failure> 默认值:参见说明
指定断路器要使用的策略。可用的策略为“失败”。当选项的值无效时,与未设置该选项的行为相同。
标记: execution
--experimental_downloader_config=<a string> 默认值:参见说明
指定要用于配置远程下载程序的文件。此文件由多个行组成,其中每个行以指令(“allow”“block”或“rewrite”)开头,后跟主机名(分别用于“allow”和“block”)或两种格式,一种用于匹配,另一种用作替换网址,反向引用从“$1”开始。可以针对同一个网址提供多个“rewrite”指令,在这种情况下,系统会返回多个网址。
--[no]experimental_guard_against_concurrent_changes 默认值:“false”
关闭此设置即可禁止在将操作上传到远程缓存之前检查其输入文件的 ctime。在某些情况下,Linux 内核会延迟写入文件,从而导致误报。
--[no]experimental_remote_cache_async 默认值:“false”
如果为 true,远程缓存 I/O 将在后台进行,而不是在生成过程中执行。
--experimental_remote_cache_eviction_retries=<an integer> 默认值:“0”
构建遇到远程缓存逐出错误时重试的最大次数。非零值会将 --incompatible_remote_use_new_exit_code_for_lost_inputs 隐式设置为 true。每次尝试时,系统都会生成一个新的调用 ID。如果您生成调用 ID 并使用 --invocation_id 将其提供给 Bazel,则不应使用此标志。而应设置 标志 --incompatible_remote_use_new_exit_code_for_lost_inputs 并检查是否有退出代码 39。
标记: execution
--[no]experimental_remote_cache_lease_extension 默认值:“false”
如果设置为 true,Bazel 会定期向远程缓存发送“FindMissingBlobs”调用,从而延长构建期间远程操作输出的租期。该频率取决于“--experimental_remote_cache_ttl”的值。
--experimental_remote_cache_ttl=<An immutable length of time.> 默认值:“3h”
在远程缓存中最近引用的摘要(例如通过 ActionResult 或 FindMissingBlobs)引用了远程缓存中的 blob 后,保证的最小 TTL。Bazel 会根据 blob 的 TTL 进行多项优化,例如,不会在增量构建中重复调用 GetActionResult。该值应设置为略小于实际 TTL,因为服务器返回摘要与 Bazel 接收摘要的时间之间存在时间差。
标记: execution
--experimental_remote_capture_corrupted_outputs=<a path> 默认值:参见说明
将捕获损坏输出的目录的路径。
--[no]experimental_remote_discard_merkle_trees 默认值:“false”
如果设置为 true,则会在调用 GetActionResult() 和 Execute() 期间舍弃输入根的 Merkle 树和关联输入映射的内存中副本。这会显著减少内存用量,但需要 Bazel 在远程缓存未命中和重试时重新计算这些副本。
--experimental_remote_downloader=<a string> 默认值:参见说明
要用作远程下载代理的 Remote Asset API 端点 URI。支持的架构包括 grpc、grpcs(已启用 TLS 的 grpc)和 unix(本地 UNIX 套接字)。如果未提供架构,Bazel 将默认使用 grpcs。请参阅:https://github.com/bazelbuild/remote-apis/blob/master/build/bazel/remote/asset/v1/remote_asset.proto
--[no]experimental_remote_downloader_local_fallback 默认值:“false”
如果远程下载程序失败,是否回退到本地下载程序。
--[no]experimental_remote_execution_keepalive 默认值:“false”
是否对远程执行调用使用 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.> 默认值:“60s”
计算远程请求的失败率的时间间隔。使用零值或负值时,计算失败的整个执行时长。可以使用以下单位:天 (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,则缓存大小不受限制。最佳值因项目规模而异。默认值为 1,000。
--[no]experimental_remote_require_cached 默认值:“false”
如果设置为 true,则强制缓存所有可以远程运行的操作,否则让构建失败。这对于排查非确定性问题非常有用,因为它可以检查本应缓存的操作是否实际已缓存,而不会错误地将新结果注入缓存。
--experimental_remote_scrubbing_config=<Converts to a Scrubber> 默认值:参见说明
使用提供的配置文件启用远程缓存键清理,该文件必须是文本格式的 ScrubbingConfig 协议缓冲区。 此功能旨在方便在不同平台上执行但定位到同一平台的操作之间共享远程/磁盘缓存。使用时应格外小心,因为设置不当可能会导致意外共享缓存条目,并导致构建错误。 清理不会影响操作的执行方式,而只会影响其远程/磁盘缓存键的计算方式,以检索或存储操作结果。它不能与远程执行结合使用。修改清理配置不会使本地文件系统或内部缓存中存在的输出失效;必须进行干净的 build 才能重新执行受影响的操作。 为了成功使用此功能,您可能需要同时设置自定义 --host_platform 与 --experimental_platform_in_output_dir(用于将输出前缀标准化)和 --incompatible_Strict_action_env(用于将环境变量标准化)。
--experimental_worker_for_repo_fetching=<off, platform or virtual> 默认值:“关闭”
用于代码库提取的线程模式。如果设置为“off”,则不使用任何工作线程,并且 Repo 提取功能可能会重启。否则,如果设置为“platform”,则使用平台线程(即操作系统线程),如果设置为“virtual”,则使用虚拟线程。
--[no]incompatible_remote_build_event_upload_respect_no_cache 默认值:“false”
已弃用。无运维。请改用 --remote_build_event_upload=minimal。
--[no]incompatible_remote_downloader_send_all_headers 默认值:“true”
是否将一个多值标头的所有值(而不仅仅是第一个值)发送到远程下载程序。
标记: incompatible_change
--[no]incompatible_remote_output_paths_relative_to_input_root 默认值:“false”
如果设置为 true,则输出路径将相对于输入根目录而不是工作目录。
标记: incompatible_change
--[no]incompatible_remote_results_ignore_disk 默认值:“true”
空操作
标记: incompatible_change
--[no]incompatible_remote_use_new_exit_code_for_lost_inputs 默认值:“true”
如果设置为 true,那么如果远程缓存在构建期间逐出 blob,则 Bazel 将使用新的退出代码 39(而不是 34)。
标记: incompatible_change
--[no]remote_accept_cached 默认值:“true”
是否接受远程缓存的操作结果。
--remote_build_event_upload=<all or minimal> 默认值:“minimal”
如果设置为“all”,则 BEP 引用的所有本地输出都将上传到远程缓存。如果设置为“minimal”,则 BEP 引用的本地输出不会上传到远程缓存,但对 BEP 使用者很重要的文件(例如测试日志和时间配置文件)除外。即使远程缓存中缺少 bytestream:// 方案,也不会始终使用 bytestream:// 方案。 默认为“minimal”。
--remote_bytestream_uri_prefix=<a string> 默认值:参见说明
要在写入 build 事件流的 bytestream:// URI 中使用的主机名和实例名称。在使用代理执行构建时可以设置此选项,这会导致 --remote_executor 和 --remote_instance_name 的值不再与远程执行服务的规范名称相对应。如果未设置,则默认为“${hostname}/${instance_name}”。
--remote_cache=<a string> 默认值:参见说明
缓存端点的 URI。支持的架构包括 http、https、grpc、grpcs(启用了 TLS 的 grpc)和 unix(本地 UNIX 套接字)。如果未提供架构,Bazel 将默认使用 grpcs。指定 grpc://、http:// 或 unix: 架构以停用 TLS。请参阅 https://bazel.build/remote/caching
--[no]remote_cache_compression 默认值:“false”
启用后,使用 zstd 压缩/解压缩缓存 blob。
已累计 --remote_cache_header=<a 'name=value' assignment> 次多次使用
指定要包含在缓存请求中的标头:--remote_cache_header=Name=Value。可以通过多次指定标志来传递多个标头。系统会将具有相同名称的多个值转换为以逗号分隔的列表。
已累计 --remote_default_exec_properties=<a 'name=value' assignment> 次多次使用
如果执行平台尚未设置 exec_properties,请设置要用作远程执行平台的默认 exec 属性。
标记: affects_outputs
--remote_default_platform_properties=<a string> 默认值:“”
如果执行平台尚未设置 remote_execution_properties,请设置要为远程执行 API 设置的默认平台属性。如果主机平台被选作远程执行的执行平台,则也将使用此值。
已累计 --remote_download_regex=<a string> 次多次使用
强制 Bazel 下载与指定正则表达式匹配的工件。与不带 Bytes(或内部等效项)的 Build 结合使用,以允许客户端请求本地可能需要的某些工件(例如 IDE 支持)。可以通过重复使用此标记来指定多个正则表达式。
标记: 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.> 默认值:“60s”
等待远程执行和缓存调用的最长时间。对于 REST 缓存,这是指连接和读取超时。可以使用的单位包括:天 (d)、小时 (h)、分钟 (m)、秒 (s) 和毫秒 (ms)。如果省略单位,则值将解释为秒。
--[no]remote_upload_local_results 默认值:“true”
是否应将本地执行的操作结果上传到远程缓存(如果远程缓存支持此操作并且用户已获得执行此操作的授权)。
--[no]remote_verify_downloads 默认值:“true”
如果设置为 true,Bazel 会计算所有远程下载的哈希总和,如果远程缓存的值与预期值不匹配,则会舍弃这些值。
其他选项,未以其他方式分类:
--[no]allow_analysis_cache_discard 默认值:“true”
如果由于构建系统的变化而舍弃分析缓存,则将此选项设置为 false 会导致 bazel 退出,而不会继续进行构建。如果同时设置了“discard_analysis_cache”,此选项不起作用。
标记: eagerness_to_exit
--auto_output_filter=<none, all, packages or subpackages> 默认值:“无”
如果未指定 --output_filter,则此选项的值会自动创建过滤器。允许的值包括“none”(不过滤 / 显示所有内容)、“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> 默认值:“”
指定以逗号分隔的标记列表。您可以选择在每个代码前面加上“-”,以指定排除的代码。系统只会构建包含至少 1 个已包含标记且不包含任何已排除的标记的目标。此选项不会影响使用“test”命令执行的这组测试;这些测试受测试过滤选项(例如“--test_tag_filters”)的约束
--[no]build_tests_only 默认值:“false”
如果指定,则仅构建 *_test 和 test_suite 规则,并忽略在命令行中指定的其他目标。默认情况下,系统将构建请求的所有内容。
--combined_report=<none or lcov> 默认值:“无”
指定所需的累计覆盖率报告类型。目前仅支持 LCOV。
--[no]compile_one_dependency 默认值:“false”
编译参数文件的单个依赖项。这对于在 IDE 中检查源文件非常有用,例如,通过重新构建依赖于源文件的单个目标,在编辑/构建/测试周期中尽早检测到错误。此参数会影响所有非 flag 参数的解释方式;它们不是构建目标,而是源文件名。对于每个源文件名,系统将构建一个依赖于该文件名的任意目标。
已累计 --deleted_packages=<comma-separated list of package names> 次多次使用
以英文逗号分隔的软件包名称列表,构建系统将其视为不存在的软件包名称,即使它们在软件包路径上的某个位置可见。 当删除现有软件包“x”的子软件包“x/y”时,使用此选项。例如,删除客户端中的 x/y/BUILD 后,如果构建系统遇到“//x:y/z”标签(如果其他 package_path 条目仍然提供该标签),则可能会收到提示。指定 --deleted_packages x/y 可避免此问题。
--[no]discard_analysis_cache 默认值:“false”
在分析阶段完成后立即舍弃分析缓存。使内存使用量减少约 10%,但进一步减慢增量构建的速度。
--disk_cache=<a path> 默认值:参见说明
Bazel 可以在其中读取和写入操作及操作输出的目录路径。如果目录不存在,系统将会创建该目录。
--embed_label=<a one-line string> 默认值:“”
在二进制文件中嵌入源代码控制修订版本或版本标签
--execution_log_binary_file=<a path> 默认值:参见说明
根据 src/main/protobuf/spawn.proto,将执行的生成作业作为分隔的 Spawn proto 记录到此文件中。相关标志:--execution_log_json_file(文本 JSON 格式;互斥)、--execution_log_sort(是否对执行日志进行排序)、--subcommands(用于在终端输出中显示子命令)。
--execution_log_json_file=<a path> 默认值:参见说明
根据 src/main/protobuf/spawn.proto,将执行的生成作业作为分隔的 Spawn proto 的 JSON 表示法记录到此文件中。相关标志:--execution_log_binary_file(二进制 protobuf 格式;互斥)、--execution_log_sort(是否对执行日志进行排序)、--subcommands(用于在终端输出中显示子命令)。
--[no]execution_log_sort 默认值:“true”
是否对执行日志进行排序,以便更轻松地比较不同调用的日志。设置为 false 以避免在调用结束时可能大量占用 CPU 和内存,代价是会以不确定的执行顺序生成日志。
--[no]expand_test_suites 默认值:“true”
先将 test_suite 目标扩展到其组成部分测试,然后再进行分析。当此标志启用(默认设置)时,排除性目标模式将应用于属于测试套件的测试,否则不会。在命令行中应用顶级切面时,关闭此标记非常有用:这样一来,它们就可以分析 test_suite 目标。
标记: loading_and_analysis
--experimental_extra_action_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths> 默认值:“”
已弃用,取而代之的是切面。过滤要调度 extra_action 的一组目标。
--[no]experimental_extra_action_top_level_only 默认值:“false”
已弃用,取而代之的是切面。仅为顶级目标安排 extra_actions。
--experimental_spawn_scheduler
通过在本地和远程并行运行操作,实现动态执行。Bazel 会在本地和远程生成每项操作,并选取最先完成的操作。如果某个操作支持 worker,则本地操作将在永久性 worker 模式下运行。如需为单个操作助记符启用动态执行,请改用“--internal_spawn_scheduler”和“--strategy=<mnemonic>=dynamic”标志。
扩展为:
  --internal_spawn_scheduler
  --spawn_strategy=dynamic
--[no]incompatible_dont_use_javasourceinfoprovider 默认值:“false”
空操作
标记: incompatible_change
--local_termination_grace_seconds=<an integer> 默认值:“15”
从因超时终止本地进程到强制关闭本地进程之间等待的时间。
已累计 --override_repository=<an equals-separated mapping of repository name to path> 次多次使用
使用 <repo name>=<path> 形式的本地路径替换代码库。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出
--package_path=<colon-separated list of options> 默认值:“%workspace%”
以英文冒号分隔的列表,用于列出查找软件包的位置。以“%workspace%”开头的元素相对于封闭工作区。如果省略或为空,则默认值为“bazel info default-package-path”的输出。
--[no]show_loading_progress 默认值:“true”
如果启用,会导致 Bazel 输出“正在加载软件包:”消息。
--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> 默认值:“”
指定以逗号分隔的测试尺寸列表。您可以选择在每个尺寸前面加上“-”,以指定排除的尺寸。系统只能找到至少包含 1 个已包含尺寸且不包含任何已排除尺寸的测试目标。此选项会影响 --build_tests_only 行为和测试命令。
--test_tag_filters=<comma-separated list of options> 默认值:“”
指定以逗号分隔的测试标记列表。您可以选择在每个代码前面加上“-”,以指定排除的代码。系统只能找到包含至少 1 个已包含标记且不包含任何已排除的标记的测试目标。此选项会影响 --build_tests_only 行为和测试命令。
--test_timeout_filters=<comma-separated list of values: short, moderate, long or eternal> 默认值:“”
指定以逗号分隔的测试超时列表。您可以选择性地在每个超时前面加上“-”,以指定排除的超时。系统只能找到包含至少一个包含的超时和不包含任何已排除的超时的测试目标。此选项会影响 --build_tests_only 行为和测试命令。
--workspace_status_command=<path> 默认值:“”
在构建开始时调用的命令,以键值对的形式提供工作区的状态信息。有关完整规范,请参阅用户手册。有关示例,另请参阅 tools/buildstamp/get_workspace_status。
用于控制构建执行的选项:
--[no]check_up_to_date 默认值:“false”
请勿执行构建,只需检查它是否为最新版本即可。如果所有目标均为最新,则构建成功完成。如果需要执行任何步骤,则系统会报告错误,并且构建会失败。
标记: execution
是否通过直接文件系统调用来创建符号链接树
标记:loading_and_analysisexecutionexperimental
--[no]experimental_persistent_aar_extractor 默认值:“false”
使用工作器启用永久性 aar 提取器。
标记: execution
--[no]experimental_remotable_source_manifests 默认值:“false”
是否将源清单操作设为可远程执行
标记:loading_and_analysisexecutionexperimental
--[no]experimental_split_coverage_postprocessing 默认值:“false”
如果为 true,则 Bazel 会在新生成中运行覆盖率后处理以进行测试。
标记: execution
--[no]experimental_split_xml_generation 默认值:“true”
如果已设置此标志,并且测试操作不会生成 test.xml 文件,则 Bazel 会使用单独的操作来生成包含测试日志的虚拟 test.xml 文件。否则,Bazel 会在测试操作过程中生成 test.xml。
标记: execution
--[no]experimental_strict_fileset_output 默认值:“false”
如果启用此选项,文件集会将所有输出工件视为常规文件。它们不会遍历目录,也不会对符号链接敏感。
标记: execution
--[no]experimental_use_semaphore_for_jobs 默认值:“false”
如果设置为 true,则会额外使用信号量来限制并发作业的数量。
标记:host_machine_resource_optimizationsexecution
--genrule_strategy=<comma-separated list of options> 默认值:“”
指定如何执行 Genrule。此标志将逐步被淘汰。请改用 --spawn_strategy=<value> 控制所有操作,或使用 --strategy=Genrule=<value> 仅控制 Genrule。
标记: execution
--jobs=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5"> [-j] 默认值:“自动”
要运行的并发作业数量。接受整数或关键字(“auto”“HOST_CPUS”“HOST_RAM”),可以选择后跟运算符 ([-|*]<float>),例如:"auto", "HOST_CPUS*.5"。值必须介于 1 到 5000 之间。高于 2500 的值可能会导致内存问题。“auto”根据主机资源计算合理的默认值。
标记:host_machine_resource_optimizationsexecution
--[no]keep_going [-k] 默认值:“false”
出错后应尽量多继续操作。虽然无法分析失败的目标以及依赖于该目标的目标,但这些目标的其他前提条件可以。
标记: eagerness_to_exit
--loading_phase_threads=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5"> 默认值:“auto”
用于加载/分析阶段的并行线程数。接受整数或关键字(“auto”“HOST_CPUS”“HOST_RAM”),可以选择后跟操作指令 ([-|*]<float>),例如:"auto", "HOST_CPUS*.5"。“auto”根据主机资源设置合理的默认值。必须至少为 1。
标记: bazel_internal_configuration
--modify_execution_info=<regex=[+-]key,regex=[+-]key,...> 默认值:“”
根据操作助记符,在操作的执行信息中添加或移除键。仅适用于支持执行信息的操作。许多常用操作都支持执行信息,例如 Genrule、CppCompile、Javac、StarlarkAction、TestRunner。在指定多个值时,顺序很重要,因为多个正则表达式可能适用于同一助记符。 语法:“regex=[+-]key,regex=[+-]key,...”。 示例:'.*=+x,.*=-y,.*=+z' 在所有操作的执行信息中分别添加“x”和“z”,以及从中移除“y”。“Genrule=+Require-x”会在所有 Genrule 操作的执行信息中添加“Needs-x”。“(?!Genrule).*=- requires-x”会从所有非 Genrule 操作的执行信息中移除“Needs-x”。
标记:executionaffects_outputsloading_and_analysis
--persistent_android_dex_desugar
使用 worker 实现永久性 Android dex 和脱糖操作。
扩展为:
  --internal_persistent_android_dex_desugar
  --strategy=Desugar=worker
  --strategy=DexBuilder=worker

标记:host_machine_resource_optimizationsexecution
--persistent_android_resource_processor
使用工作器启用永久性 Android 资源处理器。
扩展为:
--internal_persistent_busybox_tools
--strategy=AaptPackage=worker
--strategy=AndroidResourceParser=worker
--strategy=AndroidResourceValidator=worker
--strategy=AndroidResourceCompiler=worker
--strategy=RClassGenerator=worker
--strategy=AndroidResourceLink=worker
--strategy=AndroidAapt2=worker
--strategy=AndroidAssetMerger=worker
--strategy=AndroidResourceMerger=worker
--strategy=AndroidCompiledResourceMerger=worker
--strategy=ManifestMerger=worker
--strategy=AndroidManifestMerger=worker
--strategy=ManifestMerger=worker
--strategy=AndroidManifestMerger=worker
--strategy=Aapt2Optimize=worker
--strategy=Aapt2Optimize=worker
--strategy=Aapt2Optimize=worker
--strategy=Aapt2Optimize=worker
--strategy=AARGenerator=worker--strategy=ProcessDatabinding=worker--strategy=GenerateDataBindingBaseClasses=workerhost_machine_resource_optimizationsexecution
--persistent_multiplex_android_dex_desugar
使用 worker 启用永久性多路复用 Android dex 和脱糖操作。
扩展为:
  --persistent_android_dex_desugar
  --internal_persistent_multiplex_android_dex_desugar

标记:host_machine_resource_optimizationsexecution
--persistent_multiplex_android_resource_processor
使用工作器启用永久性多路复用 Android 资源处理器。
扩展为:
--persistent_android_resource_processor
--modify_execution_info=AaptPackage=+supports-multiplex-workers
--modify_execution_info=AndroidResourceParser=+supports-multiplex-workers
--modify_execution_info=AndroidResourceValidator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceCompiler=+supports-multiplex-workers
--modify_execution_info=RClassGenerator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceLink=+supports-multiplex-workers
--modify_execution_info=AndroidAapt2=+supports-multiplex-workers
--modify_execution_info=AndroidAssetMerger=+supports-multiplex-workers
--modify_execution_info=AndroidResourceMerger=+supports-multiplex-workers
--modify_execution_info=AndroidCompiledResourceMerger=+supports-multiplex-workers
--modify_execution_info=ManifestMerger=+supports-multiplex-workers
--modify_execution_info=AndroidManifestMerger=+supports-multiplex-workers
//--modify_execution_info=Aapt2Optimize=+supports-multiplex-workers
--modify_execution_info=Aapt2Optimize=+supports-multiplex-workers
--modify_execution_info=Aapt2Optimize=+supports-multiplex-workers
--modify_execution_info=AARGenerator=+supports-multiplex-workershost_machine_resource_optimizationsexecution
--persistent_multiplex_android_tools
启用永久性和多路复用 Android 工具(dexing、脱糖、资源处理)。
扩展为:
  --internal_persistent_multiplex_busybox_tools
  --persistent_multiplex_android_resource_processor
  --persistent_multiplex_android_dex_desugar

标记:host_machine_resource_optimizationsexecution
--[no]skip_incompatible_explicit_targets 默认值:“false”
跳过命令行中明确列出的不兼容目标。默认情况下,构建此类目标会导致错误,但启用此选项后,系统会静默跳过这些目标。请参阅:https://bazel.build/extending/platforms#skipping-incompatible-targets
标记: loading_and_analysis
--spawn_strategy=<comma-separated list of options> 默认值:“”
指定默认如何执行生成操作。接受优先级从高到低的逗号分隔策略列表。对于每项操作,Bazel 会选择优先级最高的可以执行操作的策略。默认值为“remote,worker,sandboxed,local”。如需了解详情,请参阅 https://blog.bazel.build/2019/06/19/list-strategy.html。
标记: execution
已累计 --strategy=<a '[name=]value1[,..,valueN]' assignment> 次多次使用
指定如何分发其他生成操作的编译。接受优先级从高到低的逗号分隔策略列表。对于每项操作,Bazel 会选择优先级最高的可以执行操作的策略。默认值为“remote,worker,sandboxed,local”。此标志将覆盖 --spawn_strategy 设置的值(如果与助记式 Genrule 一起使用,则还包括 --genrule_strategy 设置的值)。如需了解详情,请参阅 https://blog.bazel.build/2019/06/19/list-strategy.html。
标记: execution
已累计 --strategy_regexp=<a '<RegexFilter>=value[,value]' assignment> 次多次使用
替换应使用哪种生成策略来执行说明与特定 regex_filter 匹配的生成操作。如需详细了解 regex_filter 匹配,请参阅 --per_file_copt。系统会使用与说明匹配的最后一个 regex_filter。此选项会覆盖用于指定策略的其他标志。示例:--strategy_regexp=//foo.*\.cc,-//foo/bar=local 表示如果操作的说明与 //foo.*.cc 而非 //foo/bar 匹配,则使用本地策略运行操作。示例:--strategy_regexp='Compiling.*/bar=local --strategy_regexp=Compiling=sandboxed 通过“local”策略运行“Compiling //foo/bar/baz”,但颠倒顺序会使用“sandboxed”运行
标记: execution
--[no]use_target_platform_for_tests 默认值:“false”
如果为 true,则 Bazel 将使用目标平台(而不是测试执行组)来运行测试。
标记: execution
用于配置用于执行操作的工具链的选项:
--android_compiler=<a string> 默认值:参见说明
Android 目标编译器。
标记:affects_outputsloading_and_analysisloses_incremental_state
--android_crosstool_top=<a build target label> 默认值:“//external:android/crosstool”
用于 Android build 的 C++ 编译器的位置。
标记:affects_outputschanges_inputsloading_and_analysisloses_incremental_state
--android_grte_top=<a label> 默认值:参见说明
Android 目标 grte_top。
标记:changes_inputsloading_and_analysisloses_incremental_state
--android_manifest_merger=<legacy, android or force_android> 默认值:“android”
选择要用于 android_binary 规则的清单合并程序。用于帮助从旧版合并程序过渡到 Android 清单合并程序的标志。
标记:affects_outputsloading_and_analysisloses_incremental_state
--android_platforms=<a build target label> 默认值:“”
设置 android_binary 目标使用的平台。如果指定了多个平台,则二进制文件是胖 APK,其中包含每个指定目标平台的原生二进制文件。
标记:changes_inputsloading_and_analysisloses_incremental_state
--android_sdk=<a build target label> 默认值:“@bazel_tools//tools/android:sdk”
指定用于构建 Android 应用的 Android SDK/平台。
标记:changes_inputsloading_and_analysisloses_incremental_state
--apple_crosstool_top=<a build target label> 默认值:“@bazel_tools//tools/cpp:toolchain”
要在 Apple 和 Objc 规则及其依赖项中使用的 crosstool 软件包的标签。
标记:loses_incremental_statechanges_inputs
--cc_output_directory_tag=<a string> 默认值:“”
指定要添加到配置目录的后缀。
标记: affects_outputs
--compiler=<a string> 默认值:参见说明
用于编译目标的 C++ 编译器。
标记:loading_and_analysisexecution
--coverage_output_generator=<a build target label> 默认值:“@bazel_tools//tools/test:lcov_merger”
用于对原始覆盖率报告进行后处理的二进制文件的位置。目前必须是包含单个文件(即二进制文件)的文件组。默认为“//tools/test:lcov_merger”。
标记:changes_inputsaffects_outputsloading_and_analysis
--coverage_report_generator=<a build target label> 默认值:“@bazel_tools//tools/test:coverage_report_generator”
用于生成覆盖率报告的二进制文件的位置。目前必须是包含单个文件(即二进制文件)的文件组。默认值为“//tools/test:coverage_report_generator”。
标记:changes_inputsaffects_outputsloading_and_analysis
--coverage_support=<a build target label> 默认值:“@bazel_tools//tools/test:coverage_support”
为收集代码覆盖率的测试操作输入所需的支持文件的位置。默认为“//tools/test:coverage_support”。
标记:changes_inputsaffects_outputsloading_and_analysis
--crosstool_top=<a build target label> 默认值:“@bazel_tools//tools/cpp:toolchain”
用于编译 C++ 代码的 crosstool 软件包标签。
标记:loading_and_analysischanges_inputsaffects_outputs
--custom_malloc=<a build target label> 默认值:参见说明
指定自定义 malloc 实现。此设置将替换构建规则中的 malloc 属性。
标记:changes_inputsaffects_outputs
已累计 --experimental_add_exec_constraints_to_targets=<a '<RegexFilter>=<label1>[,<label2>,...]' assignment> 次多次使用
以英文逗号分隔的正则表达式列表,其中每个表达式都可以以 -(否定表达式)为前缀,赋值 (=) 以逗号分隔的限制条件值目标列表。如果目标不与任何否定表达式匹配,并且至少有一个正表达式匹配,则系统将执行其工具链解析,就像它已将约束值声明为执行约束条件一样。示例://demo,-test=@platforms//cpus:x86_64 会将“x86_64”添加到 //demo 下的任何目标(名称中包含“test”的目标除外)。
标记: loading_and_analysis
--[no]experimental_include_xcode_execution_requirements 默认值:“false”
如果设置此参数,请为每个 Xcode 操作添加“require-xcode:{version}”的执行要求。如果 Xcode 版本带有带连字符的标签,请同时添加“require-xcode-label:{version_label}”的执行要求。
标记:loses_incremental_stateloading_and_analysisexecution
--[no]experimental_prefer_mutual_xcode 默认值:“true”
如果为 true,请使用可在本地和远程获取的最新 Xcode。如果为 false,或没有相互可用的版本,请使用通过 xcode-select 选择的本地 Xcode 版本。
标记: loses_incremental_state
--extra_execution_platforms=<comma-separated list of options> 默认值:“”
可用作运行操作的执行平台的平台。平台可以按确切目标指定,也可以指定为目标模式。系统会优先考虑这些平台,然后再考虑由 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> 默认值:参见说明
用于主机编译的 C++ 编译器。如果未设置 --host_crosstool_top 则被忽略。
标记:loading_and_analysisexecution
--host_crosstool_top=<a build target label> 默认值:参见说明
默认情况下,--crosstool_top 和 --compiler 选项也会用于 exec 配置。如果提供此标志,Bazel 会针对指定的 crosstool_top 使用默认 libc 和编译器。
标记:loading_and_analysischanges_inputsaffects_outputs
--host_grte_top=<a label> 默认值:参见说明
如果指定,此设置将替换 exec 配置的 libc 顶级目录 (--grte_top)。
标记:action_command_linesaffects_outputs
--host_platform=<a build target label> 默认值:“@local_config_platform//:host”
描述主机系统的平台规则标签。
标记:affects_outputschanges_inputsloading_and_analysis
--[no]incompatible_dont_enable_host_nonhost_crosstool_features 默认值:“true”
如果为 true,则 Bazel 不会在 C++ 工具链中启用“host”和“nonhost”功能(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7407)。
标记:loading_and_analysisincompatible_change
--[no]incompatible_enable_android_toolchain_resolution 默认值:“true”
使用工具链分辨率选择 Android SDK for Android 规则(Starlark 和原生)
标记:loading_and_analysisincompatible_change
--[no]incompatible_enable_apple_toolchain_resolution 默认值:“false”
使用工具链解析方法选择 Apple SDK for Apple 规则(Starlark 和原生)
标记:loading_and_analysisincompatible_change
--[no]incompatible_make_thinlto_command_lines_standalone 默认值:“true”
如果为 true,则 Bazel 不会将 C++ 链接操作命令行重复用于 lto 索引命令行(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/6791)。
标记: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_require_ctx_in_configure_features 默认值:“true”
如果为 true,则 Bazel 将需要在 cc_common.configure_features 中请求“ctx”参数(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7793)。
标记:loading_and_analysisincompatible_change
--[no]interface_shared_objects 默认值:“true”
如果工具链支持,请使用接口共享对象。目前,所有 ELF 工具链都支持此设置。
标记:loading_and_analysisaffects_outputsaffects_outputs
--ios_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:参见说明
指定用于构建 iOS 应用的 iOS SDK 版本。如果未指定,则使用“xcode_version”中的默认 iOS SDK 版本。
标记: loses_incremental_state
--macos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:参见说明
指定用于构建 macOS 应用的 macOS SDK 版本。如果未指定,则使用“xcode_version”中的默认 macOS SDK 版本。
标记: loses_incremental_state
--minimum_os_version=<a string> 默认值:参见说明
编译针对的最低操作系统版本。
标记:loading_and_analysisaffects_outputs
--platform_mappings=<a relative path> 默认值:“”
映射文件的位置,用于说明在未设置任何平台时应使用哪个平台,或在某个平台已存在时要设置哪些标志。必须相对于主工作区根目录。默认为“platform_mappings”(位于工作区根目录正下方的文件)。
标记:affects_outputschanges_inputsloading_and_analysis
--platforms=<a build target label> 默认值:“”
用于描述当前命令的目标平台的平台规则标签。
标记:affects_outputschanges_inputsloading_and_analysis
--python2_path=<a string> 默认值:参见说明
已弃用,无操作。已被“--incompatible_use_python_toolchains”停用。
标记:no_opdeprecated
--python3_path=<a string> 默认值:参见说明
已弃用,无操作。已被“--incompatible_use_python_toolchains”停用。
标记:no_opdeprecated
--python_path=<a string> 默认值:参见说明
为在目标平台上运行 Python 目标而调用的 Python 解释器的绝对路径。已废弃;已被 --incompatible_use_python_toolchains 停用。
标记:loading_and_analysisaffects_outputs
--python_top=<a build target label> 默认值:参见说明
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 用于相关构建操作。如果未指定,则使用 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
--[no]build 默认值:“true”
执行构建;这是常见行为。指定 --nobuild 会导致构建在执行构建操作之前停止,并且在软件包加载和分析阶段成功完成时返回零;此模式对测试这些阶段很有用。
标记:executionaffects_outputs
如果为 true,则为所有目标构建 runfiles 符号链接林。如果为 false,则仅在本地操作、测试或运行命令要求时写入这些变量。
标记: affects_outputs
--[no]build_runfile_manifests 默认值:“true”
如果为 true,则为所有目标写入 runfiles 清单。如果为 false,请忽略它们。如果设置为 false,本地测试将无法运行。
标记: affects_outputs
--[no]build_test_dwp 默认值:“false”
启用后,如果以静态方式构建 C++ 测试并在切割时构建,系统也会自动构建测试二进制文件的 .dwp 文件。
标记:loading_and_analysisaffects_outputs
--cc_proto_library_header_suffixes=<comma-separated set of options> 默认值:“.pb.h”
设置 cc_proto_library 创建的头文件的后缀。
标记:affects_outputsloading_and_analysis
--cc_proto_library_source_suffixes=<comma-separated set of options> 默认值:“.pb.cc”
设置 cc_proto_library 创建的源文件的后缀。
标记:affects_outputsloading_and_analysis
--[no]experimental_proto_descriptor_sets_include_source_info 默认值:“false”
为 proto_library 中的备用 Java API 版本运行额外操作。
标记:affects_outputsloading_and_analysisexperimental
--[no]experimental_proto_extra_actions 默认值:“false”
为 proto_library 中的备用 Java API 版本运行额外操作。
标记:affects_outputsloading_and_analysisexperimental
--[no]experimental_save_feature_state 默认值:“false”
将启用和已请求功能的状态保存为编译的输出。
标记:affects_outputsexperimental
--[no]experimental_use_validation_aspect 默认值:“false”
是否使用切面运行验证操作(用于与测试并行执行)。
标记:executionaffects_outputs
--fission=<a set of compilation modes> 默认值:“no”
指定哪些编译模式会为 C++ 编译和链接使用裂变。可以是 {'Fastbuild', 'dbg', 'opt'} 的任意组合,或者是特殊值“yes”来启用所有模式,或是用“no”来停用所有模式。
标记:loading_and_analysisaction_command_linesaffects_outputs
--[no]incompatible_always_include_files_in_data 默认值:“true”
如果为 true,原生规则会将数据依赖项的 <code>DefaultInfo.files</code> 添加到其 runfile 中,这与 Starlark 规则的建议行为 (https://bazel.build/extending/rules#runfiles_features_to_avoid) 一致。
标记:affects_outputsincompatible_change
--[no]legacy_external_runfiles 默认值:“true”
如果为 true,则在 .runfiles/wsname/external/repo(以及 .runfiles/repo)下为外部代码库构建 runfiles 符号链接林。
标记: affects_outputs
--[no]objc_generate_linkmap 默认值:“false”
指定是否生成链接映射文件。
标记: affects_outputs
已累计 --output_groups=<comma-separated list of options> 次多次使用
一系列以英文逗号分隔的输出组名称,每个名称(可以选择)以 + 或 - 为前缀。系统会将以 + 为前缀的组添加到默认的输出组集中,而以 - 为前缀的组将从默认输出组中移除。如果至少有一个组不带前缀,则系统会忽略一组默认的输出组。例如,--output_groups=+foo,+bar 会构建默认集、foo 和 bar 的并集,而 --output_groups=foo,bar 会覆盖默认集,以便仅构建 foo 和 bar。
标记:executionaffects_outputs
--[no]run_validations 默认值:“true”
是否在 build 过程中运行验证操作。请参阅 https://bazel.build/extending/rules#validation_actions
标记:executionaffects_outputs
--[no]save_temps 默认值:“false”
如果设置此参数,系统会保存 gcc 的临时输出。其中包括 .s 文件(编译器代码)、.i 文件(经过预处理的 C)和 .ii 文件(经过预处理的 C++)。
标记: affects_outputs
可让用户配置预期输出(影响预期输出值,而非影响其值)的选项:
已累计 --action_env=<a 'name=value' assignment with an optional value part> 次多次使用
指定可用于具有目标配置的操作的一组环境变量。变量可以按名称指定(在这种情况下值将从调用环境获取),或者由名称=值对(其值独立于调用环境设置值)指定。此选项可以多次使用;对于为同一变量指定的选项,最后胜出的选项将累积,不同变量的选项会累积。
标记: action_command_lines
--android_cpu=<a string> 默认值:“armeabi-v7a”
Android 目标 CPU。
标记:affects_outputsloading_and_analysisloses_incremental_state
--[no]android_databinding_use_androidx 默认值:“true”
生成与 AndroidX 兼容的数据绑定文件。这仅适用于数据绑定 v2。此标志是空操作。
标记:affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]android_databinding_use_v3_4_args 默认值:“true”
将 Android 数据绑定 v2 与 3.4.0 参数搭配使用。此标志是空操作。
标记:affects_outputsloading_and_analysisloses_incremental_stateexperimental
--android_dynamic_mode=<off, default or fully> 默认值:“关闭”
确定在 cc_binary 未明确创建共享库时,是否动态地链接 Android 规则的 C++ 依赖项。“default”表示 bazel 将选择是否动态进行关联。“full”表示所有库都将动态链接。“off”表示在基本上静态模式下所有库的链接。
标记:affects_outputsloading_and_analysis
--android_manifest_merger_order=<alphabetical, alphabetical_by_configuration or dependency> 默认值:“字母”
设置传递给 Android 二进制文件清单合并程序的清单的顺序。ALPHABETIVE 表示清单按相对于 execroot 的路径进行排序。ALPHABETIVE_BY_CONFIGURATION 表示清单按输出目录中配置目录的相关路径排序。DEPENDENCY 表示清单是排序的,每个库的清单排在其依赖项清单之前。
标记:action_command_linesexecution
--[no]android_resource_shrinking 默认值:“false”
为使用 ProGuard 的 android_binary APK 启用资源缩减。
标记:affects_outputsloading_and_analysis
已累计 --aspects=<comma-separated list of options> 次多次使用
要应用于顶级目标的切面列表(以英文逗号分隔)。在列表中,如果方面 some_aspect 通过 required_aspect_providers 指定所需的切面提供程序,则 some_aspect 将在切面列表中之前提到的每个方面运行,并且所通告的提供程序满足 some_aspect 必需的切面提供程序。此外,some_aspect 将在 require 属性指定的所有必需切面后运行。然后,some_aspect 将可以访问这些切面的提供程序的值。<bzl-file-label>%<aspect_name>,例如“//tools:my_def.bzl%my_aspect”,其中“my_aspect”是文件 tools/my_def.bzl 中的顶级值
--[no]build_python_zip 默认值:“auto”
构建 Python 可执行 zip 文件;在 Windows 上,在其他平台上关闭
标记: affects_outputs
已累计 --catalyst_cpus=<comma-separated list of options> 次多次使用
用于构建 Apple Catalyst 二进制文件的架构的列表(以英文逗号分隔)。
标记:loses_incremental_stateloading_and_analysis
--[no]collect_code_coverage 默认值:“false”
如果指定,Bazel 将对代码进行插桩(尽可能使用离线插桩),并在测试期间收集覆盖率信息。只有与 --Instrumentation_filter 匹配的目标会受到影响。通常,此选项不应直接指定,应改用“bazelCoverage”命令。
标记: affects_outputs
--compilation_mode=<fastbuild, dbg or opt> [-c] 默认值:“fastbuild”
指定要构建二进制文件的模式。值:“Fastbuild”“dbg”“opt”。
标记:affects_outputsaction_command_lines
已累计 --conlyopt=<a string> 次多次使用
在编译 C 源文件时传递给 gcc 的附加选项。
标记:action_command_linesaffects_outputs
已累计 --copt=<a string> 次多次使用
可传递给 gcc 的其他选项。
标记:action_command_linesaffects_outputs
--cpu=<a string> 默认值:“”
目标 CPU。
标记:changes_inputsaffects_outputs
--cs_fdo_absolute_path=<a string> 默认值:参见说明
使用 CSFDO 配置文件信息来优化编译。指定包含配置文件(原始或已编入索引的 LLVM 配置文件)的 ZIP 文件的绝对路径名称。
标记: affects_outputs
--cs_fdo_instrument=<a string> 默认值:参见说明
使用上下文敏感 FDO 插桩生成二进制文件。使用 Clang/LLVM 编译器时,它还接受在运行时转储原始配置文件所在的目录名称。
标记: affects_outputs
--cs_fdo_profile=<a build target label> 默认值:参见说明
cs_fdo_profile,表示要用于优化的上下文相关配置文件。
标记: affects_outputs
已累计 --cxxopt=<a string> 次多次使用
在编译 C++ 源文件时传递给 gcc 的附加选项。
标记:action_command_linesaffects_outputs
已累计 --define=<a 'name=value' assignment> 次多次使用
每个 --define 选项都会为 build 变量指定一个赋值。
标记:changes_inputsaffects_outputs
--dynamic_mode=<off, default or fully> 默认值:“默认”
确定是否要动态地链接 C++ 二进制文件。“default”表示 Bazel 将选择是否动态关联。“full”表示所有库都将动态链接。“off”表示在基本上静态模式下所有库的链接。
标记:loading_and_analysisaffects_outputs
--[no]enable_fdo_profile_absolute_path 默认值:“true”
如果设置此参数,使用 fdo_absolute_profile_path 会引发错误。
标记: affects_outputs
--[no]enable_runfiles 默认值:“auto”
启用 runfiles 符号链接树;在 Windows 上,此设置在其他平台上处于关闭状态。
标记: affects_outputs
已累计 --experimental_action_listener=<a build target label> 次多次使用
已弃用,取而代之的是切面。使用 action_listener 将 extra_action 附加到现有构建操作。
标记: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_analysis
--[no]experimental_android_rewrite_dexes_with_rex 默认值:“false”
使用 Rex 工具重写 dex 文件
标记:affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]experimental_collect_code_coverage_for_generated_files 默认值:“false”
如果指定,Bazel 还将为生成的文件生成收集覆盖率信息。
标记: affects_outputs
此标志控制便捷符号链接(构建后显示在工作区的符号链接)的管理方式。可能的值:normal(默认值):将创建或删除每种便捷的符号链接,具体取决于 build。clean:所有符号链接都将被无条件删除。ignore:符号链接将保持独立。log_only:生成日志消息,就像传递了“normal”,但实际上不执行任何文件系统操作(对工具很有用)。 请注意,只有名称由 --symlink_prefix 的当前值生成的符号链接才会受到影响;如果前缀发生更改,所有现有的符号链接都将保持不变。
标记: affects_outputs
此标志控制我们是否将 build eventConvenienceSymlinksIdentified 发布到 BuildEventProtocol。如果值为 true,BuildEventProtocol 将具有一个以便于提供便利的条目的条目,其中列出在您的工作区中创建的所有便捷符号链接。如果值为 false,那么 BuildEventProtocol 中的 safetySymlinksIdentified 条目将为空。
标记: affects_outputs
--experimental_objc_fastbuild_options=<comma-separated list of options> 默认值:“-O0,-DDEBUG=1”
将这些字符串用作 objc fastbuild 编译器选项。
标记: action_command_lines
--[no]experimental_omitfp 默认值:“false”
如果为 true,则使用 libunwind 进行堆栈展开,并使用 -fomit-frame-pointer 和 -fasync-unwind-tables 进行编译。
标记:action_command_linesaffects_outputsexperimental
--experimental_output_paths=<off, content or strip> 默认值:“关闭”
在输出树规则中的位置编写输出的模型,尤其是对于多平台 / 多配置 build。这尚处于实验阶段。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/6526。Starlark 操作可以选择使用路径映射,方法是将键“supports-path-mapping”添加到“execution_requirements”字典。
标记:loses_incremental_statebazel_internal_configurationaffects_outputsexecution
已累计 --experimental_override_name_platform_in_output_dir=<a 'label=value' assignment> 次多次使用
每个条目都应该采用 label=value 形式,其中 label 表示平台,value 是要在输出路径中使用的所需简称。仅在 --experimental_platform_in_output_dir 为 true 时使用。具有最高命名优先级。
标记:affects_outputsexperimental
--[no]experimental_platform_in_output_dir 默认值:“false”
如果为 true,则会在输出目录名称中使用目标平台的简称,而不是 CPU。确切的方案尚处于实验阶段,可能会发生变化:首先,在极少数情况下,--platforms 选项并不只有一个值,而是使用 platform 选项的哈希值。接下来,如果当前平台的任何简称由 --experimental_override_name_platform_in_output_dir 注册,则系统会使用该简称。然后,如果设置了 --experimental_use_platforms_in_output_dir_legacy_heuristic,则使用基于当前平台标签的简称。最后,在万不得已时,系统将使用平台选项的哈希值。
标记: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
--fat_apk_cpu=<comma-separated set of options> 默认值:“armeabi-v7a”
设置此选项会启用胖 APK,其中包含适用于所有指定目标架构的原生二进制文件,例如--fat_apk_cpu=x86,armeabi-v7a. 如果指定此标志,对于 android_binary 规则的依赖项,系统会忽略 --android_cpu。
标记:affects_outputsloading_and_analysisloses_incremental_state
--[no]fat_apk_hwasan 默认值:“false”
是否创建 HWASAN 分块。
标记:affects_outputsloading_and_analysisloses_incremental_state
--fdo_instrument=<a string> 默认值:参见说明
使用 FDO 插桩生成二进制文件。使用 Clang/LLVM 编译器时,它还接受在运行时转储原始配置文件所在的目录名称。
标记: affects_outputs
--fdo_optimize=<a string> 默认值:参见说明
使用 FDO 配置文件信息优化编译。指定包含 .gcda 文件树的 ZIP 文件、包含自动配置文件的 afdo 文件或 LLVM 配置文件的名称。此标志还接受指定为标签的文件(例如“//foo/bar:file.afdo”- 您可能需要向相应的软件包添加“exports_files”指令)和指向“fdo_profile”目标的标签。此标志将被“fdo_profile”规则取代。
标记: affects_outputs
--fdo_prefetch_hints=<a build target label> 默认值:参见说明
使用缓存预提取提示。
标记: affects_outputs
--fdo_profile=<a build target label> 默认值:参见说明
表示要用于优化的配置文件的 fdo_profile。
标记: affects_outputs
已累计 --features=<a string> 次多次使用
对于目标配置中构建的目标,系统会默认启用或停用指定功能。指定 -<feature> 将停用该功能。负特征始终会覆盖正特征。另请参阅 --host_features
标记:changes_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> 次多次使用
指定可供具有执行配置的操作使用的环境变量集。变量可以按名称指定(在这种情况下值将从调用环境获取),或者由名称=值对(其值独立于调用环境设置值)指定。此选项可以多次使用;对于为同一变量指定的选项,最后胜出的选项将累积,不同变量的选项会累积。
标记: action_command_lines
--host_compilation_mode=<fastbuild, dbg or opt> 默认值:“opt”
指定构建期间所用工具的内置模式。值:“Fastbuild”“dbg”“opt”。
标记:affects_outputsaction_command_lines
已累计 --host_conlyopt=<a string> 次多次使用
在 exec 配置中编译 C(而非 C++)源文件时传递给 C 编译器的附加选项。
标记:action_command_linesaffects_outputs
已累计 --host_copt=<a string> 次多次使用
对于在 exec 配置中构建的工具,需要传递给 C 编译器的其他选项。
标记:action_command_linesaffects_outputs
--host_cpu=<a string> 默认值:“”
主机 CPU。
标记:changes_inputsaffects_outputs
已累计 --host_cxxopt=<a string> 次多次使用
对于在 exec 配置中构建的工具,可传递给 C++ 编译器的其他选项。
标记:action_command_linesaffects_outputs
已累计 --host_features=<a string> 次多次使用
对于 exec 配置中构建的目标,系统会默认启用或停用指定功能。指定 -<feature> 将停用该功能。负特征始终会覆盖正特征。
标记:changes_inputsaffects_outputs
--host_force_python=<PY2 or PY3> 默认值:参见说明
替换 exec 配置的 Python 版本。可以是“PY2”或“PY3”。
标记:loading_and_analysisaffects_outputs
已累计 --host_linkopt=<a string> 次多次使用
在 exec 配置中关联工具时向链接器传递的额外选项。
标记: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> 次多次使用
在 exec 配置中编译某些文件时,用于选择性传递给 C/C++ 编译器的其他选项。此选项可以多次传递。语法:regex_filter@option_1,option_2,...,option_n。其中,regex_filter 代表包含和排除正则表达式模式的列表(另请参阅 --Instrument_filter)。 option_1 到 option_n 代表任意命令行选项。如果选项包含英文逗号,则必须使用反斜杠加引号。选项可以包含 @。只有第一个 @ 用于拆分字符串。示例:--host_per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 将 -O0 命令行选项添加到 //foo/ 中所有 cc 文件的 gcc 命令行中(bar.cc 除外)。
标记:action_command_linesaffects_outputs
已累计 --host_swiftcopt=<a string> 次多次使用
用于执行工具的传递给 swiftc 的其他选项。
标记: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]incompatible_use_host_features 默认值:“true”
如果为 true,请仅对目标配置使用 --features,将 --host_features 用于 exec 配置。
标记:changes_inputsaffects_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)。开启后,请为 linkopts 中包含 linkshared=True 且 linkstatic=True 或“-static”的 cc_binary 规则使用 --whole-archive。这仅用于向后兼容。更好的替代方案是在必要时使用 alwayslink=1。
标记:action_command_linesaffects_outputsdeprecated
已累计 --linkopt=<a string> 次多次使用
在链接时传递给 gcc 的附加选项。
标记:action_command_linesaffects_outputs
已累计 --ltobackendopt=<a string> 次多次使用
用于传递给 LTO 后端步骤的附加选项(在 --features=thin_lto 下)。
标记:action_command_linesaffects_outputs
已累计 --ltoindexopt=<a string> 次多次使用
用于传递给 LTO 索引编制步骤的附加选项(在 --features=thin_lto 下)。
标记:action_command_linesaffects_outputs
已累计 --macos_cpus=<comma-separated list of options> 次多次使用
构建 Apple macOS 二进制文件的架构的列表(以英文逗号分隔)。
标记:loses_incremental_stateloading_and_analysis
--macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:参见说明
目标的最低兼容 macOS 版本。如果未指定,则使用“macos_sdk_version”。
标记: loses_incremental_state
--memprof_profile=<a build target label> 默认值:参见说明
使用 memprof 配置文件。
标记: affects_outputs
--[no]objc_debug_with_GLIBCXX 默认值:“false”
如果设置此参数,并且编译模式设为“dbg”,则定义 GLIBCXX_DEBUG、GLIBCXX_DEBUG_PEDANTIC 和 GLIBCPP_CONCEPT_CHECKS。
标记: action_command_lines
--[no]objc_enable_binary_stripping 默认值:“false”
是否对关联的二进制文件执行符号和死代码删除。如果同时指定了此标志和 --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 代表包含和排除正则表达式模式的列表(另请参阅 --Instrument_filter)。 option_1 到 option_n 代表任意命令行选项。如果选项包含英文逗号,则必须使用反斜杠加引号。选项可以包含 @。只有第一个 @ 用于拆分字符串。示例:--per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 向 //foo/ 中所有 cc 文件的 gcc 命令行(bar.cc 除外)添加 -O0 命令行选项。
标记: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 向 //foo/ 中所有 o 文件(bar.o 除外)的 LTO 后端命令行添加 -O0 命令行选项。
标记: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",) 可能需要向相应的软件包添加 Export_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> 默认值:“有时”
指定是否去除二进制文件和共享库(使用“-Wl,--strip-debug”)。“有时”的默认值表示会在 iff --compilation_mode=Fastbuild 执行删除操作。
标记: affects_outputs
已累计 --stripopt=<a string> 次多次使用
生成“<name>.stripped”二进制文件时要传递的其他选项。
标记:action_command_linesaffects_outputs
已累计 --swiftcopt=<a string> 次多次使用
传递给 Swift 编译的其他选项。
标记: action_command_lines
在构建后创建的任何便捷符号链接的前缀。如果省略,则默认值为 Build Tools 的名称,后跟连字符。如果传递“/”,则不会创建符号链接,也不会发出警告。警告:“/”的特殊功能即将弃用;请改用 --experimental_convenience_symlinks=ignore。
标记: affects_outputs
已累计 --tvos_cpus=<comma-separated list of options> 次多次使用
用于构建 Apple tvOS 二进制文件的架构的列表(以英文逗号分隔)。
标记:loses_incremental_stateloading_and_analysis
--tvos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:参见说明
目标模拟器和设备的最低兼容 tvOS 版本。如果未指定,则使用“tvos_sdk_version”。
标记: loses_incremental_state
已累计 --visionos_cpus=<comma-separated list of options> 次多次使用
用于构建 Apple visionOS 二进制文件的架构的列表(以英文逗号分隔)。
标记:loses_incremental_stateloading_and_analysis
已累计 --watchos_cpus=<comma-separated list of options> 次多次使用
用于构建 Apple watchOS 二进制文件的架构的列表(以英文逗号分隔)。
标记:loses_incremental_stateloading_and_analysis
--watchos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:参见说明
目标模拟器和设备的最低兼容 watchOS 版本。如果未指定,则使用“watchos_sdk_version”。
标记: loses_incremental_state
--xbinary_fdo=<a build target label> 默认值:参见说明
使用 XbinaryFDO 配置文件信息优化编译。指定默认交叉二进制配置文件的名称。当此选项与 --fdo_instrument/--fdo_optimize/--fdo_profile 一起使用时,这些选项将始终生效,就如同从未指定 xbinary_fdo。
标记: affects_outputs
影响 Bazel 执行有效 build 输入的严格程度的选项(规则定义、标志组合等):
--auto_cpu_environment_group=<a build target label> 默认值:“”
声明用于自动将 CPU 值映射到 target_environment 值的 environment_group。
标记:changes_inputsloading_and_analysisexperimental
--[no]check_licenses 默认值:“false”
检查依赖软件包施加的许可限制是否与正在构建的目标的分发模式冲突。默认情况下,许可处于未选中状态。
标记: build_file_semantics
--[no]check_visibility 默认值:“true”
如果停用此设置,目标依赖项中的可见性错误会降级为警告。
标记: build_file_semantics
--[no]desugar_for_android 默认值:“true”
是否在 dex 处理之前对 Java 8 字节码进行脱糖。
标记:affects_outputsloading_and_analysisloses_incremental_state
--[no]desugar_java8_libs 默认值:“false”
是否在旧版设备的应用中包含受支持的 Java 8 库。
标记:affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]enforce_constraints 默认值:“true”
检查每个目标兼容的环境,如果任何目标的依赖项不支持相同环境,则报告错误
标记:build_file_semantics
--[no]experimental_check_desugar_deps 默认值:“true”
是否在 Android 二进制文件级别仔细检查是否正确脱糖。
标记:eagerness_to_exitloading_and_analysisexperimental
--experimental_import_deps_checking=<off, warning or error>的默认值:“关闭”
启用后,检查 aar_import 的依赖项是否完整。此强制执行可能会破坏构建,或可能导致警告。
标记: loading_and_analysis
--experimental_strict_java_deps=<off, warn, error, strict or default> 默认值:“默认”
如果为 true,则检查 Java 目标是否明确将所有直接使用的目标声明为依赖项。
标记:build_file_semanticseagerness_to_exit
--[no]incompatible_check_testonly_for_output_files 默认值:“false”
如果启用,则通过查找生成规则的 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]incompatible_validate_top_level_header_inclusions 默认值:“true”
如果为 true,则 Bazel 还将验证是否包含顶级目录标头(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/10047)。
标记:loading_and_analysisincompatible_change
--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,则还需要声明通过系统包含路径 (-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 签名的证书名称。如果未设置,则回退到预配配置文件。可能是证书的钥匙串身份偏好设置或证书通用名称的(子字符串),详情请参阅代码签名的手册页面(签名 IDENTITIES)。
标记: action_command_lines
此选项会影响 Starlark 语言或者 build 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义。
--[no]incompatible_config_setting_private_default_visibility 默认值:“false”
如果 incompatible_enforce_config_setting_visibility=false,则是空操作。否则,如果此标志为 false,则没有明确可见性属性的任何 config_setting 均为 //visibility:public。如果此标志为 true,config_setting 遵循与所有其他规则相同的可见性逻辑。请参阅 https://github.com/bazelbuild/bazel/issues/12933。
标记:loading_and_analysisincompatible_change
--[no]incompatible_disallow_legacy_py_provider 默认值:“true”
无操作,很快就会被移除。
标记:loading_and_analysisincompatible_change
--[no]incompatible_disallow_sdk_frameworks_attributes 默认值:“false”
如果为 true,则禁止在 objc_library 和 objc_import 中使用 sdk_frameworks 和 weak_sdk_frameworks 属性。
标记:build_file_semanticsincompatible_change
--[no]incompatible_enforce_config_setting_visibility 默认值:“true”
如果为 true,则强制执行 config_setting 可见性限制。如果为 false,则每个 config_setting 对每个目标都可见。请参阅 https://github.com/bazelbuild/bazel/issues/12932。
标记:loading_and_analysisincompatible_change
如果为 true,则将 objc_library 和 objc_import 中的 alwayslink 属性的默认值设为 true。
标记:build_file_semanticsincompatible_change
--[no]incompatible_python_disallow_native_rules 默认值:“false”
如果为 true,则在使用内置 py_* 规则时会出错;应改用 rule_python 规则。如需了解详情和迁移说明,请参阅 https://github.com/bazelbuild/bazel/issues/17773。
标记:loading_and_analysisincompatible_change
用于管理测试环境或测试运行程序行为的选项:
--[no]allow_analysis_failures 默认值:“false”
如果为 true,则规则目标的分析失败会导致目标传播一个包含错误说明的 AnalysisFailureInfo 实例,不会导致构建失败。
标记:loading_and_analysisexperimental
--analysis_testing_deps_limit=<an integer> 默认值:“2000”
通过具有 for_analysis_testing 配置转换的规则属性设置传递依赖项的数量上限。超过此限制将导致规则错误。
标记: loading_and_analysis
--[no]break_build_on_parallel_dex2oat_failure 默认值:“false”
如果 dex2oat 操作为 true,则会导致构建中断,而不会在测试运行时执行 dex2oat。
标记:loading_and_analysisexperimental
--[no]check_tests_up_to_date 默认值:“false”
请不要运行测试,只需检查它们是否为最新版本即可。如果所有测试结果均为最新,则表示测试成功完成。如果需要构建或执行任何测试,则系统会报告错误,并且测试会失败。此选项意味着采用 --check_up_to_date 行为。
标记: execution
--[no]experimental_android_use_parallel_dex2oat 默认值:“false”
同时使用 dex2oat 可能会加快 android_test 的运行速度。
标记:loading_and_analysishost_machine_resource_optimizationsexperimental
已累计 --flaky_test_attempts=<a positive integer, the string "default", or test_regex@attempts. This flag may be passed more than once> 次多次使用
每项测试都会按指定次数重试,以防测试失败。在测试摘要中,需要多次尝试才能通过的测试将标记为“FLAKY”。通常,指定的值只是整数或字符串“default”。如果是一个整数,则所有测试最多运行 N 次。如果为“default”,那么常规测试只会进行一次测试尝试,而对于被其规则(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 下的测试除外)三次稳定下来。此选项可以多次传递。最新传递的匹配的参数优先。如果没有匹配项,则行为就像上面的“default”一样。
标记: execution
--[no]ios_memleaks 默认值:“false”
在 ios_test 目标中启用内存泄漏检查功能。
标记: action_command_lines
--ios_simulator_device=<a string> 默认值:参见说明
在模拟器中运行 iOS 应用(例如“iPhone 6”)时要模拟的设备。您可以在运行模拟器的计算机上运行“xcrun simctl list devicetypes”来获取设备列表。
标记: test_runner
--ios_simulator_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:参见说明
运行或测试时要在模拟器上运行的 iOS 版本。如果 ios_test 规则中指定了目标设备,系统会忽略此规则。
标记: test_runner
--local_test_jobs=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5"> 默认值:“auto”
要并发运行的本地测试作业数上限。接受整数或关键字(“auto”“HOST_CPUS”“HOST_RAM”),可以选择后跟运算符 ([-|*]<float>),例如:"auto", "HOST_CPUS*.5"。0 表示本地资源将限制并发运行的本地测试作业数量。将此值设置为大于 --jobs 的值是无效的。
标记: execution
已累计 --runs_per_test=<a positive integer or test_regex@runs. This flag may be passed more than once> 次多次使用
指定运行每项测试的次数。如果其中任何一项测试因任何原因失败,整个测试都将被视为失败。通常,指定的值只是一个整数。示例:--runs_per_test=3 会运行所有测试 3 次。替代语法:regex_filter@runs_per_test。其中,running_per_test 表示整数值,而 regex_filter 表示包含和排除正则表达式模式的列表(另请参阅 --Instrumentation_filter)。示例:--runs_per_test=//foo/.*,-//foo/bar/.*@3 运行 //foo/ 中的所有测试(foo/bar 下的测试除外)三次。此选项可以多次传递。最新传递的匹配的参数优先。如果没有匹配项,则测试仅运行一次。
已累计 --test_env=<a 'name=value' assignment with an optional value part> 次多次使用
指定要注入到测试运行程序环境的其他环境变量。变量可以按名称指定(在这种情况下,变量的值将从 Bazel 客户端环境读取),或者名称=值对。此选项可以多次使用,以指定多个变量。仅供“bazel test”命令使用。
标记: test_runner
--[no]test_keep_going 默认值:“true”
停用后,任何未通过的测试都会导致整个构建停止。默认情况下,系统会运行所有测试,即使有些测试未能通过也是如此。
标记: execution
--test_strategy=<a string> 默认值:“”
指定在运行测试时要使用的策略。
标记: execution
--test_timeout=<a single integer or comma-separated list of 4 integers> 默认值:“-1”
替换测试超时的默认测试超时值(以秒为单位)。如果指定了单个正整数值,该值将覆盖所有类别。如果指定了 4 个以英文逗号分隔的整数,这些值将会覆盖短、中、长和永久的超时(按此顺序)。无论采用哪种方式,值 -1 都会指示 Blaze 为该类别使用默认超时值。
--test_tmpdir=<a path> 默认值:参见说明
指定供“bazel test”使用的基本临时目录。
--[no]zip_undeclared_test_outputs 默认值:“true”
如果为 true,则未声明的测试输出将归档为 zip 文件。
标记: test_runner
触发构建时间优化的选项:
--[no]experimental_filter_library_jar_with_program_jar 默认值:“false”
过滤 ProGuard ProgramJar,以移除 LibraryJar 中也存在的所有类。
标记: action_command_lines
--[no]experimental_inmemory_dotd_files 默认值:“true”
启用后,C++ .d 文件将直接从远程构建节点在内存中传递,而不是写入磁盘。
标记:loading_and_analysisexecutionaffects_outputsexperimental
--[no]experimental_inmemory_jdeps_files 默认值:“true”
启用后,通过 Java 编译生成的依赖项 (.jdeps) 文件将直接从远程构建节点在内存中传递,而不是写入磁盘。
标记:loading_and_analysisexecutionaffects_outputsexperimental
--[no]experimental_objc_include_scanning 默认值:“false”
是否针对目标 C/C++ 执行包含扫描。
标记:loading_and_analysisexecutionchanges_inputs
--[no]experimental_retain_test_configuration_across_testonly 默认值:“false”
启用后,--trim_test_configuration 不会修剪标记为 testonly=1 的规则的测试配置。这是为了减少非测试规则依赖于 cc_test 规则时出现的操作冲突问题。如果 --trim_test_configuration 为 false,则不会产生任何影响。
标记:loading_and_analysisloses_incremental_state
--[no]experimental_starlark_cc_import 默认值:“false”
启用后,便可使用 Starlark 版本的 cc_import。
标记:loading_and_analysisexperimental
--[no]experimental_unsupported_and_brittle_include_scanning 默认值:“false”
是否通过解析输入文件中的 #include 行来缩小 C/C++ 编译的输入范围。这可以通过减小编译输入树的大小来提高性能和增量。不过,这也可能会中断构建,因为包含扫描器未完全实现 C 预处理器语义。特别是,它不理解动态 #include 指令,并且会忽略预处理器的条件逻辑。使用所带来的风险由您自行承担。已提交的与此标记相关的任何问题都将关闭。
标记:loading_and_analysisexecutionchanges_inputs
--[no]incremental_dexing 默认值:“true”
为每个 Jar 文件分别执行 dex 处理的大部分工作。
标记:affects_outputsloading_and_analysisloses_incremental_state
--local_cpu_resources=<an integer, or "HOST_CPUS", optionally followed by [-|*]<float>.> 默认值:“HOST_CPUS”
明确设置可供 Bazel 用于在本地执行的构建操作的本地 CPU 核心总数。取一个整数或“HOST_CPUS”,可以选择后跟 [-|*]<float>(例如HOST_CPUS*.5 表示使用一半可用的 CPU 核心)。默认情况下,("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% 的 RAM 容量。
标记: host_machine_resource_optimizations
--[no]objc_use_dotd_pruning 默认值:“true”
如果设置此参数,则 clang 发出的 .d 文件将用于剪除传入 objc 编译的一组输入。
标记:changes_inputsloading_and_analysis
--[no]process_headers_in_dependencies 默认值:“false”
构建目标 //a:a 时,//a:a 所依赖的所有目标中的进程标头(如果工具链启用了标头处理)。
标记: execution
--[no]trim_test_configuration 默认值:“true”
启用后,与测试相关的选项将在 build 顶层下方清除。当此标志处于启用状态时,无法将测试构建为非测试规则的依赖项,但更改与测试相关的选项不会导致系统重新分析非测试规则。
标记:loading_and_analysisloses_incremental_state
影响日志记录的详细程度、格式或位置的选项:
--[no]experimental_bep_target_summary 默认值:“false”
是否发布 TargetSummary 事件。
--[no]experimental_build_event_expand_filesets 默认值:“false”
如果为 true,则在展示输出文件时展开 BEP 中的文件集。
标记: affects_outputs
如果为 true,则在显示输出文件时完全解析 BEP 中的相对 Fileset 符号链接。需要 --experimental_build_event_expand_filesets。
标记: affects_outputs
--experimental_build_event_upload_max_retries=<an integer> 默认值:“4”
Bazel 应重新尝试上传构建事件的次数上限。
标记: bazel_internal_configuration
--experimental_build_event_upload_retry_minimum_delay=<An immutable length of time.> 默认值:“1s”
BEP 上传失败时指数退避算法重试的初始最短延迟时间。(指数:1.6)
标记: bazel_internal_configuration
--experimental_build_event_upload_strategy=<a string> 默认值:参见说明
选择如何上传 build 事件协议中引用的工件。
标记: affects_outputs
--[no]experimental_materialize_param_files_directly 默认值:“false”
如需具体化参数文件,请直接写入磁盘。
标记: execution
--[no]experimental_run_bep_event_include_residue 默认值:“false”
是否在运行的 build 事件中包含可能包含该残留的命令行。默认情况下,可能含有该残留的运行命令构建事件中不包含该残留。
标记: affects_outputs
--[no]experimental_stream_log_file_uploads 默认值:“false”
将日志文件上传直接流式传输到远程存储空间,而不是将其写入磁盘。
标记: affects_outputs
--explain=<a path> 默认值:参见说明
使构建系统解释构建的每个已执行步骤。说明将写入指定的日志文件。
标记: affects_outputs
--[no]legacy_important_outputs 默认值:“true”
使用此选项可禁止在 TargetComplete 事件中生成旧版 important_outputs 字段。Bazel 到 ResultStore 集成需要用到 gaming_outputs 字段。
标记: affects_outputs
--[no]materialize_param_files 默认值:“false”
即使在使用远程操作执行时,也会将中间参数文件写入输出树。在调试操作时很有用。这是 --subcommands 和 --verbose_failures 隐含的。
标记: execution
--max_config_changes_to_show=<an integer> 默认值:“3”
如果由于构建选项的变化而舍弃分析缓存,则最多可显示指定数量的已更改选项名称。如果给定的数字是 -1,系统会显示所有已更改的选项。
标记: terminal_output
--max_test_output_bytes=<an integer> 默认值:“-1”
指定当 --test_output 为“errors”或“all”时可以发出的每个测试日志的最大大小。有助于避免测试输出过于嘈杂的输出不堪重负。测试标头包含在日志大小中。负值表示无限制。输出为全部或零。
标记:test_runnerterminal_outputexecution
--output_filter=<a valid Java regular expression> 默认值:参见说明
仅显示名称与提供的正则表达式匹配的规则的警告和操作输出。
标记: affects_outputs
--progress_report_interval=<an integer in 0-3600 range> 默认值:“0”
针对仍在运行的作业发送报告之间等待的秒数。默认值 0 表示将在 10 秒后输出第一份报告,然后在 30 秒后输出第一份报告,之后每分钟报告一次进度。启用 --curses 后,系统会每秒报告一次进度。
标记: affects_outputs
--show_result=<an integer> 默认值:“1”
显示构建结果。对于每个目标,请说明其是否处于最新状态;如果是,则提供已构建的输出文件列表。输出的文件是方便复制/粘贴到 shell 以执行它们的字符串。此选项需要一个整数参数,即目标的阈值数量,超过此值时,系统不会输出结果信息。因此,0 会抑制消息,MAX_INT 则会导致始终输出结果。默认值为 1。 如果没有为目标构建任何内容,则可以省略其结果,以使输出保持在阈值以下。
标记: affects_outputs
--[no]subcommands [-s] 默认值:“false”
显示构建期间执行的子命令。相关标志:--execution_log_json_file、--execution_log_binary_file(用于以适合工具的格式将子命令记录到文件中)。
标记: terminal_output
--test_output=<summary, errors, all or streamed> 默认值:“summary”
指定所需的输出模式。有效值包括:“summary”用于仅输出测试状态摘要,“errors”用于输出失败测试的测试日志;“all”用于输出所有测试的日志,“streamed”用于实时输出所有测试的日志(这会强制每次在本地执行一个测试,无论 --test_strategy 值如何)。
标记:test_runnerterminal_outputexecution
--test_summary=<short, terse, detailed, none or testcase> 默认值:“short”
指定所需的测试摘要格式。有效值为“short”,用于仅输出关于已执行的测试的信息;“terse”表示仅输出关于运行失败的测试的信息;“detailed”用于输出有关失败的测试用例的详细信息;“testcase”用于输出关于已失败的测试用例的摘要;不输出有关失败的测试用例的详细信息;“none”用于省略摘要。
标记: terminal_output
--toolchain_resolution_debug=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths> 默认值:“-.*”
在工具链解析期间输出调试信息。该标志采用正则表达式,系统会根据工具链类型和特定目标来检查要调试的版本。您可以使用英文逗号分隔多个正则表达式,然后单独检查每个正则表达式。注意:此标志的输出非常复杂,可能仅对工具链解析方面的专家有用。
标记: terminal_output
--[no]verbose_explanations 默认值:“false”
如果启用了 --explain,则提高所发出的说明的详细程度。如果未启用 --explain,则无效。
标记: affects_outputs
--[no]verbose_failures 默认值:“false”
如果某个命令失败,则输出完整的命令行。
标记: terminal_output
用于指定或更改不属于其他类别的 Bazel 命令的通用输入的选项:
已累计 --aspects_parameters=<a 'name=value' assignment> 次多次使用
指定命令行切面参数的值。每个参数值均通过 <param_name>=<param_value> 指定,例如“my_param=my_val”,其中“my_param”是 --aspects 列表中某个方面的参数,或列表中的某个方面所需的参数。此选项可多次使用。但是,不允许多次为同一参数指定值。
标记: loading_and_analysis
已累计 --flag_alias=<a 'name=value' flag alias> 次多次使用
设置 Starlark 标志的简写名称。它使用“<key>=<value>”形式的单个键值对作为参数。
标记: changes_inputs
--[no]incompatible_default_to_explicit_init_py 默认值:“false”
此标志可更改默认行为,因此在 Python 目标的 runfile 中不会再自动创建 __init__.py 文件。确切地说,当 py_binary 或 py_test 目标将 legacy_create_init 设置为“auto”(默认值)时,当且仅当设置了此标记时,它才会被视为 false。请参阅 https://github.com/bazelbuild/bazel/issues/10076。
标记:affects_outputsincompatible_change
--[no]incompatible_py2_outputs_are_suffixed 默认值:“true”
如果为 true,在 Python 2 配置中构建的目标将显示在包含后缀“-py2”的输出根目录下,而针对 Python 3 构建的目标将显示在没有与 Python 相关的后缀的根目录下。这意味着“bazel-bin”便捷符号链接将指向 Python 3 目标,而不是 Python 2。如果启用此选项,我们还建议您启用“--incompatible_py3_is_default”。
标记:affects_outputsincompatible_change
--[no]incompatible_py3_is_default 默认值:“true”
如果为 true,则未设置“python_version”(或“default_python_version”)属性的“py_binary”和“py_test”目标将默认为 PY3,而不是 PY2。如果您设置了此标志,还建议您设置“--incompatible_py2_outputs_are_suffixed”。
标记:loading_and_analysisaffects_outputsincompatible_change
--[no]incompatible_use_python_toolchains 默认值:“true”
如果设置为 true,可执行原生 Python 规则将使用 Python 工具链指定的 Python 运行时,而不是由 --python_top 等旧版标志指定的运行时。
标记:loading_and_analysisincompatible_change
--python_version=<PY2 or PY3> 默认值:参见说明
Python 主要版本模式:“PY2”或“PY3”。请注意,此设置已被“py_binary”和“py_test”目标替换(即使它们未明确指定版本),因此通常没有太多理由提供此标志。
标记:loading_and_analysisaffects_outputs
--target_pattern_file=<a string> 默认值:“”
如果设置此参数,build 将从此处指定的文件(而不是命令行)读取模式。在此处指定文件以及命令行格式会出错。
标记: changes_inputs
远程缓存和执行选项:
--experimental_remote_cache_eviction_retries=<an integer> 默认值:“0”
构建遇到远程缓存逐出错误时重试的最大次数。非零值会将 --incompatible_remote_use_new_exit_code_for_lost_inputs 隐式设置为 true。每次尝试时,系统都会生成一个新的调用 ID。如果您生成调用 ID 并使用 --invocation_id 将其提供给 Bazel,则不应使用此标志。而应设置 标志 --incompatible_remote_use_new_exit_code_for_lost_inputs 并检查是否有退出代码 39。
标记: execution
--[no]incompatible_remote_use_new_exit_code_for_lost_inputs 默认值:“true”
如果设置为 true,那么如果远程缓存在构建期间逐出 blob,则 Bazel 将使用新的退出代码 39(而不是 34)。
标记: incompatible_change
其他选项,未以其他方式分类:
--[no]allow_analysis_cache_discard 默认值:“true”
如果由于构建系统的变化而舍弃分析缓存,则将此选项设置为 false 会导致 bazel 退出,而不会继续进行构建。如果同时设置了“discard_analysis_cache”,此选项不起作用。
标记: eagerness_to_exit
--[no]build_manual_tests 默认值:“false”
强制构建标记为“manual”的测试目标。“手动”测试不会进行处理。此选项会强制构建(但不执行)这些过滤器。
--build_tag_filters=<comma-separated list of options> 默认值:“”
指定以逗号分隔的标记列表。您可以选择在每个代码前面加上“-”,以指定排除的代码。系统只会构建包含至少 1 个已包含标记且不包含任何已排除的标记的目标。此选项不会影响使用“test”命令执行的这组测试;这些测试受测试过滤选项(例如“--test_tag_filters”)的约束
--[no]build_tests_only 默认值:“false”
如果指定,则仅构建 *_test 和 test_suite 规则,并忽略在命令行中指定的其他目标。默认情况下,系统将构建请求的所有内容。
--[no]cache_test_results [-t] 默认值:“自动”
如果设置为“auto”,则仅当满足以下条件时,Bazel 才会重新运行测试:(1) Bazel 检测到测试或其依赖项中的更改;(2) 测试被标记为外部;(3) 使用 --runs_per_test 请求了多次测试运行;或(4) 之前测试失败。如果设置为“yes”,则 Bazel 会缓存所有测试结果,但标记为外部的测试除外。如果设置为“no”,则 Bazel 不会缓存任何测试结果。
--[no]compile_one_dependency 默认值:“false”
编译参数文件的单个依赖项。这对于在 IDE 中检查源文件非常有用,例如,通过重新构建依赖于源文件的单个目标,在编辑/构建/测试周期中尽早检测到错误。此参数会影响所有非 flag 参数的解释方式;它们不是构建目标,而是源文件名。对于每个源文件名,系统将构建一个依赖于该文件名的任意目标。
已累计 --deleted_packages=<comma-separated list of package names> 次多次使用
以英文逗号分隔的软件包名称列表,构建系统将其视为不存在的软件包名称,即使它们在软件包路径上的某个位置可见。 当删除现有软件包“x”的子软件包“x/y”时,使用此选项。例如,删除客户端中的 x/y/BUILD 后,如果构建系统遇到“//x:y/z”标签(如果其他 package_path 条目仍然提供该标签),则可能会收到提示。指定 --deleted_packages x/y 可避免此问题。
--[no]discard_analysis_cache 默认值:“false”
在分析阶段完成后立即舍弃分析缓存。使内存使用量减少约 10%,但进一步减慢增量构建的速度。
--execution_log_binary_file=<a path> 默认值:参见说明
根据 src/main/protobuf/spawn.proto,将执行的生成作业作为分隔的 Spawn proto 记录到此文件中。相关标志:--execution_log_json_file(文本 JSON 格式;互斥)、--execution_log_sort(是否对执行日志进行排序)、--subcommands(用于在终端输出中显示子命令)。
--execution_log_json_file=<a path> 默认值:参见说明
根据 src/main/protobuf/spawn.proto,将执行的生成作业作为分隔的 Spawn proto 的 JSON 表示法记录到此文件中。相关标志:--execution_log_binary_file(二进制 protobuf 格式;互斥)、--execution_log_sort(是否对执行日志进行排序)、--subcommands(用于在终端输出中显示子命令)。
--[no]execution_log_sort 默认值:“true”
是否对执行日志进行排序,以便更轻松地比较不同调用的日志。设置为 false 以避免在调用结束时可能大量占用 CPU 和内存,代价是会以不确定的执行顺序生成日志。
--[no]expand_test_suites 默认值:“true”
先将 test_suite 目标扩展到其组成部分测试,然后再进行分析。当此标志启用(默认设置)时,排除性目标模式将应用于属于测试套件的测试,否则不会。在命令行中应用顶级切面时,关闭此标记非常有用:这样一来,它们就可以分析 test_suite 目标。
标记: loading_and_analysis
--[no]experimental_cancel_concurrent_tests 默认值:“false”
如果为 true,则 Blaze 将在第一次成功运行时取消同时运行测试。此参数必须与 --runs_per_test_detects_flakes 结合使用。
标记:affects_outputsloading_and_analysis
--experimental_extra_action_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths> 默认值:“”
已弃用,取而代之的是切面。过滤要调度 extra_action 的一组目标。
--[no]experimental_extra_action_top_level_only 默认值:“false”
已弃用,取而代之的是切面。仅为顶级目标安排 extra_actions。
--[no]experimental_fetch_all_coverage_outputs 默认值:“false”
如果为 true,则 Bazel 会在覆盖率运行期间为每个测试提取整个覆盖率数据目录。
标记:affects_outputsloading_and_analysis
--[no]experimental_generate_llvm_lcov 默认值:“false”
如果为 true,则针对 Clang 的覆盖率将生成 LCOV 报告。
标记:affects_outputsloading_and_analysis
--[no]experimental_j2objc_header_map 默认值:“true”
是否在 J2ObjC 转译的同时生成 J2ObjC 标头映射。
--[no]experimental_j2objc_shorter_header_path 默认值:“false”
是否使用较短的标头路径(使用“_ios”而不是“_j2objc”)生成。
标记: affects_outputs
--experimental_java_classpath=<off, javabuilder or bazel> 默认值:“javabuilder”
减少了 Java 编译的类路径。
--[no]experimental_limit_android_lint_to_android_constrained_java 默认值:“false”
将 --experimental_run_android_lint_on_java_rules 限制为与 Android 兼容的库。
标记: affects_outputs
--[no]experimental_run_android_lint_on_java_rules 默认值:“false”
是否验证 java_* 源代码。
标记: affects_outputs
--[no]explicit_java_test_deps 默认值:“false”
在 java_test 中明确指定 JUnit 或 Hamcrest 的依赖项,而不是意外从 TestRunner 的依赖项中获取。目前仅适用于 bazel。
--host_java_launcher=<a build target label> 默认值:参见说明
在构建期间执行的工具使用的 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”
直接从源代码编译 ijar。
--java_language_version=<a string> 默认值:“”
Java 语言版本
--java_launcher=<a build target label> 默认值:参见说明
构建 Java 二进制文件时使用的 Java 启动器。如果此标志设置为空字符串,系统会使用 JDK 启动器。“launcher”属性会替换此标志。
--java_runtime_version=<a string> 默认值:“local_jdk”
Java 运行时版本
已累计 --javacopt=<a string> 次多次使用
需要传递给 javac 的其他选项。
已累计 --jvmopt=<a string> 次多次使用
要传递给 Java 虚拟机的其他选项。这些选项将添加到每个 java_binary 目标的虚拟机启动选项中。
--legacy_main_dex_list_generator=<a build target label> 默认值:参见说明
指定用于生成在编译旧版 MultiDex 时必须位于主 dex 中的类列表的二进制文件。
--local_termination_grace_seconds=<an integer> 默认值:“15”
从因超时终止本地进程到强制关闭本地进程之间等待的时间。
--optimizing_dexer=<a build target label> 默认值:参见说明
指定在不进行分片的情况下用于执行 dex 处理的二进制文件。
--package_path=<colon-separated list of options> 默认值:“%workspace%”
以英文冒号分隔的列表,用于列出查找软件包的位置。以“%workspace%”开头的元素相对于封闭工作区。如果省略或为空,则默认值为“bazel info default-package-path”的输出。
已累计 --plugin=<a build target label> 次多次使用
要在 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
--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_SH 环境变量是在首次调用(启动 Bazel 服务器)时设置的,则 Bazel 会使用该变量。如果二者均未设置,则 Bazel 会根据运行的操作系统(Windows:c:/tools/msys64/usr/bin/bash.exe、FreeBSD:/usr/local/bin/bash;所有其他路径:/bin/bash)使用硬编码的默认路径。请注意,使用与 bash 不兼容的 shell 可能会导致生成的二进制文件构建失败或运行时失败。
标记: loading_and_analysis
--[no]show_loading_progress 默认值:“true”
如果启用,会导致 Bazel 输出“正在加载软件包:”消息。
已累计 --test_arg=<a string> 次多次使用
指定应传递给测试可执行文件的其他选项和参数。可以使用多次来指定多个参数。如果执行多个测试,则每个测试都将收到相同的参数。仅供“bazel test”命令使用。
--test_filter=<a string> 默认值:参见说明
指定要转发到测试框架的过滤器。用于限制测试的运行。请注意,这不会影响构建哪些目标。
--test_lang_filters=<comma-separated list of options> 默认值:“”
指定以逗号分隔的测试语言列表。您可以选择为每种语言添加前缀“-”,以指定排除的语言。系统只会查找使用指定语言编写的测试目标。每种语言使用的名称应与 *_test 规则中的语言前缀相同,例如“cc”、“java”、“py”等。此选项会影响 --build_tests_only 行为和测试命令。
--test_result_expiration=<an integer> 默认值:“-1”
此选项已被弃用,无效。
--[no]test_runner_fail_fast 默认值:“false”
将快速失败选项转发给测试运行程序。测试运行程序应在第一次失败时停止执行。
--test_sharding_strategy=<explicit, disabled or forced=k where k is the number of shards to enforce> 默认值:“露骨内容”
指定测试分片策略:“显式”,以便仅在存在“hard_count”BUILD 属性时才使用分片。“已停用”表示永不使用测试分片。“forced=k”会强制执行“k”分片用于测试,而不考虑“fragment_count”build 属性。
--test_size_filters=<comma-separated list of values: small, medium, large or enormous> 默认值:“”
指定以逗号分隔的测试尺寸列表。您可以选择在每个尺寸前面加上“-”,以指定排除的尺寸。系统只能找到至少包含 1 个已包含尺寸且不包含任何已排除尺寸的测试目标。此选项会影响 --build_tests_only 行为和测试命令。
--test_tag_filters=<comma-separated list of options> 默认值:“”
指定以逗号分隔的测试标记列表。您可以选择在每个代码前面加上“-”,以指定排除的代码。系统只能找到包含至少 1 个已包含标记且不包含任何已排除的标记的测试目标。此选项会影响 --build_tests_only 行为和测试命令。
--test_timeout_filters=<comma-separated list of values: short, moderate, long or eternal> 默认值:“”
指定以逗号分隔的测试超时列表。您可以选择性地在每个超时前面加上“-”,以指定排除的超时。系统只能找到包含至少一个包含的超时和不包含任何已排除的超时的测试目标。此选项会影响 --build_tests_only 行为和测试命令。
--tool_java_language_version=<a string> 默认值:“”
用于执行构建期间所需工具的 Java 语言版本
--tool_java_runtime_version=<a string> 默认值:“remotejdk_11”
用于在构建期间执行工具的 Java 运行时版本
--[no]use_ijars 默认值:“true”
启用后,此选项会导致 Java 编译使用接口 JAR。这样可以加快增量编译的速度,但错误消息可能会有所不同。

Canonicalize-flags 选项

build 继承所有选项。

出现在命令之前并由客户端解析的选项:
已累计 --distdir=<a path> 次多次使用
在访问网络下载归档文件之前,可在其他位置搜索归档文件。
标记: bazel_internal_configuration
如果设置此参数,当缓存命中时,代码库缓存将对文件进行硬链接,而不是进行复制。这是为了节省磁盘空间。
标记: bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 默认值:“0”
下载错误重试次数上限。如果设置为 0,系统会停用重试。
标记: experimental
--experimental_scale_timeouts=<a double> 默认值:“1.0”
按此系数扩缩 Starlark 代码库规则中的所有超时。通过这种方式,无需更改源代码,即可让外部代码库在速度低于规则作者预期的机器上运行。
标记:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 默认值:“8”
http 下载的尝试次数上限。
标记: bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 默认值:“0s”
http 下载重试的超时上限。如果值为 0,则未定义超时上限。
标记: bazel_internal_configuration
--http_timeout_scaling=<a double> 默认值:“1.0”
根据给定系数调整与 http 下载相关的所有超时时间
标记:bazel_internal_configuration
--repository_cache=<a path> 默认值:参见说明
指定在提取外部代码库期间获取的已下载值的缓存位置。使用空字符串作为参数会请求停用缓存,否则会使用默认值“<output_user_root>/cache/repos/v1”。
标记:bazel_internal_configuration
--[no]repository_disable_download 默认值:“false”
如果已设置此参数,则在代码库提取过程中,不允许使用 ctx.download{,_and_Extract} 进行下载。请注意,网络访问并非完全停用; ctx.execute 仍可以运行访问互联网的任意可执行文件。
标记: bazel_internal_configuration
用于控制构建执行的选项:
--gc_thrashing_threshold=<an integer in 0-100 range> 默认值:“100”
占用的空间百分比 (0-100),超过此值时,GcThrashingDetector 会将内存压力事件视为相对于其限值 (--gc_thrashing_limits)。如果设置为 100,则会停用 GcThrashingDetector。
标记: host_machine_resource_optimizations
用于控制命令输出的选项:
--[no]canonicalize_policy 默认值:“false”
在扩展和过滤后输出规范化政策。为了确保输出内容简洁明了,当此选项设置为 true 时,将不会显示规范化命令参数。请注意,--for_command 指定的命令会影响过滤后的政策,如果未指定任何命令,则默认命令为“build”。
标记:affects_outputsterminal_output
--[no]experimental_include_default_values 默认值:“false”
输出中是否包含设置为默认值的 Starlark 选项。
标记:affects_outputsterminal_output
此选项会影响 Starlark 语言或者 build 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API 的语义:
--[no]incompatible_config_setting_private_default_visibility 默认值:“false”
如果 incompatible_enforce_config_setting_visibility=false,则是空操作。否则,如果此标志为 false,则没有明确可见性属性的任何 config_setting 均为 //visibility:public。如果此标志为 true,config_setting 遵循与所有其他规则相同的可见性逻辑。请参阅 https://github.com/bazelbuild/bazel/issues/12933。
标记:loading_and_analysisincompatible_change
--[no]incompatible_enforce_config_setting_visibility 默认值:“true”
如果为 true,则强制执行 config_setting 可见性限制。如果为 false,则每个 config_setting 对每个目标都可见。请参阅 https://github.com/bazelbuild/bazel/issues/12932。
标记:loading_and_analysisincompatible_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> 默认值:“警告”
检查根模块中声明的直接“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 or error> 默认值:“update”
指定如何以及是否使用锁定文件。有效值包括,值为“update”以使用锁文件并在有更改时更新锁文件;值为“error”使用锁文件,但如果锁文件不是最新文件,则抛出错误;值为“off”既不对锁文件执行读取或写入操作,也抛出错误。
标记: loading_and_analysis
已累计 --override_module=<an equals-separated mapping of module name to path> 次多次使用
使用 <模块名称>=<路径> 形式的本地路径替换模块。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出
已累计 --registry=<a string> 次多次使用
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在之前的注册表中查找模块,只有在之前的注册表中缺失模块时,才会回退到后续注册表。
标记: changes_inputs
触发构建时间优化的选项:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 默认值:“1s:2,20s:3,1m:5”
限制,如果达到这些限制,则会导致 GcThrashingDetector 导致 Bazel 崩溃并出现 OOM。每个限制以 <period>:<count> 形式指定,其中 period 是时长,计数是正整数。如果在 <period> 内连续 <count> 次完整 GC 后仍被占用的到期空间(旧代堆)百分比超过 --gc_thrashing_threshold%,则会触发 OOM。可以用英文逗号分隔指定多个限制。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过 --skyframe_high_water_mark_threshold 设置的阈值,则当发生完整 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示完整 GC 事件永远不会触发丢弃操作。达到此上限后,当发生完整 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过由 --skyframe_high_water_mark_threshold 设置的阈值,当发生次要 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示次要 GC 事件永远不会触发丢弃操作。达到此上限后,当发生次要 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 默认值:“85”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量不低于此阈值,则会丢弃不必要的临时 Skyframe 状态。当 GC 抖动 (i) 是由此临时状态的内存使用引起的且 (ii) 在需要时比重构状态的成本更高时,即可降低 GC 抖动对实际使用时间的影响。
标记: host_machine_resource_optimizations
影响日志记录的详细程度、格式或位置的选项:
--[no]experimental_command_profile 默认值:“false”
将 Java 飞行记录器 CPU 配置文件记录到输出基本目录中的 profile.jfr 文件中。此标志的语法和语义将来可能会更改,以支持不同的配置文件类型或输出格式;使用时需自行承担风险。
--[no]experimental_record_metrics_for_all_mnemonics 默认值:“false”
默认情况下,已执行操作数量最多的 20 种助记符不得超过操作类型的数量。设置此选项后,系统会写入所有助记符的统计信息。
用于指定或更改不属于其他类别的 Bazel 命令的通用输入的选项:
--experimental_resolved_file_instead_of_workspace=<a string> 默认值:“”
如果非空文件会读取指定的已解析文件,而不是 WORKSPACE 文件
标记: changes_inputs
--for_command=<a string> 默认值:“build”
应对其选项进行规范化的命令。
标记:affects_outputsterminal_output
--invocation_policy=<a string> 默认值:“”
将调用政策应用于要规范化的选项。
标记:affects_outputsterminal_output
远程缓存和执行选项:
--experimental_downloader_config=<a string> 默认值:参见说明
指定要用于配置远程下载程序的文件。此文件由多个行组成,其中每个行以指令(“allow”“block”或“rewrite”)开头,后跟主机名(分别用于“allow”和“block”)或两种格式,一种用于匹配,另一种用作替换网址,反向引用从“$1”开始。可以针对同一个网址提供多个“rewrite”指令,在这种情况下,系统会返回多个网址。
--experimental_worker_for_repo_fetching=<off, platform or virtual> 默认值:“关闭”
用于代码库提取的线程模式。如果设置为“off”,则不使用任何工作线程,并且 Repo 提取功能可能会重启。否则,如果设置为“platform”,则使用平台线程(即操作系统线程),如果设置为“virtual”,则使用虚拟线程。
其他选项,未以其他方式分类:
已累计 --deleted_packages=<comma-separated list of package names> 次多次使用
以英文逗号分隔的软件包名称列表,构建系统将其视为不存在的软件包名称,即使它们在软件包路径上的某个位置可见。 当删除现有软件包“x”的子软件包“x/y”时,使用此选项。例如,删除客户端中的 x/y/BUILD 后,如果构建系统遇到“//x:y/z”标签(如果其他 package_path 条目仍然提供该标签),则可能会收到提示。指定 --deleted_packages x/y 可避免此问题。
已累计 --override_repository=<an equals-separated mapping of repository name to path> 次多次使用
使用 <repo name>=<path> 形式的本地路径替换代码库。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出
--package_path=<colon-separated list of options> 默认值:“%workspace%”
以英文冒号分隔的列表,用于列出查找软件包的位置。以“%workspace%”开头的元素相对于封闭工作区。如果省略或为空,则默认值为“bazel info default-package-path”的输出。
--[no]show_loading_progress 默认值:“true”
如果启用,会导致 Bazel 输出“正在加载软件包:”消息。

清理选项

build 继承所有选项。

出现在命令之前并由客户端解析的选项:
已累计 --distdir=<a path> 次多次使用
在访问网络下载归档文件之前,可在其他位置搜索归档文件。
标记: bazel_internal_configuration
如果设置此参数,当缓存命中时,代码库缓存将对文件进行硬链接,而不是进行复制。这是为了节省磁盘空间。
标记: bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 默认值:“0”
下载错误重试次数上限。如果设置为 0,系统会停用重试。
标记: experimental
--experimental_scale_timeouts=<a double> 默认值:“1.0”
按此系数扩缩 Starlark 代码库规则中的所有超时。通过这种方式,无需更改源代码,即可让外部代码库在速度低于规则作者预期的机器上运行。
标记:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 默认值:“8”
http 下载的尝试次数上限。
标记: bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 默认值:“0s”
http 下载重试的超时上限。如果值为 0,则未定义超时上限。
标记: bazel_internal_configuration
--http_timeout_scaling=<a double> 默认值:“1.0”
根据给定系数调整与 http 下载相关的所有超时时间
标记:bazel_internal_configuration
--repository_cache=<a path> 默认值:参见说明
指定在提取外部代码库期间获取的已下载值的缓存位置。使用空字符串作为参数会请求停用缓存,否则会使用默认值“<output_user_root>/cache/repos/v1”。
标记:bazel_internal_configuration
--[no]repository_disable_download 默认值:“false”
如果已设置此参数,则在代码库提取过程中,不允许使用 ctx.download{,_and_Extract} 进行下载。请注意,网络访问并非完全停用; ctx.execute 仍可以运行访问互联网的任意可执行文件。
标记: bazel_internal_configuration
用于控制构建执行的选项:
--gc_thrashing_threshold=<an integer in 0-100 range> 默认值:“100”
占用的空间百分比 (0-100),超过此值时,GcThrashingDetector 会将内存压力事件视为相对于其限值 (--gc_thrashing_limits)。如果设置为 100,则会停用 GcThrashingDetector。
标记: host_machine_resource_optimizations
用于控制命令输出的选项:
--[no]async 默认值:“false”
如果为 true,则输出清理是异步进行的。此命令完成后,您可以放心地在同一客户端中执行新命令,即使删除操作可能会在后台继续进行。
标记: host_machine_resource_optimizations
--[no]expunge 默认值:“false”
如果为 true,则 clean 会移除此 bazel 实例的整个工作树(包括 bazel 创建的所有临时文件和 build 输出文件),并在 bazel 服务器运行时停止该服务器。
标记: host_machine_resource_optimizations
--expunge_async
如果指定,则以异步方式清除此 bazel 实例的整个工作树(包括 bazel 创建的所有临时文件和 build 输出文件),并在 bazel 服务器运行时停止运行。此命令完成后,您可以放心地在同一客户端中执行新命令,即使删除操作可能会在后台继续进行。
扩展为:
  --expunge
  --async

标记: host_machine_resource_optimizations
与 Bzlmod 输出和语义相关的选项:
已累计 --allow_yanked_versions=<a string> 次多次使用
以“<module1>@<version1>,<module2>@<version2>”的形式指定模块版本,即使这些版本在来源的注册表中进行了声明(如果它们并非来自 NonRegistryOverride),也允许出现在已解析的依赖关系图中。否则,拉取版本会导致解析失败。您还可以使用“BZLMOD_ALLOW_YANKED_VERSIONS”环境变量定义允许的拖动版本。您可以使用关键字“all”停用此检查(不推荐)。
标记: loading_and_analysis
--check_bazel_compatibility=<error, warning or off> 默认值:“error”
检查 Bazel 模块的 Bazel 版本兼容性。有效值包括“error”(可上报为解决失败),“off”可停用检查,值为“warning”(用于在检测到不匹配时输出警告)。
标记: loading_and_analysis
--check_direct_dependencies=<off, warning or error> 默认值:“警告”
检查根模块中声明的直接“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 or error> 默认值:“update”
指定如何以及是否使用锁定文件。有效值包括,值为“update”以使用锁文件并在有更改时更新锁文件;值为“error”使用锁文件,但如果锁文件不是最新文件,则抛出错误;值为“off”既不对锁文件执行读取或写入操作,也抛出错误。
标记: loading_and_analysis
已累计 --override_module=<an equals-separated mapping of module name to path> 次多次使用
使用 <模块名称>=<路径> 形式的本地路径替换模块。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出
已累计 --registry=<a string> 次多次使用
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在之前的注册表中查找模块,只有在之前的注册表中缺失模块时,才会回退到后续注册表。
标记: changes_inputs
触发构建时间优化的选项:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 默认值:“1s:2,20s:3,1m:5”
限制,如果达到这些限制,则会导致 GcThrashingDetector 导致 Bazel 崩溃并出现 OOM。每个限制以 <period>:<count> 形式指定,其中 period 是时长,计数是正整数。如果在 <period> 内连续 <count> 次完整 GC 后仍被占用的到期空间(旧代堆)百分比超过 --gc_thrashing_threshold%,则会触发 OOM。可以用英文逗号分隔指定多个限制。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过 --skyframe_high_water_mark_threshold 设置的阈值,则当发生完整 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示完整 GC 事件永远不会触发丢弃操作。达到此上限后,当发生完整 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过由 --skyframe_high_water_mark_threshold 设置的阈值,当发生次要 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示次要 GC 事件永远不会触发丢弃操作。达到此上限后,当发生次要 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 默认值:“85”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量不低于此阈值,则会丢弃不必要的临时 Skyframe 状态。当 GC 抖动 (i) 是由此临时状态的内存使用引起的且 (ii) 在需要时比重构状态的成本更高时,即可降低 GC 抖动对实际使用时间的影响。
标记: host_machine_resource_optimizations
影响日志记录的详细程度、格式或位置的选项:
--[no]experimental_command_profile 默认值:“false”
将 Java 飞行记录器 CPU 配置文件记录到输出基本目录中的 profile.jfr 文件中。此标志的语法和语义将来可能会更改,以支持不同的配置文件类型或输出格式;使用时需自行承担风险。
--[no]experimental_record_metrics_for_all_mnemonics 默认值:“false”
默认情况下,已执行操作数量最多的 20 种助记符不得超过操作类型的数量。设置此选项后,系统会写入所有助记符的统计信息。
用于指定或更改不属于其他类别的 Bazel 命令的通用输入的选项:
--experimental_resolved_file_instead_of_workspace=<a string> 默认值:“”
如果非空,则读取指定的已解析文件而不是 WORKSPACE 文件
标记: changes_inputs
远程缓存和执行选项:
--experimental_downloader_config=<a string> 默认值:参见说明
指定要用于配置远程下载程序的文件。此文件由多个行组成,其中每个行以指令(“allow”“block”或“rewrite”)开头,后跟主机名(分别用于“allow”和“block”)或两种格式,一种用于匹配,另一种用作替换网址,反向引用从“$1”开始。可以针对同一个网址提供多个“rewrite”指令,在这种情况下,系统会返回多个网址。
--experimental_worker_for_repo_fetching=<off, platform or virtual> 默认值:“关闭”
用于代码库提取的线程模式。如果设置为“off”,则不使用任何工作线程,并且 Repo 提取功能可能会重启。否则,如果设置为“platform”,则使用平台线程(即操作系统线程),如果设置为“virtual”,则使用虚拟线程。
其他选项,未以其他方式分类:
已累计 --override_repository=<an equals-separated mapping of repository name to path> 次多次使用
使用 <repo name>=<path> 形式的本地路径替换代码库。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出

配置选项

保修选项

继承 test 的所有选项。

出现在命令之前并由客户端解析的选项:
已累计 --distdir=<a path> 次多次使用
在访问网络下载归档文件之前,可在其他位置搜索归档文件。
标记: bazel_internal_configuration
如果设置此参数,当缓存命中时,代码库缓存将对文件进行硬链接,而不是进行复制。这是为了节省磁盘空间。
标记: bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 默认值:“0”
下载错误重试次数上限。如果设置为 0,系统会停用重试。
标记: experimental
--experimental_scale_timeouts=<a double> 默认值:“1.0”
按此系数扩缩 Starlark 代码库规则中的所有超时。通过这种方式,无需更改源代码,即可让外部代码库在速度低于规则作者预期的机器上运行。
标记:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 默认值:“8”
http 下载的尝试次数上限。
标记: bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 默认值:“0s”
http 下载重试的超时上限。如果值为 0,则未定义超时上限。
标记: bazel_internal_configuration
--http_timeout_scaling=<a double> 默认值:“1.0”
根据给定系数调整与 http 下载相关的所有超时时间
标记:bazel_internal_configuration
--repository_cache=<a path> 默认值:参见说明
指定在提取外部代码库期间获取的已下载值的缓存位置。使用空字符串作为参数会请求停用缓存,否则会使用默认值“<output_user_root>/cache/repos/v1”。
标记:bazel_internal_configuration
--[no]repository_disable_download 默认值:“false”
如果已设置此参数,则在代码库提取过程中,不允许使用 ctx.download{,_and_Extract} 进行下载。请注意,网络访问并非完全停用; ctx.execute 仍可以运行访问互联网的任意可执行文件。
标记: bazel_internal_configuration
用于控制构建执行的选项:
--gc_thrashing_threshold=<an integer in 0-100 range> 默认值:“100”
占用的空间百分比 (0-100),超过此值时,GcThrashingDetector 会将内存压力事件视为相对于其限值 (--gc_thrashing_limits)。如果设置为 100,则会停用 GcThrashingDetector。
标记: host_machine_resource_optimizations
与 Bzlmod 输出和语义相关的选项:
已累计 --allow_yanked_versions=<a string> 次多次使用
以“<module1>@<version1>,<module2>@<version2>”的形式指定模块版本,即使这些版本在来源的注册表中进行了声明(如果它们并非来自 NonRegistryOverride),也允许出现在已解析的依赖关系图中。否则,拉取版本会导致解析失败。您还可以使用“BZLMOD_ALLOW_YANKED_VERSIONS”环境变量定义允许的拖动版本。您可以使用关键字“all”停用此检查(不推荐)。
标记: loading_and_analysis
--check_bazel_compatibility=<error, warning or off> 默认值:“error”
检查 Bazel 模块的 Bazel 版本兼容性。有效值包括“error”(可上报为解决失败),“off”可停用检查,值为“warning”(用于在检测到不匹配时输出警告)。
标记: loading_and_analysis
--check_direct_dependencies=<off, warning or error> 默认值:“警告”
检查根模块中声明的直接“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 or error> 默认值:“update”
指定如何以及是否使用锁定文件。有效值包括,值为“update”以使用锁文件并在有更改时更新锁文件;值为“error”使用锁文件,但如果锁文件不是最新文件,则抛出错误;值为“off”既不对锁文件执行读取或写入操作,也抛出错误。
标记: loading_and_analysis
已累计 --override_module=<an equals-separated mapping of module name to path> 次多次使用
使用 <模块名称>=<路径> 形式的本地路径替换模块。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出
已累计 --registry=<a string> 次多次使用
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在之前的注册表中查找模块,只有在之前的注册表中缺失模块时,才会回退到后续注册表。
标记: changes_inputs
触发构建时间优化的选项:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 默认值:“1s:2,20s:3,1m:5”
限制,如果达到这些限制,则会导致 GcThrashingDetector 导致 Bazel 崩溃并出现 OOM。每个限制以 <period>:<count> 形式指定,其中 period 是时长,计数是正整数。如果在 <period> 内连续 <count> 次完整 GC 后仍被占用的到期空间(旧代堆)百分比超过 --gc_thrashing_threshold%,则会触发 OOM。可以用英文逗号分隔指定多个限制。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过 --skyframe_high_water_mark_threshold 设置的阈值,则当发生完整 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示完整 GC 事件永远不会触发丢弃操作。达到此上限后,当发生完整 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过由 --skyframe_high_water_mark_threshold 设置的阈值,当发生次要 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示次要 GC 事件永远不会触发丢弃操作。达到此上限后,当发生次要 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 默认值:“85”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量不低于此阈值,则会丢弃不必要的临时 Skyframe 状态。当 GC 抖动 (i) 是由此临时状态的内存使用引起的且 (ii) 在需要时比重构状态的成本更高时,即可降低 GC 抖动对实际使用时间的影响。
标记: host_machine_resource_optimizations
影响日志记录的详细程度、格式或位置的选项:
--[no]experimental_command_profile 默认值:“false”
将 Java 飞行记录器 CPU 配置文件记录到输出基本目录中的 profile.jfr 文件中。此标志的语法和语义将来可能会更改,以支持不同的配置文件类型或输出格式;使用时需自行承担风险。
--[no]experimental_record_metrics_for_all_mnemonics 默认值:“false”
默认情况下,已执行操作数量最多的 20 种助记符不得超过操作类型的数量。设置此选项后,系统会写入所有助记符的统计信息。
用于指定或更改不属于其他类别的 Bazel 命令的通用输入的选项:
--experimental_resolved_file_instead_of_workspace=<a string> 默认值:“”
如果非空,则读取指定的已解析文件而不是 WORKSPACE 文件
标记: changes_inputs
远程缓存和执行选项:
--experimental_downloader_config=<a string> 默认值:参见说明
指定要用于配置远程下载程序的文件。此文件由多个行组成,其中每个行以指令(“allow”“block”或“rewrite”)开头,后跟主机名(分别用于“allow”和“block”)或两种格式,一种用于匹配,另一种用作替换网址,反向引用从“$1”开始。可以针对同一个网址提供多个“rewrite”指令,在这种情况下,系统会返回多个网址。
--experimental_worker_for_repo_fetching=<off, platform or virtual> 默认值:“关闭”
用于代码库提取的线程模式。如果设置为“off”,则不使用任何工作线程,并且 Repo 提取功能可能会重启。否则,如果设置为“platform”,则使用平台线程(即操作系统线程),如果设置为“virtual”,则使用虚拟线程。
其他选项,未以其他方式分类:
已累计 --override_repository=<an equals-separated mapping of repository name to path> 次多次使用
使用 <repo name>=<path> 形式的本地路径替换代码库。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出

Cquery 选项

继承 test 的所有选项。

出现在命令之前并由客户端解析的选项:
已累计 --distdir=<a path> 次多次使用
在访问网络下载归档文件之前,可在其他位置搜索归档文件。
标记: bazel_internal_configuration
如果设置此参数,当缓存命中时,代码库缓存将对文件进行硬链接,而不是进行复制。这是为了节省磁盘空间。
标记: bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 默认值:“0”
下载错误重试次数上限。如果设置为 0,系统会停用重试。
标记: experimental
--experimental_scale_timeouts=<a double> 默认值:“1.0”
按此系数扩缩 Starlark 代码库规则中的所有超时。通过这种方式,无需更改源代码,即可让外部代码库在速度低于规则作者预期的机器上运行。
标记:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 默认值:“8”
http 下载的尝试次数上限。
标记: bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 默认值:“0s”
http 下载重试的超时上限。如果值为 0,则未定义超时上限。
标记: bazel_internal_configuration
--http_timeout_scaling=<a double> 默认值:“1.0”
根据给定系数调整与 http 下载相关的所有超时时间
标记:bazel_internal_configuration
--repository_cache=<a path> 默认值:参见说明
指定在提取外部代码库期间获取的已下载值的缓存位置。使用空字符串作为参数会请求停用缓存,否则会使用默认值“<output_user_root>/cache/repos/v1”。
标记:bazel_internal_configuration
--[no]repository_disable_download 默认值:“false”
如果已设置此参数,则在代码库提取过程中,不允许使用 ctx.download{,_and_Extract} 进行下载。请注意,网络访问并非完全停用; ctx.execute 仍可以运行访问互联网的任意可执行文件。
标记: bazel_internal_configuration
用于控制构建执行的选项:
--gc_thrashing_threshold=<an integer in 0-100 range> 默认值:“100”
占用的空间百分比 (0-100),超过此值时,GcThrashingDetector 会将内存压力事件视为相对于其限值 (--gc_thrashing_limits)。如果设置为 100,则会停用 GcThrashingDetector。
标记: host_machine_resource_optimizations
与查询输出和语义相关的选项:
--aspect_deps=<off, conservative or precise> 默认值:“保守型”
当输出格式为 {xml,proto,record} 之一时,如何解析切面依赖项。“off”表示不解析任何切面依赖项;“保守”(默认值)表示添加所有已声明的切面依赖项,无论它们是否获得了直接依赖项的规则类,“确切”表示仅添加在直接依赖项的规则类下可能处于活动状态的那些方面。请注意,精确模式需要加载其他软件包来评估单个目标,因此该模式比其他模式慢。另请注意,即使是精确模式也不是完全精确:是否计算某个方面的决定是在分析阶段决定的,而该阶段不会在“bazel 查询”期间运行。
标记: build_file_semantics
--[no]consistent_labels 默认值:“false”
启用后,每个查询命令都会发出标签,就像是通过应用于 <code>Label</code> 实例的 Starlark <code>str</code> 函数来发出。这对于需要匹配不同查询命令的输出和/或由规则发出的标签输出的工具非常有用。如果未启用,输出格式设置工具可以自由发出明显的代码库名称(相对于主代码库),以使输出更易于阅读。
标记: 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:no-op(始终遵循切面)。
标记: 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、transition、proto、streamed_proto、jsonproto。如果您选择“transitions”,还需要指定 --transitions=(lite|full) 选项。
标记: terminal_output
--[no]proto:default_values 默认值:“true”
如果为 true,则会包含未在 BUILD 文件中明确指定值的属性;否则,系统会省略这些属性。此选项适用于 --output=proto
标记:terminal_output
--[no]proto:definition_stack 默认值:“false”
填充 Definition_stack proto 字段,该字段会在定义规则的类时记录每个规则实例的 Starlark 调用堆栈。
标记: terminal_output
--[no]proto:flatten_selects 默认值:“true”
启用后, select() 创建的可配置属性将展平。对于列表类型,扁平化表示形式是一个列表,其中每个选定映射的值都正好包含一次。标量类型会展平为 null。
标记: build_file_semantics
--[no]proto:include_attribute_source_aspects 默认值:“false”
使用来源切面填充每个 Attribute 的 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_inputs_and_outputs 默认值:“true”
是否填充 rule_input 和 rule_output 字段。
标记: terminal_output
--query_file=<a string> 默认值:“”
如果设置此参数,查询将从此处指定的文件中读取查询,而不是在命令行中读取。在此处指定文件以及命令行查询会出错。
标记: changes_inputs
--[no]relative_locations 默认值:“false”
如果为 true,则 xml 和 proto 输出中 BUILD 文件的位置将是相对位置。默认情况下,位置输出是绝对路径,不同机器之间会不一致。您可以将此选项设置为 true,以便在不同机器上获得一致的结果。
标记: terminal_output
--show_config_fragments=<off, direct or transitive> 默认值:“关闭”
显示规则及其传递依赖项所需的配置片段。这对于评估可以对配置的目标图表进行修剪程度非常有用。
标记: affects_outputs
--starlark:expr=<a string> 默认值:“”
Starlark 表达式,用于在 cquery 的 --output=starlark 模式下设置每个已配置目标的格式。已配置的目标绑定到“目标”。如果 --starlark:expr 和 --starlark:file 都未指定,则此选项将默认为“str(target.label)”。同时指定 --starlark:expr 和 --starlark:file 是错误的。
标记: terminal_output
--starlark:file=<a string> 默认值:“”
一个文件的名称,该文件定义了一个名为“format”的 Starlark 函数,该函数有一个参数,此参数会应用于每个已配置的目标,以将其格式设置为字符串。同时指定 --starlark:expr 和 --starlark:file 是错误的。如需了解详情,请参阅有关 --output=starlark 的帮助。
标记: terminal_output
--[no]tool_deps 默认值:“true”
查询:如果停用,对“exec configuration”的依赖关系将不会包含在执行查询的依赖关系图中。“exec configuration”依赖项边缘(例如从任何“proto_library”规则到协议编译器的依赖项)通常指向构建期间执行的工具,而不是同一“目标”程序的一部分。 Cquery:如果停用,则从发现了此已配置目标的顶级目标的执行转换中过滤掉所有已配置的目标。这意味着,如果顶级目标在目标配置中,则系统只会返回同样位于目标配置中的已配置目标。如果顶级目标位于 exec 配置中,则仅返回 exec 配置的目标。此选项不会排除已解析的工具链。
标记: build_file_semantics
--transitions=<full, lite or none> 默认值:“无”
cquery 输出转换信息所用的格式。
标记: affects_outputs
--universe_scope=<comma-separated list of options> 默认值:“”
一组以英文逗号分隔的目标模式(加法和减法)。查询可以在由指定目标的传递闭包定义的宇宙中执行。此选项用于 query 和 cquery 命令。 对于 cquery,此选项的输入是构建所有答案的目标,因此此选项可能会影响配置和转换。如果未指定此选项,则假定顶级目标为从查询表达式解析的目标。注意:对于 cquery,如果无法使用顶级选项构建从查询表达式解析的目标,则不指定此选项可能会导致构建中断。
标记: loading_and_analysis
与 Bzlmod 输出和语义相关的选项:
已累计 --allow_yanked_versions=<a string> 次多次使用
以“<module1>@<version1>,<module2>@<version2>”的形式指定模块版本,即使这些版本在来源的注册表中进行了声明(如果它们并非来自 NonRegistryOverride),也允许出现在已解析的依赖关系图中。否则,拉取版本会导致解析失败。您还可以使用“BZLMOD_ALLOW_YANKED_VERSIONS”环境变量定义允许的拖动版本。您可以使用关键字“all”停用此检查(不推荐)。
标记: loading_and_analysis
--check_bazel_compatibility=<error, warning or off> 默认值:“error”
检查 Bazel 模块的 Bazel 版本兼容性。有效值包括“error”(可上报为解决失败),“off”可停用检查,值为“warning”(用于在检测到不匹配时输出警告)。
标记: loading_and_analysis
--check_direct_dependencies=<off, warning or error> 默认值:“警告”
检查根模块中声明的直接“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 or error> 默认值:“update”
指定如何以及是否使用锁定文件。有效值包括,值为“update”以使用锁文件并在有更改时更新锁文件;值为“error”使用锁文件,但如果锁文件不是最新文件,则抛出错误;值为“off”既不对锁文件执行读取或写入操作,也抛出错误。
标记: loading_and_analysis
已累计 --override_module=<an equals-separated mapping of module name to path> 次多次使用
使用 <模块名称>=<路径> 形式的本地路径替换模块。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出
已累计 --registry=<a string> 次多次使用
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在之前的注册表中查找模块,只有在之前的注册表中缺失模块时,才会回退到后续注册表。
标记: changes_inputs
触发构建时间优化的选项:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 默认值:“1s:2,20s:3,1m:5”
限制,如果达到这些限制,则会导致 GcThrashingDetector 导致 Bazel 崩溃并出现 OOM。每个限制以 <period>:<count> 形式指定,其中 period 是时长,计数是正整数。如果在 <period> 内连续 <count> 次完整 GC 后仍被占用的到期空间(旧代堆)百分比超过 --gc_thrashing_threshold%,则会触发 OOM。可以用英文逗号分隔指定多个限制。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过 --skyframe_high_water_mark_threshold 设置的阈值,则当发生完整 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示完整 GC 事件永远不会触发丢弃操作。达到此上限后,当发生完整 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过由 --skyframe_high_water_mark_threshold 设置的阈值,当发生次要 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示次要 GC 事件永远不会触发丢弃操作。达到此上限后,当发生次要 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 默认值:“85”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量不低于此阈值,则会丢弃不必要的临时 Skyframe 状态。当 GC 抖动 (i) 是由此临时状态的内存使用引起的且 (ii) 在需要时比重构状态的成本更高时,即可降低 GC 抖动对实际使用时间的影响。
标记: host_machine_resource_optimizations
影响日志记录的详细程度、格式或位置的选项:
--[no]experimental_command_profile 默认值:“false”
将 Java 飞行记录器 CPU 配置文件记录到输出基本目录中的 profile.jfr 文件中。此标志的语法和语义将来可能会更改,以支持不同的配置文件类型或输出格式;使用时需自行承担风险。
--[no]experimental_record_metrics_for_all_mnemonics 默认值:“false”
默认情况下,已执行操作数量最多的 20 种助记符不得超过操作类型的数量。设置此选项后,系统会写入所有助记符的统计信息。
用于指定或更改不属于其他类别的 Bazel 命令的通用输入的选项:
--experimental_resolved_file_instead_of_workspace=<a string> 默认值:“”
如果非空,则读取指定的已解析文件而不是 WORKSPACE 文件
标记: changes_inputs
远程缓存和执行选项:
--experimental_downloader_config=<a string> 默认值:参见说明
指定要用于配置远程下载程序的文件。此文件由多个行组成,其中每个行以指令(“allow”“block”或“rewrite”)开头,后跟主机名(分别用于“allow”和“block”)或两种格式,一种用于匹配,另一种用作替换网址,反向引用从“$1”开始。可以针对同一个网址提供多个“rewrite”指令,在这种情况下,系统会返回多个网址。
--experimental_worker_for_repo_fetching=<off, platform or virtual> 默认值:“关闭”
用于代码库提取的线程模式。如果设置为“off”,则不使用任何工作线程,并且 Repo 提取功能可能会重启。否则,如果设置为“platform”,则使用平台线程(即操作系统线程),如果设置为“virtual”,则使用虚拟线程。
其他选项,未以其他方式分类:
已累计 --override_repository=<an equals-separated mapping of repository name to path> 次多次使用
使用 <repo name>=<path> 形式的本地路径替换代码库。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出
用于控制构建执行的选项:
是否通过直接文件系统调用来创建符号链接树
标记:loading_and_analysisexecutionexperimental
--[no]experimental_persistent_aar_extractor 默认值:“false”
使用工作器启用永久性 aar 提取器。
标记: execution
--[no]experimental_remotable_source_manifests 默认值:“false”
是否将源清单操作设为可远程执行
标记:loading_and_analysisexecutionexperimental
--[no]experimental_split_coverage_postprocessing 默认值:“false”
如果为 true,则 Bazel 会在新生成中运行覆盖率后处理以进行测试。
标记: execution
--[no]experimental_strict_fileset_output 默认值:“false”
如果启用此选项,文件集会将所有输出工件视为常规文件。它们不会遍历目录,也不会对符号链接敏感。
标记: execution
--modify_execution_info=<regex=[+-]key,regex=[+-]key,...> 默认值:“”
根据操作助记符,在操作的执行信息中添加或移除键。仅适用于支持执行信息的操作。许多常用操作都支持执行信息,例如 Genrule、CppCompile、Javac、StarlarkAction、TestRunner。在指定多个值时,顺序很重要,因为多个正则表达式可能适用于同一助记符。 语法:“regex=[+-]key,regex=[+-]key,...”。 示例:'.*=+x,.*=-y,.*=+z' 在所有操作的执行信息中分别添加“x”和“z”,以及从中移除“y”。“Genrule=+Require-x”会在所有 Genrule 操作的执行信息中添加“Needs-x”。“(?!Genrule).*=- requires-x”会从所有非 Genrule 操作的执行信息中移除“Needs-x”。
标记:executionaffects_outputsloading_and_analysis
--persistent_android_dex_desugar
使用 worker 实现永久性 Android dex 和脱糖操作。
扩展为:
  --internal_persistent_android_dex_desugar
  --strategy=Desugar=worker
  --strategy=DexBuilder=worker

标记:host_machine_resource_optimizationsexecution
--persistent_android_resource_processor
使用工作器启用永久性 Android 资源处理器。
扩展为:
--internal_persistent_busybox_tools
--strategy=AaptPackage=worker
--strategy=AndroidResourceParser=worker
--strategy=AndroidResourceValidator=worker
--strategy=AndroidResourceCompiler=worker
--strategy=RClassGenerator=worker
--strategy=AndroidResourceLink=worker
--strategy=AndroidAapt2=worker
--strategy=AndroidAssetMerger=worker
--strategy=AndroidResourceMerger=worker
--strategy=AndroidCompiledResourceMerger=worker
--strategy=ManifestMerger=worker
--strategy=AndroidManifestMerger=worker
--strategy=ManifestMerger=worker
--strategy=AndroidManifestMerger=worker
--strategy=Aapt2Optimize=worker
--strategy=Aapt2Optimize=worker
--strategy=Aapt2Optimize=worker
--strategy=Aapt2Optimize=worker
--strategy=AARGenerator=worker--strategy=ProcessDatabinding=worker--strategy=GenerateDataBindingBaseClasses=workerhost_machine_resource_optimizationsexecution
--persistent_multiplex_android_dex_desugar
使用 worker 启用永久性多路复用 Android dex 和脱糖操作。
扩展为:
  --persistent_android_dex_desugar
  --internal_persistent_multiplex_android_dex_desugar

标记:host_machine_resource_optimizationsexecution
--persistent_multiplex_android_resource_processor
使用工作器启用永久性多路复用 Android 资源处理器。
扩展为:
--persistent_android_resource_processor
--modify_execution_info=AaptPackage=+supports-multiplex-workers
--modify_execution_info=AndroidResourceParser=+supports-multiplex-workers
--modify_execution_info=AndroidResourceValidator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceCompiler=+supports-multiplex-workers
--modify_execution_info=RClassGenerator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceLink=+supports-multiplex-workers
--modify_execution_info=AndroidAapt2=+supports-multiplex-workers
--modify_execution_info=AndroidAssetMerger=+supports-multiplex-workers
--modify_execution_info=AndroidResourceMerger=+supports-multiplex-workers
--modify_execution_info=AndroidCompiledResourceMerger=+supports-multiplex-workers
--modify_execution_info=ManifestMerger=+supports-multiplex-workers
--modify_execution_info=AndroidManifestMerger=+supports-multiplex-workers
//--modify_execution_info=Aapt2Optimize=+supports-multiplex-workers
--modify_execution_info=Aapt2Optimize=+supports-multiplex-workers
--modify_execution_info=Aapt2Optimize=+supports-multiplex-workers
--modify_execution_info=AARGenerator=+supports-multiplex-workershost_machine_resource_optimizationsexecution
--persistent_multiplex_android_tools
启用永久性和多路复用 Android 工具(dexing、脱糖、资源处理)。
扩展为:
  --internal_persistent_multiplex_busybox_tools
  --persistent_multiplex_android_resource_processor
  --persistent_multiplex_android_dex_desugar

标记:host_machine_resource_optimizationsexecution
--[no]use_target_platform_for_tests 默认值:“false”
如果为 true,则 Bazel 将使用目标平台(而不是测试执行组)来运行测试。
标记: execution
用于配置用于执行操作的工具链的选项:
--android_compiler=<a string> 默认值:参见说明
Android 目标编译器。
标记:affects_outputsloading_and_analysisloses_incremental_state
--android_crosstool_top=<a build target label> 默认值:“//external:android/crosstool”
用于 Android build 的 C++ 编译器的位置。
标记:affects_outputschanges_inputsloading_and_analysisloses_incremental_state
--android_grte_top=<a label> 默认值:参见说明
Android 目标 grte_top。
标记:changes_inputsloading_and_analysisloses_incremental_state
--android_manifest_merger=<legacy, android or force_android> 默认值:“android”
选择要用于 android_binary 规则的清单合并程序。用于帮助从旧版合并程序过渡到 Android 清单合并程序的标志。
标记:affects_outputsloading_and_analysisloses_incremental_state
--android_platforms=<a build target label> 默认值:“”
设置 android_binary 目标使用的平台。如果指定了多个平台,则二进制文件是胖 APK,其中包含每个指定目标平台的原生二进制文件。
标记:changes_inputsloading_and_analysisloses_incremental_state
--android_sdk=<a build target label> 默认值:“@bazel_tools//tools/android:sdk”
指定用于构建 Android 应用的 Android SDK/平台。
标记:changes_inputsloading_and_analysisloses_incremental_state
--apple_crosstool_top=<a build target label> 默认值:“@bazel_tools//tools/cpp:toolchain”
要在 Apple 和 Objc 规则及其依赖项中使用的 crosstool 软件包的标签。
标记:loses_incremental_statechanges_inputs
--cc_output_directory_tag=<a string> 默认值:“”
指定要添加到配置目录的后缀。
标记: affects_outputs
--compiler=<a string> 默认值:参见说明
用于编译目标的 C++ 编译器。
标记:loading_and_analysisexecution
--coverage_output_generator=<a build target label> 默认值:“@bazel_tools//tools/test:lcov_merger”
用于对原始覆盖率报告进行后处理的二进制文件的位置。目前必须是包含单个文件(即二进制文件)的文件组。默认为“//tools/test:lcov_merger”。
标记:changes_inputsaffects_outputsloading_and_analysis
--coverage_report_generator=<a build target label> 默认值:“@bazel_tools//tools/test:coverage_report_generator”
用于生成覆盖率报告的二进制文件的位置。目前必须是包含单个文件(即二进制文件)的文件组。默认值为“//tools/test:coverage_report_generator”。
标记:changes_inputsaffects_outputsloading_and_analysis
--coverage_support=<a build target label> 默认值:“@bazel_tools//tools/test:coverage_support”
为收集代码覆盖率的测试操作输入所需的支持文件的位置。默认为“//tools/test:coverage_support”。
标记:changes_inputsaffects_outputsloading_and_analysis
--crosstool_top=<a build target label> 默认值:“@bazel_tools//tools/cpp:toolchain”
用于编译 C++ 代码的 crosstool 软件包标签。
标记:loading_and_analysischanges_inputsaffects_outputs
--custom_malloc=<a build target label> 默认值:参见说明
指定自定义 malloc 实现。此设置将替换构建规则中的 malloc 属性。
标记:changes_inputsaffects_outputs
已累计 --experimental_add_exec_constraints_to_targets=<a '<RegexFilter>=<label1>[,<label2>,...]' assignment> 次多次使用
以英文逗号分隔的正则表达式列表,其中每个表达式都可以以 -(否定表达式)为前缀,赋值 (=) 以逗号分隔的限制条件值目标列表。如果目标不与任何否定表达式匹配,并且至少有一个正表达式匹配,则系统将执行其工具链解析,就像它已将约束值声明为执行约束条件一样。示例://demo,-test=@platforms//cpus:x86_64 会将“x86_64”添加到 //demo 下的任何目标(名称中包含“test”的目标除外)。
标记: loading_and_analysis
--[no]experimental_include_xcode_execution_requirements 默认值:“false”
如果设置此参数,请为每个 Xcode 操作添加“require-xcode:{version}”的执行要求。如果 Xcode 版本带有带连字符的标签,请同时添加“require-xcode-label:{version_label}”的执行要求。
标记:loses_incremental_stateloading_and_analysisexecution
--[no]experimental_prefer_mutual_xcode 默认值:“true”
如果为 true,请使用可在本地和远程获取的最新 Xcode。如果为 false,或没有相互可用的版本,请使用通过 xcode-select 选择的本地 Xcode 版本。
标记: loses_incremental_state
--extra_execution_platforms=<comma-separated list of options> 默认值:“”
可用作运行操作的执行平台的平台。平台可以按确切目标指定,也可以指定为目标模式。系统会优先考虑这些平台,然后再考虑由 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> 默认值:参见说明
用于主机编译的 C++ 编译器。如果未设置 --host_crosstool_top 则被忽略。
标记:loading_and_analysisexecution
--host_crosstool_top=<a build target label> 默认值:参见说明
默认情况下,--crosstool_top 和 --compiler 选项也会用于 exec 配置。如果提供此标志,Bazel 会针对指定的 crosstool_top 使用默认 libc 和编译器。
标记:loading_and_analysischanges_inputsaffects_outputs
--host_grte_top=<a label> 默认值:参见说明
如果指定,此设置将替换 exec 配置的 libc 顶级目录 (--grte_top)。
标记:action_command_linesaffects_outputs
--host_platform=<a build target label> 默认值:“@local_config_platform//:host”
描述主机系统的平台规则标签。
标记:affects_outputschanges_inputsloading_and_analysis
--[no]incompatible_dont_enable_host_nonhost_crosstool_features 默认值:“true”
如果为 true,则 Bazel 不会在 C++ 工具链中启用“host”和“nonhost”功能(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7407)。
标记:loading_and_analysisincompatible_change
--[no]incompatible_enable_android_toolchain_resolution 默认值:“true”
使用工具链分辨率选择 Android SDK for Android 规则(Starlark 和原生)
标记:loading_and_analysisincompatible_change
--[no]incompatible_enable_apple_toolchain_resolution 默认值:“false”
使用工具链解析方法选择 Apple SDK for Apple 规则(Starlark 和原生)
标记:loading_and_analysisincompatible_change
--[no]incompatible_make_thinlto_command_lines_standalone 默认值:“true”
如果为 true,则 Bazel 不会将 C++ 链接操作命令行重复用于 lto 索引命令行(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/6791)。
标记: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_require_ctx_in_configure_features 默认值:“true”
如果为 true,则 Bazel 将需要在 cc_common.configure_features 中请求“ctx”参数(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7793)。
标记:loading_and_analysisincompatible_change
--[no]interface_shared_objects 默认值:“true”
如果工具链支持,请使用接口共享对象。目前,所有 ELF 工具链都支持此设置。
标记:loading_and_analysisaffects_outputsaffects_outputs
--ios_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:参见说明
指定用于构建 iOS 应用的 iOS SDK 版本。如果未指定,则使用“xcode_version”中的默认 iOS SDK 版本。
标记: loses_incremental_state
--macos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:参见说明
指定用于构建 macOS 应用的 macOS SDK 版本。如果未指定,则使用“xcode_version”中的默认 macOS SDK 版本。
标记: loses_incremental_state
--minimum_os_version=<a string> 默认值:参见说明
编译针对的最低操作系统版本。
标记:loading_and_analysisaffects_outputs
--platform_mappings=<a relative path> 默认值:“”
映射文件的位置,用于说明在未设置任何平台时应使用哪个平台,或在某个平台已存在时要设置哪些标志。必须相对于主工作区根目录。默认为“platform_mappings”(位于工作区根目录正下方的文件)。
标记:affects_outputschanges_inputsloading_and_analysis
--platforms=<a build target label> 默认值:“”
用于描述当前命令的目标平台的平台规则标签。
标记:affects_outputschanges_inputsloading_and_analysis
--python2_path=<a string> 默认值:参见说明
已弃用,无操作。已被“--incompatible_use_python_toolchains”停用。
标记:no_opdeprecated
--python3_path=<a string> 默认值:参见说明
已弃用,无操作。已被“--incompatible_use_python_toolchains”停用。
标记:no_opdeprecated
--python_path=<a string> 默认值:参见说明
为在目标平台上运行 Python 目标而调用的 Python 解释器的绝对路径。已废弃;已被 --incompatible_use_python_toolchains 停用。
标记:loading_and_analysisaffects_outputs
--python_top=<a build target label> 默认值:参见说明
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 用于相关构建操作。如果未指定,则使用 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++ 测试并在切割时构建,系统也会自动构建测试二进制文件的 .dwp 文件。
标记:loading_and_analysisaffects_outputs
--cc_proto_library_header_suffixes=<comma-separated set of options> 默认值:“.pb.h”
设置 cc_proto_library 创建的头文件的后缀。
标记:affects_outputsloading_and_analysis
--cc_proto_library_source_suffixes=<comma-separated set of options> 默认值:“.pb.cc”
设置 cc_proto_library 创建的源文件的后缀。
标记:affects_outputsloading_and_analysis
--[no]experimental_proto_descriptor_sets_include_source_info 默认值:“false”
为 proto_library 中的备用 Java API 版本运行额外操作。
标记:affects_outputsloading_and_analysisexperimental
--[no]experimental_proto_extra_actions 默认值:“false”
为 proto_library 中的备用 Java API 版本运行额外操作。
标记:affects_outputsloading_and_analysisexperimental
--[no]experimental_save_feature_state 默认值:“false”
将启用和已请求功能的状态保存为编译的输出。
标记:affects_outputsexperimental
--fission=<a set of compilation modes> 默认值:“no”
指定哪些编译模式会为 C++ 编译和链接使用裂变。可以是 {'Fastbuild', 'dbg', 'opt'} 的任意组合,或者是特殊值“yes”来启用所有模式,或是用“no”来停用所有模式。
标记:loading_and_analysisaction_command_linesaffects_outputs
--[no]incompatible_always_include_files_in_data 默认值:“true”
如果为 true,原生规则会将数据依赖项的 <code>DefaultInfo.files</code> 添加到其 runfile 中,这与 Starlark 规则的建议行为 (https://bazel.build/extending/rules#runfiles_features_to_avoid) 一致。
标记:affects_outputsincompatible_change
--[no]legacy_external_runfiles 默认值:“true”
如果为 true,则在 .runfiles/wsname/external/repo(以及 .runfiles/repo)下为外部代码库构建 runfiles 符号链接林。
标记: affects_outputs
--[no]objc_generate_linkmap 默认值:“false”
指定是否生成链接映射文件。
标记: affects_outputs
--[no]save_temps 默认值:“false”
如果设置此参数,系统会保存 gcc 的临时输出。其中包括 .s 文件(编译器代码)、.i 文件(经过预处理的 C)和 .ii 文件(经过预处理的 C++)。
标记: affects_outputs
可让用户配置预期输出(影响预期输出值,而非影响其值)的选项:
已累计 --action_env=<a 'name=value' assignment with an optional value part> 次多次使用
指定可用于具有目标配置的操作的一组环境变量。变量可以按名称指定(在这种情况下值将从调用环境获取),或者由名称=值对(其值独立于调用环境设置值)指定。此选项可以多次使用;对于为同一变量指定的选项,最后胜出的选项将累积,不同变量的选项会累积。
标记: action_command_lines
--android_cpu=<a string> 默认值:“armeabi-v7a”
Android 目标 CPU。
标记:affects_outputsloading_and_analysisloses_incremental_state
--[no]android_databinding_use_androidx 默认值:“true”
生成与 AndroidX 兼容的数据绑定文件。这仅适用于数据绑定 v2。此标志是空操作。
标记:affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]android_databinding_use_v3_4_args 默认值:“true”
将 Android 数据绑定 v2 与 3.4.0 参数搭配使用。此标志是空操作。
标记:affects_outputsloading_and_analysisloses_incremental_stateexperimental
--android_dynamic_mode=<off, default or fully> 默认值:“关闭”
确定在 cc_binary 未明确创建共享库时,是否动态地链接 Android 规则的 C++ 依赖项。“default”表示 bazel 将选择是否动态进行关联。“full”表示所有库都将动态链接。“off”表示在基本上静态模式下所有库的链接。
标记:affects_outputsloading_and_analysis
--android_manifest_merger_order=<alphabetical, alphabetical_by_configuration or dependency> 默认值:“字母”
设置传递给 Android 二进制文件清单合并程序的清单的顺序。ALPHABETIVE 表示清单按相对于 execroot 的路径进行排序。ALPHABETIVE_BY_CONFIGURATION 表示清单按输出目录中配置目录的相关路径排序。DEPENDENCY 表示清单是排序的,每个库的清单排在其依赖项清单之前。
标记:action_command_linesexecution
--[no]android_resource_shrinking 默认值:“false”
为使用 ProGuard 的 android_binary APK 启用资源缩减。
标记:affects_outputsloading_and_analysis
--[no]build_python_zip 默认值:“auto”
构建 Python 可执行 zip 文件;在 Windows 上,在其他平台上关闭
标记: affects_outputs
已累计 --catalyst_cpus=<comma-separated list of options> 次多次使用
用于构建 Apple Catalyst 二进制文件的架构的列表(以英文逗号分隔)。
标记:loses_incremental_stateloading_and_analysis
--[no]collect_code_coverage 默认值:“false”
如果指定,Bazel 将对代码进行插桩(尽可能使用离线插桩),并在测试期间收集覆盖率信息。只有与 --Instrumentation_filter 匹配的目标会受到影响。通常,此选项不应直接指定,应改用“bazelCoverage”命令。
标记: affects_outputs
--compilation_mode=<fastbuild, dbg or opt> [-c] 默认值:“fastbuild”
指定要构建二进制文件的模式。值:“Fastbuild”“dbg”“opt”。
标记:affects_outputsaction_command_lines
已累计 --conlyopt=<a string> 次多次使用
在编译 C 源文件时传递给 gcc 的附加选项。
标记:action_command_linesaffects_outputs
已累计 --copt=<a string> 次多次使用
可传递给 gcc 的其他选项。
标记:action_command_linesaffects_outputs
--cpu=<a string> 默认值:“”
目标 CPU。
标记:changes_inputsaffects_outputs
--cs_fdo_absolute_path=<a string> 默认值:参见说明
使用 CSFDO 配置文件信息来优化编译。指定包含配置文件(原始或已编入索引的 LLVM 配置文件)的 ZIP 文件的绝对路径名称。
标记: affects_outputs
--cs_fdo_instrument=<a string> 默认值:参见说明
使用上下文敏感 FDO 插桩生成二进制文件。使用 Clang/LLVM 编译器时,它还接受在运行时转储原始配置文件所在的目录名称。
标记: affects_outputs
--cs_fdo_profile=<a build target label> 默认值:参见说明
cs_fdo_profile,表示要用于优化的上下文相关配置文件。
标记: affects_outputs
已累计 --cxxopt=<a string> 次多次使用
在编译 C++ 源文件时传递给 gcc 的附加选项。
标记:action_command_linesaffects_outputs
已累计 --define=<a 'name=value' assignment> 次多次使用
每个 --define 选项都会为 build 变量指定一个赋值。
标记:changes_inputsaffects_outputs
--dynamic_mode=<off, default or fully> 默认值:“默认”
确定是否要动态地链接 C++ 二进制文件。“default”表示 Bazel 将选择是否动态关联。“full”表示所有库都将动态链接。“off”表示在基本上静态模式下所有库的链接。
标记:loading_and_analysisaffects_outputs
--[no]enable_fdo_profile_absolute_path 默认值:“true”
如果设置此参数,使用 fdo_absolute_profile_path 会引发错误。
标记: affects_outputs
--[no]enable_runfiles 默认值:“auto”
启用 runfiles 符号链接树;在 Windows 上,此设置在其他平台上处于关闭状态。
标记: affects_outputs
已累计 --experimental_action_listener=<a build target label> 次多次使用
已弃用,取而代之的是切面。使用 action_listener 将 extra_action 附加到现有构建操作。
标记: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_analysis
--[no]experimental_android_rewrite_dexes_with_rex 默认值:“false”
使用 Rex 工具重写 dex 文件
标记:affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]experimental_collect_code_coverage_for_generated_files 默认值:“false”
如果指定,Bazel 还将为生成的文件生成收集覆盖率信息。
标记: affects_outputs
--experimental_objc_fastbuild_options=<comma-separated list of options> 默认值:“-O0,-DDEBUG=1”
将这些字符串用作 objc fastbuild 编译器选项。
标记: action_command_lines
--[no]experimental_omitfp 默认值:“false”
如果为 true,则使用 libunwind 进行堆栈展开,并使用 -fomit-frame-pointer 和 -fasync-unwind-tables 进行编译。
标记:action_command_linesaffects_outputsexperimental
--experimental_output_paths=<off, content or strip> 默认值:“关闭”
在输出树规则中的位置编写输出的模型,尤其是对于多平台 / 多配置 build。这尚处于实验阶段。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/6526。Starlark 操作可以选择使用路径映射,方法是将键“supports-path-mapping”添加到“execution_requirements”字典。
标记:loses_incremental_statebazel_internal_configurationaffects_outputsexecution
已累计 --experimental_override_name_platform_in_output_dir=<a 'label=value' assignment> 次多次使用
每个条目都应该采用 label=value 形式,其中 label 表示平台,value 是要在输出路径中使用的所需简称。仅在 --experimental_platform_in_output_dir 为 true 时使用。具有最高命名优先级。
标记:affects_outputsexperimental
--[no]experimental_platform_in_output_dir 默认值:“false”
如果为 true,则会在输出目录名称中使用目标平台的简称,而不是 CPU。确切的方案尚处于实验阶段,可能会发生变化:首先,在极少数情况下,--platforms 选项并不只有一个值,而是使用 platform 选项的哈希值。接下来,如果当前平台的任何简称由 --experimental_override_name_platform_in_output_dir 注册,则系统会使用该简称。然后,如果设置了 --experimental_use_platforms_in_output_dir_legacy_heuristic,则使用基于当前平台标签的简称。最后,在万不得已时,系统将使用平台选项的哈希值。
标记: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
--fat_apk_cpu=<comma-separated set of options> 默认值:“armeabi-v7a”
设置此选项会启用胖 APK,其中包含适用于所有指定目标架构的原生二进制文件,例如--fat_apk_cpu=x86,armeabi-v7a. 如果指定此标志,对于 android_binary 规则的依赖项,系统会忽略 --android_cpu。
标记:affects_outputsloading_and_analysisloses_incremental_state
--[no]fat_apk_hwasan 默认值:“false”
是否创建 HWASAN 分块。
标记:affects_outputsloading_and_analysisloses_incremental_state
--fdo_instrument=<a string> 默认值:参见说明
使用 FDO 插桩生成二进制文件。使用 Clang/LLVM 编译器时,它还接受在运行时转储原始配置文件所在的目录名称。
标记: affects_outputs
--fdo_optimize=<a string> 默认值:参见说明
使用 FDO 配置文件信息优化编译。指定包含 .gcda 文件树的 ZIP 文件、包含自动配置文件的 afdo 文件或 LLVM 配置文件的名称。此标志还接受指定为标签的文件(例如“//foo/bar:file.afdo”- 您可能需要向相应的软件包添加“exports_files”指令)和指向“fdo_profile”目标的标签。此标志将被“fdo_profile”规则取代。
标记: affects_outputs
--fdo_prefetch_hints=<a build target label> 默认值:参见说明
使用缓存预提取提示。
标记: affects_outputs
--fdo_profile=<a build target label> 默认值:参见说明
表示要用于优化的配置文件的 fdo_profile。
标记: affects_outputs
已累计 --features=<a string> 次多次使用
对于目标配置中构建的目标,系统会默认启用或停用指定功能。指定 -<feature> 将停用该功能。负特征始终会覆盖正特征。另请参阅 --host_features
标记:changes_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> 次多次使用
指定可供具有执行配置的操作使用的环境变量集。变量可以按名称指定(在这种情况下值将从调用环境获取),或者由名称=值对(其值独立于调用环境设置值)指定。此选项可以多次使用;对于为同一变量指定的选项,最后胜出的选项将累积,不同变量的选项会累积。
标记: action_command_lines
--host_compilation_mode=<fastbuild, dbg or opt> 默认值:“opt”
指定构建期间所用工具的内置模式。值:“Fastbuild”“dbg”“opt”。
标记:affects_outputsaction_command_lines
已累计 --host_conlyopt=<a string> 次多次使用
在 exec 配置中编译 C(而非 C++)源文件时传递给 C 编译器的附加选项。
标记:action_command_linesaffects_outputs
已累计 --host_copt=<a string> 次多次使用
对于在 exec 配置中构建的工具,需要传递给 C 编译器的其他选项。
标记:action_command_linesaffects_outputs
--host_cpu=<a string> 默认值:“”
主机 CPU。
标记:changes_inputsaffects_outputs
已累计 --host_cxxopt=<a string> 次多次使用
对于在 exec 配置中构建的工具,可传递给 C++ 编译器的其他选项。
标记:action_command_linesaffects_outputs
已累计 --host_features=<a string> 次多次使用
对于 exec 配置中构建的目标,系统会默认启用或停用指定功能。指定 -<feature> 将停用该功能。负特征始终会覆盖正特征。
标记:changes_inputsaffects_outputs
--host_force_python=<PY2 or PY3> 默认值:参见说明
替换 exec 配置的 Python 版本。可以是“PY2”或“PY3”。
标记:loading_and_analysisaffects_outputs
已累计 --host_linkopt=<a string> 次多次使用
在 exec 配置中关联工具时向链接器传递的额外选项。
标记: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> 次多次使用
在 exec 配置中编译某些文件时,用于选择性传递给 C/C++ 编译器的其他选项。此选项可以多次传递。语法:regex_filter@option_1,option_2,...,option_n。其中,regex_filter 代表包含和排除正则表达式模式的列表(另请参阅 --Instrument_filter)。 option_1 到 option_n 代表任意命令行选项。如果选项包含英文逗号,则必须使用反斜杠加引号。选项可以包含 @。只有第一个 @ 用于拆分字符串。示例:--host_per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 将 -O0 命令行选项添加到 //foo/ 中所有 cc 文件的 gcc 命令行中(bar.cc 除外)。
标记:action_command_linesaffects_outputs
已累计 --host_swiftcopt=<a string> 次多次使用
用于执行工具的传递给 swiftc 的其他选项。
标记: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]incompatible_use_host_features 默认值:“true”
如果为 true,请仅对目标配置使用 --features,将 --host_features 用于 exec 配置。
标记:changes_inputsaffects_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)。开启后,请为 linkopts 中包含 linkshared=True 且 linkstatic=True 或“-static”的 cc_binary 规则使用 --whole-archive。这仅用于向后兼容。更好的替代方案是在必要时使用 alwayslink=1。
标记:action_command_linesaffects_outputsdeprecated
已累计 --linkopt=<a string> 次多次使用
在链接时传递给 gcc 的附加选项。
标记:action_command_linesaffects_outputs
已累计 --ltobackendopt=<a string> 次多次使用
用于传递给 LTO 后端步骤的附加选项(在 --features=thin_lto 下)。
标记:action_command_linesaffects_outputs
已累计 --ltoindexopt=<a string> 次多次使用
用于传递给 LTO 索引编制步骤的附加选项(在 --features=thin_lto 下)。
标记:action_command_linesaffects_outputs
已累计 --macos_cpus=<comma-separated list of options> 次多次使用
构建 Apple macOS 二进制文件的架构的列表(以英文逗号分隔)。
标记:loses_incremental_stateloading_and_analysis
--macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')> 默认值:参见说明
目标的最低兼容 macOS 版本。如果未指定,则使用“macos_sdk_version”。
标记: loses_incremental_state
--memprof_profile=<a build target label> 默认值:参见说明
使用 memprof 配置文件。
标记: affects_outputs
--[no]objc_debug_with_GLIBCXX 默认值:“false”
如果设置此参数,并且编译模式设为“dbg”,则定义 GLIBCXX_DEBUG、GLIBCXX_DEBUG_PEDANTIC 和 GLIBCPP_CONCEPT_CHECKS。
标记: action_command_lines
--[no]objc_enable_binary_stripping 默认值:“false”
是否对关联的二进制文件执行符号和死代码删除。如果同时指定了此标志和 --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 代表包含和排除正则表达式模式的列表(另请参阅 --Instrument_filter)。 option_1 到 option_n 代表任意命令行选项。如果选项包含英文逗号,则必须使用反斜杠加引号。选项可以包含 @。只有第一个 @ 用于拆分字符串。示例:--per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 向 //foo/ 中所有 cc 文件的 gcc 命令行(bar.cc 除外)添加 -O0 命令行选项。
标记: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 向 //foo/ 中所有 o 文件(bar.o 除外)的 LTO 后端命令行添加 -O0 命令行选项。
标记: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",) 可能需要向相应的软件包添加 Export_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> 默认值:“有时”
指定是否去除二进制文件和共享库(使用“-Wl,--strip-debug”)。“有时”的默认值表示会在 iff --compilation_mode=Fastbuild 执行删除操作。
标记: affects_outputs
已累计 --stripopt=<a string> 次多次使用
生成“<name>.stripped”二进制文件时要传递的其他选项。
标记:action_command_linesaffects_outputs
已累计 --swiftcopt=<a string> 次多次使用
传递给 Swift 编译的其他选项。
标记: action_command_lines
已累计 --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 输入的严格程度的选项(规则定义、标志组合等):
--auto_cpu_environment_group=<a build target label> 默认值:“”
声明用于自动将 CPU 值映射到 target_environment 值的 environment_group。
标记:changes_inputsloading_and_analysisexperimental
--[no]check_licenses 默认值:“false”
检查依赖软件包施加的许可限制是否与正在构建的目标的分发模式冲突。默认情况下,许可处于未选中状态。
标记: build_file_semantics
--[no]check_visibility 默认值:“true”
如果停用此设置,目标依赖项中的可见性错误会降级为警告。
标记: build_file_semantics
--[no]desugar_for_android 默认值:“true”
是否在 dex 处理之前对 Java 8 字节码进行脱糖。
标记:affects_outputsloading_and_analysisloses_incremental_state
--[no]desugar_java8_libs 默认值:“false”
是否在旧版设备的应用中包含受支持的 Java 8 库。
标记:affects_outputsloading_and_analysisloses_incremental_stateexperimental
--[no]enforce_constraints 默认值:“true”
检查每个目标兼容的环境,如果任何目标的依赖项不支持相同环境,则报告错误
标记:build_file_semantics
--[no]experimental_check_desugar_deps 默认值:“true”
是否在 Android 二进制文件级别仔细检查是否正确脱糖。
标记:eagerness_to_exitloading_and_analysisexperimental
--experimental_import_deps_checking=<off, warning or error>的默认值:“关闭”
启用后,检查 aar_import 的依赖项是否完整。此强制执行可能会破坏构建,或可能导致警告。
标记: loading_and_analysis
--experimental_strict_java_deps=<off, warn, error, strict or default> 默认值:“默认”
如果为 true,则检查 Java 目标是否明确将所有直接使用的目标声明为依赖项。
标记:build_file_semanticseagerness_to_exit
--[no]incompatible_check_testonly_for_output_files 默认值:“false”
如果启用,则通过查找生成规则的 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]incompatible_validate_top_level_header_inclusions 默认值:“true”
如果为 true,则 Bazel 还将验证是否包含顶级目录标头(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/10047)。
标记:loading_and_analysisincompatible_change
--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,则还需要声明通过系统包含路径 (-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 签名的证书名称。如果未设置,则回退到预配配置文件。可能是证书的钥匙串身份偏好设置或证书通用名称的(子字符串),详情请参阅代码签名的手册页面(签名 IDENTITIES)。
标记: 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 实例,不会导致构建失败。
标记:loading_and_analysisexperimental
--analysis_testing_deps_limit=<an integer> 默认值:“2000”
通过具有 for_analysis_testing 配置转换的规则属性设置传递依赖项的数量上限。超过此限制将导致规则错误。
标记: loading_and_analysis
--[no]break_build_on_parallel_dex2oat_failure 默认值:“false”
如果 dex2oat 操作为 true,则会导致构建中断,而不会在测试运行时执行 dex2oat。
标记:loading_and_analysisexperimental
--[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。其中,running_per_test 表示整数值,而 regex_filter 表示包含和排除正则表达式模式的列表(另请参阅 --Instrumentation_filter)。示例:--runs_per_test=//foo/.*,-//foo/bar/.*@3 运行 //foo/ 中的所有测试(foo/bar 下的测试除外)三次。此选项可以多次传递。最新传递的匹配的参数优先。如果没有匹配项,则测试仅运行一次。
已累计 --test_env=<a 'name=value' assignment with an optional value part> 次多次使用
指定要注入到测试运行程序环境的其他环境变量。变量可以按名称指定(在这种情况下,变量的值将从 Bazel 客户端环境读取),或者名称=值对。此选项可以多次使用,以指定多个变量。仅供“bazel test”命令使用。
标记: test_runner
--test_timeout=<a single integer or comma-separated list of 4 integers> 默认值:“-1”
替换测试超时的默认测试超时值(以秒为单位)。如果指定了单个正整数值,该值将覆盖所有类别。如果指定了 4 个以英文逗号分隔的整数,这些值将会覆盖短、中、长和永久的超时(按此顺序)。无论采用哪种方式,值 -1 都会指示 Blaze 为该类别使用默认超时值。
--[no]zip_undeclared_test_outputs 默认值:“true”
如果为 true,则未声明的测试输出将归档为 zip 文件。
标记: test_runner
与查询输出和语义相关的选项:
--aspect_deps=<off, conservative or precise> 默认值:“保守型”
当输出格式为 {xml,proto,record} 之一时,如何解析切面依赖项。“off”表示不解析任何切面依赖项;“保守”(默认值)表示添加所有已声明的切面依赖项,无论它们是否获得了直接依赖项的规则类,“确切”表示仅添加在直接依赖项的规则类下可能处于活动状态的那些方面。请注意,精确模式需要加载其他软件包来评估单个目标,因此该模式比其他模式慢。另请注意,即使是精确模式也不是完全精确:是否计算某个方面的决定是在分析阶段决定的,而该阶段不会在“bazel 查询”期间运行。
标记: build_file_semantics
--[no]consistent_labels 默认值:“false”
启用后,每个查询命令都会发出标签,就像是通过应用于 <code>Label</code> 实例的 Starlark <code>str</code> 函数来发出。这对于需要匹配不同查询命令的输出和/或由规则发出的标签输出的工具非常有用。如果未启用,输出格式设置工具可以自由发出明显的代码库名称(相对于主代码库),以使输出更易于阅读。
标记: 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:no-op(始终遵循切面)。
标记: 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、transition、proto、streamed_proto、jsonproto。如果您选择“transitions”,还需要指定 --transitions=(lite|full) 选项。
标记: terminal_output
--[no]proto:default_values 默认值:“true”
如果为 true,则会包含未在 BUILD 文件中明确指定值的属性;否则,系统会省略这些属性。此选项适用于 --output=proto
标记:terminal_output
--[no]proto:definition_stack 默认值:“false”
填充 Definition_stack proto 字段,该字段会在定义规则的类时记录每个规则实例的 Starlark 调用堆栈。
标记: terminal_output
--[no]proto:flatten_selects 默认值:“true”
启用后, select() 创建的可配置属性将展平。对于列表类型,扁平化表示形式是一个列表,其中每个选定映射的值都正好包含一次。标量类型会展平为 null。
标记: build_file_semantics
--[no]proto:include_attribute_source_aspects 默认值:“false”
使用来源切面填充每个 Attribute 的 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_inputs_and_outputs 默认值:“true”
是否填充 rule_input 和 rule_output 字段。
标记: terminal_output
--query_file=<a string> 默认值:“”
如果设置此参数,查询将从此处指定的文件中读取查询,而不是在命令行中读取。在此处指定文件以及命令行查询会出错。
标记: changes_inputs
--[no]relative_locations 默认值:“false”
如果为 true,则 xml 和 proto 输出中 BUILD 文件的位置将是相对位置。默认情况下,位置输出是绝对路径,不同机器之间会不一致。您可以将此选项设置为 true,以便在不同机器上获得一致的结果。
标记: terminal_output
--show_config_fragments=<off, direct or transitive> 默认值:“关闭”
显示规则及其传递依赖项所需的配置片段。这对于评估可以对配置的目标图表进行修剪程度非常有用。
标记: affects_outputs
--starlark:expr=<a string> 默认值:“”
Starlark 表达式,用于在 cquery 的 --output=starlark 模式下设置每个已配置目标的格式。已配置的目标绑定到“目标”。如果 --starlark:expr 和 --starlark:file 都未指定,则此选项将默认为“str(target.label)”。同时指定 --starlark:expr 和 --starlark:file 是错误的。
标记: terminal_output
--starlark:file=<a string> 默认值:“”
一个文件的名称,该文件定义了一个名为“format”的 Starlark 函数,该函数有一个参数,此参数会应用于每个已配置的目标,以将其格式设置为字符串。同时指定 --starlark:expr 和 --starlark:file 是错误的。如需了解详情,请参阅有关 --output=starlark 的帮助。
标记: terminal_output
--[no]tool_deps 默认值:“true”
查询:如果停用,对“exec configuration”的依赖关系将不会包含在执行查询的依赖关系图中。“exec configuration”依赖项边缘(例如从任何“proto_library”规则到协议编译器的依赖项)通常指向构建期间执行的工具,而不是同一“目标”程序的一部分。 Cquery:如果停用,则从发现了此已配置目标的顶级目标的执行转换中过滤掉所有已配置的目标。这意味着,如果顶级目标在目标配置中,则系统只会返回同样位于目标配置中的已配置目标。如果顶级目标位于 exec 配置中,则仅返回 exec 配置的目标。此选项不会排除已解析的工具链。
标记: build_file_semantics
--transitions=<full, lite or none> 默认值:“无”
cquery 输出转换信息所用的格式。
标记: affects_outputs
--universe_scope=<comma-separated list of options> 默认值:“”
一组以英文逗号分隔的目标模式(加法和减法)。查询可以在由指定目标的传递闭包定义的宇宙中执行。此选项用于 query 和 cquery 命令。 对于 cquery,此选项的输入是构建所有答案的目标,因此此选项可能会影响配置和转换。如果未指定此选项,则假定顶级目标为从查询表达式解析的目标。注意:对于 cquery,如果无法使用顶级选项构建从查询表达式解析的目标,则不指定此选项可能会导致构建中断。
标记: loading_and_analysis
触发构建时间优化的选项:
--[no]experimental_filter_library_jar_with_program_jar 默认值:“false”
过滤 ProGuard ProgramJar,以移除 LibraryJar 中也存在的所有类。
标记: action_command_lines
--[no]experimental_inmemory_dotd_files 默认值:“true”
启用后,C++ .d 文件将直接从远程构建节点在内存中传递,而不是写入磁盘。
标记:loading_and_analysisexecutionaffects_outputsexperimental
--[no]experimental_inmemory_jdeps_files 默认值:“true”
启用后,通过 Java 编译生成的依赖项 (.jdeps) 文件将直接从远程构建节点在内存中传递,而不是写入磁盘。
标记:loading_and_analysisexecutionaffects_outputsexperimental
--[no]experimental_objc_include_scanning 默认值:“false”
是否针对目标 C/C++ 执行包含扫描。
标记:loading_and_analysisexecutionchanges_inputs
--[no]experimental_retain_test_configuration_across_testonly 默认值:“false”
启用后,--trim_test_configuration 不会修剪标记为 testonly=1 的规则的测试配置。这是为了减少非测试规则依赖于 cc_test 规则时出现的操作冲突问题。如果 --trim_test_configuration 为 false,则不会产生任何影响。
标记:loading_and_analysisloses_incremental_state
--[no]experimental_starlark_cc_import 默认值:“false”
启用后,便可使用 Starlark 版本的 cc_import。
标记:loading_and_analysisexperimental
--[no]experimental_unsupported_and_brittle_include_scanning 默认值:“false”
是否通过解析输入文件中的 #include 行来缩小 C/C++ 编译的输入范围。这可以通过减小编译输入树的大小来提高性能和增量。不过,这也可能会中断构建,因为包含扫描器未完全实现 C 预处理器语义。特别是,它不理解动态 #include 指令,并且会忽略预处理器的条件逻辑。使用所带来的风险由您自行承担。已提交的与此标记相关的任何问题都将关闭。
标记:loading_and_analysisexecutionchanges_inputs
--[no]incremental_dexing 默认值:“true”
为每个 Jar 文件分别执行 dex 处理的大部分工作。
标记:affects_outputsloading_and_analysisloses_incremental_state
--[no]objc_use_dotd_pruning 默认值:“true”
如果设置此参数,则 clang 发出的 .d 文件将用于剪除传入 objc 编译的一组输入。
标记:changes_inputsloading_and_analysis
--[no]process_headers_in_dependencies 默认值:“false”
构建目标 //a:a 时,//a:a 所依赖的所有目标中的进程标头(如果工具链启用了标头处理)。
标记: execution
--[no]trim_test_configuration 默认值:“true”
启用后,与测试相关的选项将在 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”
此标志可更改默认行为,因此在 Python 目标的 runfile 中不会再自动创建 __init__.py 文件。确切地说,当 py_binary 或 py_test 目标将 legacy_create_init 设置为“auto”(默认值)时,当且仅当设置了此标记时,它才会被视为 false。请参阅 https://github.com/bazelbuild/bazel/issues/10076。
标记:affects_outputsincompatible_change
--[no]incompatible_py2_outputs_are_suffixed 默认值:“true”
如果为 true,在 Python 2 配置中构建的目标将显示在包含后缀“-py2”的输出根目录下,而针对 Python 3 构建的目标将显示在没有与 Python 相关的后缀的根目录下。这意味着“bazel-bin”便捷符号链接将指向 Python 3 目标,而不是 Python 2。如果启用此选项,我们还建议您启用“--incompatible_py3_is_default”。
标记:affects_outputsincompatible_change
--[no]incompatible_py3_is_default 默认值:“true”
如果为 true,则未设置“python_version”(或“default_python_version”)属性的“py_binary”和“py_test”目标将默认为 PY3,而不是 PY2。如果您设置了此标志,还建议您设置“--incompatible_py2_outputs_are_suffixed”。
标记:loading_and_analysisaffects_outputsincompatible_change
--[no]incompatible_use_python_toolchains 默认值:“true”
如果设置为 true,可执行原生 Python 规则将使用 Python 工具链指定的 Python 运行时,而不是由 --python_top 等旧版标志指定的运行时。
标记:loading_and_analysisincompatible_change
--python_version=<PY2 or PY3> 默认值:参见说明
Python 主要版本模式:“PY2”或“PY3”。请注意,此设置已被“py_binary”和“py_test”目标替换(即使它们未明确指定版本),因此通常没有太多理由提供此标志。
标记:loading_and_analysisaffects_outputs
其他选项,未以其他方式分类:
--[no]cache_test_results [-t] 默认值:“自动”
如果设置为“auto”,则仅当满足以下条件时,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_analysis
--[no]experimental_fetch_all_coverage_outputs 默认值:“false”
如果为 true,则 Bazel 会在覆盖率运行期间为每个测试提取整个覆盖率数据目录。
标记:affects_outputsloading_and_analysis
--[no]experimental_generate_llvm_lcov 默认值:“false”
如果为 true,则针对 Clang 的覆盖率将生成 LCOV 报告。
标记:affects_outputsloading_and_analysis
--[no]experimental_j2objc_header_map 默认值:“true”
是否在 J2ObjC 转译的同时生成 J2ObjC 标头映射。
--[no]experimental_j2objc_shorter_header_path 默认值:“false”
是否使用较短的标头路径(使用“_ios”而不是“_j2objc”)生成。
标记: affects_outputs
--experimental_java_classpath=<off, javabuilder or bazel> 默认值:“javabuilder”
减少了 Java 编译的类路径。
--[no]experimental_limit_android_lint_to_android_constrained_java 默认值:“false”
将 --experimental_run_android_lint_on_java_rules 限制为与 Android 兼容的库。
标记: affects_outputs
--[no]experimental_run_android_lint_on_java_rules 默认值:“false”
是否验证 java_* 源代码。
标记: affects_outputs
--[no]explicit_java_test_deps 默认值:“false”
在 java_test 中明确指定 JUnit 或 Hamcrest 的依赖项,而不是意外从 TestRunner 的依赖项中获取。目前仅适用于 bazel。
--host_java_launcher=<a build target label> 默认值:参见说明
在构建期间执行的工具使用的 Java 启动器。
已累计 --host_javacopt=<a string> 次多次使用
构建在构建期间执行的工具时要传递给 javac 的其他选项。
已累计 --host_jvmopt=<a string> 次多次使用
构建在构建期间执行的工具时要传递给 Java 虚拟机的其他选项。这些选项将添加到每个 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”
直接从源代码编译 ijar。
--java_language_version=<a string> 默认值:“”
Java 语言版本
--java_launcher=<a build target label> 默认值:参见说明
构建 Java 二进制文件时使用的 Java 启动器。如果此标志设置为空字符串,系统会使用 JDK 启动器。“launcher”属性会替换此标志。
--java_runtime_version=<a string> 默认值:“local_jdk”
Java 运行时版本
已累计 --javacopt=<a string> 次多次使用
需要传递给 javac 的其他选项。
已累计 --jvmopt=<a string> 次多次使用
要传递给 Java 虚拟机的其他选项。这些选项将添加到每个 java_binary 目标的虚拟机启动选项中。
--legacy_main_dex_list_generator=<a build target label> 默认值:参见说明
指定用于生成在编译旧版 MultiDex 时必须位于主 dex 中的类列表的二进制文件。
--optimizing_dexer=<a build target label> 默认值:参见说明
指定在不进行分片的情况下用于执行 dex 处理的二进制文件。
已累计 --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
--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_SH 环境变量是在首次调用(启动 Bazel 服务器)时设置的,则 Bazel 会使用该变量。如果二者均未设置,则 Bazel 会根据运行的操作系统(Windows:c:/tools/msys64/usr/bin/bash.exe、FreeBSD:/usr/local/bin/bash;所有其他路径:/bin/bash)使用硬编码的默认路径。请注意,使用与 bash 不兼容的 shell 可能会导致生成的二进制文件构建失败或运行时失败。
标记: 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> 默认值:“露骨内容”
指定测试分片策略:“显式”,以便仅在存在“hard_count”BUILD 属性时才使用分片。“已停用”表示永不使用测试分片。“forced=k”会强制执行“k”分片用于测试,而不考虑“fragment_count”build 属性。
--tool_java_language_version=<a string> 默认值:“”
用于执行构建期间所需工具的 Java 语言版本
--tool_java_runtime_version=<a string> 默认值:“remotejdk_11”
用于在构建期间执行工具的 Java 运行时版本
--[no]use_ijars 默认值:“true”
启用后,此选项会导致 Java 编译使用接口 JAR。这样可以加快增量编译的速度,但错误消息可能会有所不同。

转储选项

出现在命令之前并由客户端解析的选项:
已累计 --distdir=<a path> 次多次使用
在访问网络下载归档文件之前,可在其他位置搜索归档文件。
标记: bazel_internal_configuration
如果设置此参数,当缓存命中时,代码库缓存将对文件进行硬链接,而不是进行复制。这是为了节省磁盘空间。
标记: bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 默认值:“0”
下载错误重试次数上限。如果设置为 0,系统会停用重试。
标记: experimental
--experimental_scale_timeouts=<a double> 默认值:“1.0”
按此系数扩缩 Starlark 代码库规则中的所有超时。通过这种方式,无需更改源代码,即可让外部代码库在速度低于规则作者预期的机器上运行。
标记:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 默认值:“8”
http 下载的尝试次数上限。
标记: bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 默认值:“0s”
http 下载重试的超时上限。如果值为 0,则未定义超时上限。
标记: bazel_internal_configuration
--http_timeout_scaling=<a double> 默认值:“1.0”
根据给定系数调整与 http 下载相关的所有超时时间
标记:bazel_internal_configuration
--repository_cache=<a path> 默认值:参见说明
指定在提取外部代码库期间获取的已下载值的缓存位置。使用空字符串作为参数会请求停用缓存,否则会使用默认值“<output_user_root>/cache/repos/v1”。
标记:bazel_internal_configuration
--[no]repository_disable_download 默认值:“false”
如果已设置此参数,则在代码库提取过程中,不允许使用 ctx.download{,_and_Extract} 进行下载。请注意,网络访问并非完全停用; ctx.execute 仍可以运行访问互联网的任意可执行文件。
标记: bazel_internal_configuration
用于控制构建执行的选项:
--gc_thrashing_threshold=<an integer in 0-100 range> 默认值:“100”
占用的空间百分比 (0-100),超过此值时,GcThrashingDetector 会将内存压力事件视为相对于其限值 (--gc_thrashing_limits)。如果设置为 100,则会停用 GcThrashingDetector。
标记: host_machine_resource_optimizations
用于控制命令输出的选项:
--[no]action_cache 默认值:“false”
转储操作缓存内容。
标记: bazel_monitoring
--[no]packages 默认值:“false”
转储软件包缓存内容。
标记: bazel_monitoring
--[no]rule_classes 默认值:“false”
转储规则类。
标记: bazel_monitoring
--[no]rules 默认值:“false”
转储规则,包括计数和内存用量(如果跟踪内存)。
标记: bazel_monitoring
--skyframe=<off, summary, count, deps or rdeps> 默认值:“关闭”
Dump Skyframe 图表:“off”“summary”“count”“deps”或“rdeps”。
标记: bazel_monitoring
--skykey_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths> 默认值:“.*”
要输出的 SkyKey 名称的正则表达式过滤器。仅与 --skyframe=deps、rdeps 搭配使用。
标记: bazel_monitoring
--skylark_memory=<a string> 默认值:参见说明
将与 pprof 兼容的内存配置文件转储到指定路径。如需了解详情,请访问 https://github.com/google/pprof。
标记: bazel_monitoring
与 Bzlmod 输出和语义相关的选项:
已累计 --allow_yanked_versions=<a string> 次多次使用
以“<module1>@<version1>,<module2>@<version2>”的形式指定模块版本,即使这些版本在来源的注册表中进行了声明(如果它们并非来自 NonRegistryOverride),也允许出现在已解析的依赖关系图中。否则,拉取版本会导致解析失败。您还可以使用“BZLMOD_ALLOW_YANKED_VERSIONS”环境变量定义允许的拖动版本。您可以使用关键字“all”停用此检查(不推荐)。
标记: loading_and_analysis
--check_bazel_compatibility=<error, warning or off> 默认值:“error”
检查 Bazel 模块的 Bazel 版本兼容性。有效值包括“error”(可上报为解决失败),“off”可停用检查,值为“warning”(用于在检测到不匹配时输出警告)。
标记: loading_and_analysis
--check_direct_dependencies=<off, warning or error> 默认值:“警告”
检查根模块中声明的直接“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 or error> 默认值:“update”
指定如何以及是否使用锁定文件。有效值包括,值为“update”以使用锁文件并在有更改时更新锁文件;值为“error”使用锁文件,但如果锁文件不是最新文件,则抛出错误;值为“off”既不对锁文件执行读取或写入操作,也抛出错误。
标记: loading_and_analysis
已累计 --override_module=<an equals-separated mapping of module name to path> 次多次使用
使用 <模块名称>=<路径> 形式的本地路径替换模块。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出
已累计 --registry=<a string> 次多次使用
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在之前的注册表中查找模块,只有在之前的注册表中缺失模块时,才会回退到后续注册表。
标记: changes_inputs
触发构建时间优化的选项:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 默认值:“1s:2,20s:3,1m:5”
限制,如果达到这些限制,则会导致 GcThrashingDetector 导致 Bazel 崩溃并出现 OOM。每个限制以 <period>:<count> 形式指定,其中 period 是时长,计数是正整数。如果在 <period> 内连续 <count> 次完整 GC 后仍被占用的到期空间(旧代堆)百分比超过 --gc_thrashing_threshold%,则会触发 OOM。可以用英文逗号分隔指定多个限制。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过 --skyframe_high_water_mark_threshold 设置的阈值,则当发生完整 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示完整 GC 事件永远不会触发丢弃操作。达到此上限后,当发生完整 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过由 --skyframe_high_water_mark_threshold 设置的阈值,当发生次要 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示次要 GC 事件永远不会触发丢弃操作。达到此上限后,当发生次要 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 默认值:“85”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量不低于此阈值,则会丢弃不必要的临时 Skyframe 状态。当 GC 抖动 (i) 是由此临时状态的内存使用引起的且 (ii) 在需要时比重构状态的成本更高时,即可降低 GC 抖动对实际使用时间的影响。
标记: host_machine_resource_optimizations
影响日志记录的详细程度、格式或位置的选项:
--[no]experimental_command_profile 默认值:“false”
将 Java 飞行记录器 CPU 配置文件记录到输出基本目录中的 profile.jfr 文件中。此标志的语法和语义将来可能会更改,以支持不同的配置文件类型或输出格式;使用时需自行承担风险。
--[no]experimental_record_metrics_for_all_mnemonics 默认值:“false”
默认情况下,已执行操作数量最多的 20 种助记符不得超过操作类型的数量。设置此选项后,系统会写入所有助记符的统计信息。
用于指定或更改不属于其他类别的 Bazel 命令的通用输入的选项:
--experimental_resolved_file_instead_of_workspace=<a string> 默认值:“”
如果非空,则读取指定的已解析文件而不是 WORKSPACE 文件
标记: changes_inputs
远程缓存和执行选项:
--experimental_downloader_config=<a string> 默认值:参见说明
指定要用于配置远程下载程序的文件。此文件由多个行组成,其中每个行以指令(“allow”“block”或“rewrite”)开头,后跟主机名(分别用于“allow”和“block”)或两种格式,一种用于匹配,另一种用作替换网址,反向引用从“$1”开始。可以针对同一个网址提供多个“rewrite”指令,在这种情况下,系统会返回多个网址。
--experimental_worker_for_repo_fetching=<off, platform or virtual> 默认值:“关闭”
用于代码库提取的线程模式。如果设置为“off”,则不使用任何工作线程,并且 Repo 提取功能可能会重启。否则,如果设置为“platform”,则使用平台线程(即操作系统线程),如果设置为“virtual”,则使用虚拟线程。
其他选项,未以其他方式分类:
已累计 --override_repository=<an equals-separated mapping of repository name to path> 次多次使用
使用 <repo name>=<path> 形式的本地路径替换代码库。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出

提取选项

出现在命令之前并由客户端解析的选项:
已累计 --distdir=<a path> 次多次使用
在访问网络下载归档文件之前,可在其他位置搜索归档文件。
标记: bazel_internal_configuration
如果设置此参数,当缓存命中时,代码库缓存将对文件进行硬链接,而不是进行复制。这是为了节省磁盘空间。
标记: bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 默认值:“0”
下载错误重试次数上限。如果设置为 0,系统会停用重试。
标记: experimental
--experimental_scale_timeouts=<a double> 默认值:“1.0”
按此系数扩缩 Starlark 代码库规则中的所有超时。通过这种方式,无需更改源代码,即可让外部代码库在速度低于规则作者预期的机器上运行。
标记:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 默认值:“8”
http 下载的尝试次数上限。
标记: bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 默认值:“0s”
http 下载重试的超时上限。如果值为 0,则未定义超时上限。
标记: bazel_internal_configuration
--http_timeout_scaling=<a double> 默认值:“1.0”
根据给定系数调整与 http 下载相关的所有超时时间
标记:bazel_internal_configuration
--repository_cache=<a path> 默认值:参见说明
指定在提取外部代码库期间获取的已下载值的缓存位置。使用空字符串作为参数会请求停用缓存,否则会使用默认值“<output_user_root>/cache/repos/v1”。
标记:bazel_internal_configuration
--[no]repository_disable_download 默认值:“false”
如果已设置此参数,则在代码库提取过程中,不允许使用 ctx.download{,_and_Extract} 进行下载。请注意,网络访问并非完全停用; ctx.execute 仍可以运行访问互联网的任意可执行文件。
标记: bazel_internal_configuration
用于控制构建执行的选项:
--[no]all 默认值:“false”
获取构建任何目标或代码库所需的所有外部代码库。仅在 --enable_bzlmod 开启时有效。
标记: changes_inputs
--[no]configure 默认值:“false”
仅出于系统配置目的提取标记为“configure”的代码库。仅在 --enable_bzlmod 开启时有效。
标记: changes_inputs
--[no]force 默认值:“false”
忽略现有的代码库(如果有),并再次强制提取该代码库。仅在 --enable_bzlmod 开启时有效。
标记: changes_inputs
--gc_thrashing_threshold=<an integer in 0-100 range> 默认值:“100”
占用的空间百分比 (0-100),超过此值时,GcThrashingDetector 会将内存压力事件视为相对于其限值 (--gc_thrashing_limits)。如果设置为 100,则会停用 GcThrashingDetector。
标记: host_machine_resource_optimizations
--[no]keep_going [-k] 默认值:“false”
出错后应尽量多继续操作。虽然无法分析失败的目标以及依赖于该目标的目标,但这些目标的其他前提条件可以。
标记: eagerness_to_exit
--loading_phase_threads=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5"> 默认值:“auto”
用于加载/分析阶段的并行线程数。接受整数或关键字(“auto”“HOST_CPUS”“HOST_RAM”),可以选择后跟操作指令 ([-|*]<float>),例如:"auto", "HOST_CPUS*.5"。“auto”根据主机资源设置合理的默认值。必须至少为 1。
标记: bazel_internal_configuration
已累计 --repo=<a string> 次多次使用
仅提取指定的代码库,该代码库可以是 {@apparent_repo_name} 或 {@@canonical_repo_name}。仅在 --enable_bzlmod 开启时有效。
标记: changes_inputs
此选项会影响 Starlark 语言的语义或者可通过 BUILD 文件、.bzl 文件或 WORKSPACE 文件访问的 build API。
--[no]incompatible_config_setting_private_default_visibility 默认值:“false”
如果 incompatible_enforce_config_setting_visibility=false,则是空操作。否则,如果此标志为 false,则没有明确可见性属性的任何 config_setting 均为 //visibility:public。如果此标志为 true,config_setting 遵循与所有其他规则相同的可见性逻辑。请参阅 https://github.com/bazelbuild/bazel/issues/12933。
标记:loading_and_analysisincompatible_change
--[no]incompatible_enforce_config_setting_visibility 默认值:“true”
如果为 true,则强制执行 config_setting 可见性限制。如果为 false,则每个 config_setting 对每个目标都可见。请参阅 https://github.com/bazelbuild/bazel/issues/12932。
标记:loading_and_analysisincompatible_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> 默认值:“警告”
检查根模块中声明的直接“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 or error> 默认值:“update”
指定如何以及是否使用锁定文件。有效值包括,值为“update”以使用锁文件并在有更改时更新锁文件;值为“error”使用锁文件,但如果锁文件不是最新文件,则抛出错误;值为“off”既不对锁文件执行读取或写入操作,也抛出错误。
标记: loading_and_analysis
已累计 --override_module=<an equals-separated mapping of module name to path> 次多次使用
使用 <模块名称>=<路径> 形式的本地路径替换模块。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出
已累计 --registry=<a string> 次多次使用
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在之前的注册表中查找模块,只有在之前的注册表中缺失模块时,才会回退到后续注册表。
标记: changes_inputs
触发构建时间优化的选项:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 默认值:“1s:2,20s:3,1m:5”
限制,如果达到这些限制,则会导致 GcThrashingDetector 导致 Bazel 崩溃并出现 OOM。每个限制以 <period>:<count> 形式指定,其中 period 是时长,计数是正整数。如果在 <period> 内连续 <count> 次完整 GC 后仍被占用的到期空间(旧代堆)百分比超过 --gc_thrashing_threshold%,则会触发 OOM。可以用英文逗号分隔指定多个限制。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过 --skyframe_high_water_mark_threshold 设置的阈值,则当发生完整 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示完整 GC 事件永远不会触发丢弃操作。达到此上限后,当发生完整 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过由 --skyframe_high_water_mark_threshold 设置的阈值,当发生次要 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示次要 GC 事件永远不会触发丢弃操作。达到此上限后,当发生次要 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 默认值:“85”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量不低于此阈值,则会丢弃不必要的临时 Skyframe 状态。当 GC 抖动 (i) 是由此临时状态的内存使用引起的且 (ii) 在需要时比重构状态的成本更高时,即可降低 GC 抖动对实际使用时间的影响。
标记: host_machine_resource_optimizations
影响日志记录的详细程度、格式或位置的选项:
--[no]experimental_command_profile 默认值:“false”
将 Java 飞行记录器 CPU 配置文件记录到输出基本目录中的 profile.jfr 文件中。此标志的语法和语义将来可能会更改,以支持不同的配置文件类型或输出格式;使用时需自行承担风险。
--[no]experimental_record_metrics_for_all_mnemonics 默认值:“false”
默认情况下,已执行操作数量最多的 20 种助记符不得超过操作类型的数量。设置此选项后,系统会写入所有助记符的统计信息。
--experimental_repository_resolved_file=<a string> 默认值:“”
如果为非空,则写入一个 Starlark 值,其中包含已执行的所有 Starlark 代码库规则的解析信息。
标记: affects_outputs
用于指定或更改不属于其他类别的 Bazel 命令的通用输入的选项:
--experimental_resolved_file_instead_of_workspace=<a string> 默认值:“”
如果非空,则读取指定的已解析文件而不是 WORKSPACE 文件
标记: changes_inputs
远程缓存和执行选项:
--experimental_downloader_config=<a string> 默认值:参见说明
指定要用于配置远程下载程序的文件。此文件由多个行组成,其中每个行以指令(“allow”“block”或“rewrite”)开头,后跟主机名(分别用于“allow”和“block”)或两种格式,一种用于匹配,另一种用作替换网址,反向引用从“$1”开始。可以针对同一个网址提供多个“rewrite”指令,在这种情况下,系统会返回多个网址。
--experimental_worker_for_repo_fetching=<off, platform or virtual> 默认值:“关闭”
用于代码库提取的线程模式。如果设置为“off”,则不使用任何工作线程,并且 Repo 提取功能可能会重启。否则,如果设置为“platform”,则使用平台线程(即操作系统线程),如果设置为“virtual”,则使用虚拟线程。
其他选项,未以其他方式分类:
已累计 --deleted_packages=<comma-separated list of package names> 次多次使用
以英文逗号分隔的软件包名称列表,构建系统将其视为不存在的软件包名称,即使它们在软件包路径上的某个位置可见。 当删除现有软件包“x”的子软件包“x/y”时,使用此选项。例如,删除客户端中的 x/y/BUILD 后,如果构建系统遇到“//x:y/z”标签(如果其他 package_path 条目仍然提供该标签),则可能会收到提示。指定 --deleted_packages x/y 可避免此问题。
已累计 --override_repository=<an equals-separated mapping of repository name to path> 次多次使用
使用 <repo name>=<path> 形式的本地路径替换代码库。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出
--package_path=<colon-separated list of options> 默认值:“%workspace%”
以英文冒号分隔的列表,用于列出查找软件包的位置。以“%workspace%”开头的元素相对于封闭工作区。如果省略或为空,则默认值为“bazel info default-package-path”的输出。
--[no]show_loading_progress 默认值:“true”
如果启用,会导致 Bazel 输出“正在加载软件包:”消息。

帮助选项

出现在命令之前并由客户端解析的选项:
已累计 --distdir=<a path> 次多次使用
在访问网络下载归档文件之前,可在其他位置搜索归档文件。
标记: bazel_internal_configuration
如果设置此参数,当缓存命中时,代码库缓存将对文件进行硬链接,而不是进行复制。这是为了节省磁盘空间。
标记: bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 默认值:“0”
下载错误重试次数上限。如果设置为 0,系统会停用重试。
标记: experimental
--experimental_scale_timeouts=<a double> 默认值:“1.0”
按此系数扩缩 Starlark 代码库规则中的所有超时。通过这种方式,无需更改源代码,即可让外部代码库在速度低于规则作者预期的机器上运行。
标记:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 默认值:“8”
http 下载的尝试次数上限。
标记: bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 默认值:“0s”
http 下载重试的超时上限。如果值为 0,则未定义超时上限。
标记: bazel_internal_configuration
--http_timeout_scaling=<a double> 默认值:“1.0”
根据给定系数调整与 http 下载相关的所有超时时间
标记:bazel_internal_configuration
--repository_cache=<a path> 默认值:参见说明
指定在提取外部代码库期间获取的已下载值的缓存位置。使用空字符串作为参数会请求停用缓存,否则会使用默认值“<output_user_root>/cache/repos/v1”。
标记:bazel_internal_configuration
--[no]repository_disable_download 默认值:“false”
如果已设置此参数,则在代码库提取过程中,不允许使用 ctx.download{,_and_Extract} 进行下载。请注意,网络访问并非完全停用; ctx.execute 仍可以运行访问互联网的任意可执行文件。
标记: bazel_internal_configuration
用于控制构建执行的选项:
--gc_thrashing_threshold=<an integer in 0-100 range> 默认值:“100”
占用的空间百分比 (0-100),超过此值时,GcThrashingDetector 会将内存压力事件视为相对于其限值 (--gc_thrashing_limits)。如果设置为 100,则会停用 GcThrashingDetector。
标记: host_machine_resource_optimizations
与 Bzlmod 输出和语义相关的选项:
已累计 --allow_yanked_versions=<a string> 次多次使用
以“<module1>@<version1>,<module2>@<version2>”的形式指定模块版本,即使这些版本在来源的注册表中进行了声明(如果它们并非来自 NonRegistryOverride),也允许出现在已解析的依赖关系图中。否则,拉取版本会导致解析失败。您还可以使用“BZLMOD_ALLOW_YANKED_VERSIONS”环境变量定义允许的拖动版本。您可以使用关键字“all”停用此检查(不推荐)。
标记: loading_and_analysis
--check_bazel_compatibility=<error, warning or off> 默认值:“error”
检查 Bazel 模块的 Bazel 版本兼容性。有效值包括“error”(可上报为解决失败),“off”可停用检查,值为“warning”(用于在检测到不匹配时输出警告)。
标记: loading_and_analysis
--check_direct_dependencies=<off, warning or error> 默认值:“警告”
检查根模块中声明的直接“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 or error> 默认值:“update”
指定如何以及是否使用锁定文件。有效值包括,值为“update”以使用锁文件并在有更改时更新锁文件;值为“error”使用锁文件,但如果锁文件不是最新文件,则抛出错误;值为“off”既不对锁文件执行读取或写入操作,也抛出错误。
标记: loading_and_analysis
已累计 --override_module=<an equals-separated mapping of module name to path> 次多次使用
使用 <模块名称>=<路径> 形式的本地路径替换模块。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出
已累计 --registry=<a string> 次多次使用
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在之前的注册表中查找模块,只有在之前的注册表中缺失模块时,才会回退到后续注册表。
标记: changes_inputs
触发构建时间优化的选项:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 默认值:“1s:2,20s:3,1m:5”
限制,如果达到这些限制,则会导致 GcThrashingDetector 导致 Bazel 崩溃并出现 OOM。每个限制以 <period>:<count> 形式指定,其中 period 是时长,计数是正整数。如果在 <period> 内连续 <count> 次完整 GC 后仍被占用的到期空间(旧代堆)百分比超过 --gc_thrashing_threshold%,则会触发 OOM。可以用英文逗号分隔指定多个限制。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过 --skyframe_high_water_mark_threshold 设置的阈值,则当发生完整 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示完整 GC 事件永远不会触发丢弃操作。达到此上限后,当发生完整 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过由 --skyframe_high_water_mark_threshold 设置的阈值,当发生次要 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示次要 GC 事件永远不会触发丢弃操作。达到此上限后,当发生次要 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 默认值:“85”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量不低于此阈值,则会丢弃不必要的临时 Skyframe 状态。当 GC 抖动 (i) 是由此临时状态的内存使用引起的且 (ii) 在需要时比重构状态的成本更高时,即可降低 GC 抖动对实际使用时间的影响。
标记: host_machine_resource_optimizations
影响日志记录的详细程度、格式或位置的选项:
--[no]experimental_command_profile 默认值:“false”
将 Java 飞行记录器 CPU 配置文件记录到输出基本目录中的 profile.jfr 文件中。此标志的语法和语义将来可能会更改,以支持不同的配置文件类型或输出格式;使用时需自行承担风险。
--[no]experimental_record_metrics_for_all_mnemonics 默认值:“false”
默认情况下,已执行操作数量最多的 20 种助记符不得超过操作类型的数量。设置此选项后,系统会写入所有助记符的统计信息。
--help_verbosity=<long, medium or short> 默认值:“medium”
选择帮助命令的详细程度。
标记:affects_outputsterminal_output
--long [-l 个]
显示每个选项的完整说明,而不只是其名称。
扩展为:
  --help_verbosity=long

标记:affects_outputsterminal_output
--short
仅显示选项的名称,不显示选项类型或含义。
扩展为:
  --help_verbosity=short

标记: affects_outputsterminal_output
用于指定或更改不属于其他类别的 Bazel 命令的通用输入的选项:
--experimental_resolved_file_instead_of_workspace=<a string> 默认值:“”
如果非空,则读取指定的已解析文件而不是 WORKSPACE 文件
标记: changes_inputs
远程缓存和执行选项:
--experimental_downloader_config=<a string> 默认值:参见说明
指定要用于配置远程下载程序的文件。此文件由多个行组成,其中每个行以指令(“allow”“block”或“rewrite”)开头,后跟主机名(分别用于“allow”和“block”)或两种格式,一种用于匹配,另一种用作替换网址,反向引用从“$1”开始。可以针对同一个网址提供多个“rewrite”指令,在这种情况下,系统会返回多个网址。
--experimental_worker_for_repo_fetching=<off, platform or virtual> 默认值:“关闭”
用于代码库提取的线程模式。如果设置为“off”,则不使用任何工作线程,并且 Repo 提取功能可能会重启。否则,如果设置为“platform”,则使用平台线程(即操作系统线程),如果设置为“virtual”,则使用虚拟线程。
其他选项,未以其他方式分类:
已累计 --override_repository=<an equals-separated mapping of repository name to path> 次多次使用
使用 <repo name>=<path> 形式的本地路径替换代码库。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出

信息选项

build 继承所有选项。

出现在命令之前并由客户端解析的选项:
已累计 --distdir=<a path> 次多次使用
在访问网络下载归档文件之前,可在其他位置搜索归档文件。
标记: bazel_internal_configuration
如果设置此参数,当缓存命中时,代码库缓存将对文件进行硬链接,而不是进行复制。这是为了节省磁盘空间。
标记: bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 默认值:“0”
下载错误重试次数上限。如果设置为 0,系统会停用重试。
标记: experimental
--experimental_scale_timeouts=<a double> 默认值:“1.0”
按此系数扩缩 Starlark 代码库规则中的所有超时。通过这种方式,无需更改源代码,即可让外部代码库在速度低于规则作者预期的机器上运行。
标记:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 默认值:“8”
http 下载的尝试次数上限。
标记: bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 默认值:“0s”
http 下载重试的超时上限。如果值为 0,则未定义超时上限。
标记: bazel_internal_configuration
--http_timeout_scaling=<a double> 默认值:“1.0”
根据给定系数调整与 http 下载相关的所有超时时间
标记:bazel_internal_configuration
--repository_cache=<a path> 默认值:参见说明
指定在提取外部代码库期间获取的已下载值的缓存位置。使用空字符串作为参数会请求停用缓存,否则会使用默认值“<output_user_root>/cache/repos/v1”。
标记:bazel_internal_configuration
--[no]repository_disable_download 默认值:“false”
如果已设置此参数,则在代码库提取过程中,不允许使用 ctx.download{,_and_Extract} 进行下载。请注意,网络访问并非完全停用; ctx.execute 仍可以运行访问互联网的任意可执行文件。
标记: bazel_internal_configuration
用于控制构建执行的选项:
--gc_thrashing_threshold=<an integer in 0-100 range> 默认值:“100”
占用的空间百分比 (0-100),超过此值时,GcThrashingDetector 会将内存压力事件视为相对于其限值 (--gc_thrashing_limits)。如果设置为 100,则会停用 GcThrashingDetector。
标记: host_machine_resource_optimizations
与 Bzlmod 输出和语义相关的选项:
已累计 --allow_yanked_versions=<a string> 次多次使用
以“<module1>@<version1>,<module2>@<version2>”的形式指定模块版本,即使这些版本在来源的注册表中进行了声明(如果它们并非来自 NonRegistryOverride),也允许出现在已解析的依赖关系图中。否则,拉取版本会导致解析失败。您还可以使用“BZLMOD_ALLOW_YANKED_VERSIONS”环境变量定义允许的拖动版本。您可以使用关键字“all”停用此检查(不推荐)。
标记: loading_and_analysis
--check_bazel_compatibility=<error, warning or off> 默认值:“error”
检查 Bazel 模块的 Bazel 版本兼容性。有效值包括“error”(可上报为解决失败),“off”可停用检查,值为“warning”(用于在检测到不匹配时输出警告)。
标记: loading_and_analysis
--check_direct_dependencies=<off, warning or error> 默认值:“警告”
检查根模块中声明的直接“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 or error> 默认值:“update”
指定如何以及是否使用锁定文件。有效值包括,值为“update”以使用锁文件并在有更改时更新锁文件;值为“error”使用锁文件,但如果锁文件不是最新文件,则抛出错误;值为“off”既不对锁文件执行读取或写入操作,也抛出错误。
标记: loading_and_analysis
已累计 --override_module=<an equals-separated mapping of module name to path> 次多次使用
使用 <模块名称>=<路径> 形式的本地路径替换模块。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出
已累计 --registry=<a string> 次多次使用
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在之前的注册表中查找模块,只有在之前的注册表中缺失模块时,才会回退到后续注册表。
标记: changes_inputs
触发构建时间优化的选项:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 默认值:“1s:2,20s:3,1m:5”
限制,如果达到这些限制,则会导致 GcThrashingDetector 导致 Bazel 崩溃并出现 OOM。每个限制以 <period>:<count> 形式指定,其中 period 是时长,计数是正整数。如果在 <period> 内连续 <count> 次完整 GC 后仍被占用的到期空间(旧代堆)百分比超过 --gc_thrashing_threshold%,则会触发 OOM。可以用英文逗号分隔指定多个限制。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过 --skyframe_high_water_mark_threshold 设置的阈值,则当发生完整 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示完整 GC 事件永远不会触发丢弃操作。达到此上限后,当发生完整 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过由 --skyframe_high_water_mark_threshold 设置的阈值,当发生次要 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示次要 GC 事件永远不会触发丢弃操作。达到此上限后,当发生次要 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 默认值:“85”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量不低于此阈值,则会丢弃不必要的临时 Skyframe 状态。当 GC 抖动 (i) 是由此临时状态的内存使用引起的且 (ii) 在需要时比重构状态的成本更高时,即可降低 GC 抖动对实际使用时间的影响。
标记: host_machine_resource_optimizations
影响日志记录的详细程度、格式或位置的选项:
--[no]experimental_command_profile 默认值:“false”
将 Java 飞行记录器 CPU 配置文件记录到输出基本目录中的 profile.jfr 文件中。此标志的语法和语义将来可能会更改,以支持不同的配置文件类型或输出格式;使用时需自行承担风险。
--[no]experimental_record_metrics_for_all_mnemonics 默认值:“false”
默认情况下,已执行操作数量最多的 20 种助记符不得超过操作类型的数量。设置此选项后,系统会写入所有助记符的统计信息。
--[no]show_make_env 默认值:“false”
在输出中添加“Make”环境。
标记: affects_outputsterminal_output
用于指定或更改 Bazel 命令的通用输入(不属于其他类别)的选项:
--experimental_resolved_file_instead_of_workspace=<a string> 默认值:“”
如果非空,则读取指定的已解析文件而不是 WORKSPACE 文件
标记: changes_inputs
远程缓存和执行选项:
--experimental_downloader_config=<a string> 默认值:参见说明
指定要用于配置远程下载程序的文件。此文件由多个行组成,其中每个行以指令(“allow”“block”或“rewrite”)开头,后跟主机名(分别用于“allow”和“block”)或两种格式,一种用于匹配,另一种用作替换网址,反向引用从“$1”开始。可以针对同一个网址提供多个“rewrite”指令,在这种情况下,系统会返回多个网址。
--experimental_worker_for_repo_fetching=<off, platform or virtual> 默认值:“关闭”
用于代码库提取的线程模式。如果设置为“off”,则不使用任何工作线程,并且 Repo 提取功能可能会重启。否则,如果设置为“platform”,则使用平台线程(即操作系统线程),如果设置为“virtual”,则使用虚拟线程。
其他选项,未以其他方式分类:
已累计 --override_repository=<an equals-separated mapping of repository name to path> 次多次使用
使用 <repo name>=<path> 形式的本地路径替换代码库。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出

许可选项

出现在命令之前并由客户端解析的选项:
已累计 --distdir=<a path> 次多次使用
在访问网络下载归档文件之前,可在其他位置搜索归档文件。
标记: bazel_internal_configuration
如果设置此参数,当缓存命中时,代码库缓存将对文件进行硬链接,而不是进行复制。这是为了节省磁盘空间。
标记: bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 默认值:“0”
下载错误重试次数上限。如果设置为 0,系统会停用重试。
标记: experimental
--experimental_scale_timeouts=<a double> 默认值:“1.0”
按此系数扩缩 Starlark 代码库规则中的所有超时。通过这种方式,无需更改源代码,即可让外部代码库在速度低于规则作者预期的机器上运行。
标记:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 默认值:“8”
http 下载的尝试次数上限。
标记: bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 默认值:“0s”
http 下载重试的超时上限。如果值为 0,则未定义超时上限。
标记: bazel_internal_configuration
--http_timeout_scaling=<a double> 默认值:“1.0”
根据给定系数调整与 http 下载相关的所有超时时间
标记:bazel_internal_configuration
--repository_cache=<a path> 默认值:参见说明
指定在提取外部代码库期间获取的已下载值的缓存位置。使用空字符串作为参数会请求停用缓存,否则会使用默认值“<output_user_root>/cache/repos/v1”。
标记:bazel_internal_configuration
--[no]repository_disable_download 默认值:“false”
如果已设置此参数,则在代码库提取过程中,不允许使用 ctx.download{,_and_Extract} 进行下载。请注意,网络访问并非完全停用; ctx.execute 仍可以运行访问互联网的任意可执行文件。
标记: bazel_internal_configuration
用于控制构建执行的选项:
--gc_thrashing_threshold=<an integer in 0-100 range> 默认值:“100”
占用的空间百分比 (0-100),超过此值时,GcThrashingDetector 会将内存压力事件视为相对于其限值 (--gc_thrashing_limits)。如果设置为 100,则会停用 GcThrashingDetector。
标记: host_machine_resource_optimizations
与 Bzlmod 输出和语义相关的选项:
已累计 --allow_yanked_versions=<a string> 次多次使用
以“<module1>@<version1>,<module2>@<version2>”的形式指定模块版本,即使这些版本在来源的注册表中进行了声明(如果它们并非来自 NonRegistryOverride),也允许出现在已解析的依赖关系图中。否则,拉取版本会导致解析失败。您还可以使用“BZLMOD_ALLOW_YANKED_VERSIONS”环境变量定义允许的拖动版本。您可以使用关键字“all”停用此检查(不推荐)。
标记: loading_and_analysis
--check_bazel_compatibility=<error, warning or off> 默认值:“error”
检查 Bazel 模块的 Bazel 版本兼容性。有效值包括“error”(可上报为解决失败),“off”可停用检查,值为“warning”(用于在检测到不匹配时输出警告)。
标记: loading_and_analysis
--check_direct_dependencies=<off, warning or error> 默认值:“警告”
检查根模块中声明的直接“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 or error> 默认值:“update”
指定如何以及是否使用锁定文件。有效值包括,值为“update”以使用锁文件并在有更改时更新锁文件;值为“error”使用锁文件,但如果锁文件不是最新文件,则抛出错误;值为“off”既不对锁文件执行读取或写入操作,也抛出错误。
标记: loading_and_analysis
已累计 --override_module=<an equals-separated mapping of module name to path> 次多次使用
使用 <模块名称>=<路径> 形式的本地路径替换模块。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出
已累计 --registry=<a string> 次多次使用
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在之前的注册表中查找模块,只有在之前的注册表中缺失模块时,才会回退到后续注册表。
标记: changes_inputs
触发构建时间优化的选项:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 默认值:“1s:2,20s:3,1m:5”
限制,如果达到这些限制,则会导致 GcThrashingDetector 导致 Bazel 崩溃并出现 OOM。每个限制以 <period>:<count> 形式指定,其中 period 是时长,计数是正整数。如果在 <period> 内连续 <count> 次完整 GC 后仍被占用的到期空间(旧代堆)百分比超过 --gc_thrashing_threshold%,则会触发 OOM。可以用英文逗号分隔指定多个限制。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过 --skyframe_high_water_mark_threshold 设置的阈值,则当发生完整 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示完整 GC 事件永远不会触发丢弃操作。达到此上限后,当发生完整 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过由 --skyframe_high_water_mark_threshold 设置的阈值,当发生次要 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示次要 GC 事件永远不会触发丢弃操作。达到此上限后,当发生次要 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 默认值:“85”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量不低于此阈值,则会丢弃不必要的临时 Skyframe 状态。当 GC 抖动 (i) 是由此临时状态的内存使用引起的且 (ii) 在需要时比重构状态的成本更高时,即可降低 GC 抖动对实际使用时间的影响。
标记: host_machine_resource_optimizations
影响日志记录的详细程度、格式或位置的选项:
--[no]experimental_command_profile 默认值:“false”
将 Java 飞行记录器 CPU 配置文件记录到输出基本目录中的 profile.jfr 文件中。此标志的语法和语义将来可能会更改,以支持不同的配置文件类型或输出格式;使用时需自行承担风险。
--[no]experimental_record_metrics_for_all_mnemonics 默认值:“false”
默认情况下,已执行操作数量最多的 20 种助记符不得超过操作类型的数量。设置此选项后,系统会写入所有助记符的统计信息。
用于指定或更改不属于其他类别的 Bazel 命令的通用输入的选项:
--experimental_resolved_file_instead_of_workspace=<a string> 默认值:“”
如果非空,则读取指定的已解析文件而不是 WORKSPACE 文件
标记: changes_inputs
远程缓存和执行选项:
--experimental_downloader_config=<a string> 默认值:参见说明
指定要用于配置远程下载程序的文件。此文件由多个行组成,其中每个行以指令(“allow”“block”或“rewrite”)开头,后跟主机名(分别用于“allow”和“block”)或两种格式,一种用于匹配,另一种用作替换网址,反向引用从“$1”开始。可以针对同一个网址提供多个“rewrite”指令,在这种情况下,系统会返回多个网址。
--experimental_worker_for_repo_fetching=<off, platform or virtual> 默认值:“关闭”
用于代码库提取的线程模式。如果设置为“off”,则不使用任何工作线程,并且 Repo 提取功能可能会重启。否则,如果设置为“platform”,则使用平台线程(即操作系统线程),如果设置为“virtual”,则使用虚拟线程。
其他选项,未以其他方式分类:
已累计 --override_repository=<an equals-separated mapping of repository name to path> 次多次使用
使用 <repo name>=<path> 形式的本地路径替换代码库。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出

移动设备安装选项

build 继承所有选项。

出现在命令之前并由客户端解析的选项:
已累计 --distdir=<a path> 次多次使用
在访问网络下载归档文件之前,可在其他位置搜索归档文件。
标记: bazel_internal_configuration
如果设置此参数,当缓存命中时,代码库缓存将对文件进行硬链接,而不是进行复制。这是为了节省磁盘空间。
标记: bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 默认值:“0”
下载错误重试次数上限。如果设置为 0,系统会停用重试。
标记: experimental
--experimental_scale_timeouts=<a double> 默认值:“1.0”
按此系数扩缩 Starlark 代码库规则中的所有超时。通过这种方式,无需更改源代码,即可让外部代码库在速度低于规则作者预期的机器上运行。
标记:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 默认值:“8”
http 下载的尝试次数上限。
标记: bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 默认值:“0s”
http 下载重试的超时上限。如果值为 0,则未定义超时上限。
标记: bazel_internal_configuration
--http_timeout_scaling=<a double> 默认值:“1.0”
根据给定系数调整与 http 下载相关的所有超时时间
标记:bazel_internal_configuration
--repository_cache=<a path> 默认值:参见说明
指定在提取外部代码库期间获取的已下载值的缓存位置。使用空字符串作为参数会请求停用缓存,否则会使用默认值“<output_user_root>/cache/repos/v1”。
标记:bazel_internal_configuration
--[no]repository_disable_download 默认值:“false”
如果已设置此参数,则在代码库提取过程中,不允许使用 ctx.download{,_and_Extract} 进行下载。请注意,网络访问并非完全停用; ctx.execute 仍可以运行访问互联网的任意可执行文件。
标记: bazel_internal_configuration
用于控制构建执行的选项:
--gc_thrashing_threshold=<an integer in 0-100 range> 默认值:“100”
占用的空间百分比 (0-100),超过此值时,GcThrashingDetector 会将内存压力事件视为相对于其限值 (--gc_thrashing_limits)。如果设置为 100,则会停用 GcThrashingDetector。
标记: host_machine_resource_optimizations
--mode=<classic, classic_internal_test_do_not_use or skylark> 默认值:“传统版”
选择如何运行移动设备安装。“classic”运行的是当前版本的移动安装。“skylark”使用新的 Starlark 版本,该版本支持 android_test。
标记:loading_and_analysisexecutionincompatible_change
用于配置用于执行操作的工具链的选项:
--adb=<a string> 默认值:“”
要用于“mobile-install”命令的 adb 二进制文件。如果未指定,则使用 Android SDK 中由 --android_sdk 命令行选项指定的 SDK(如果未指定 --android_sdk,则使用默认 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
与 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> 默认值:“警告”
检查根模块中声明的直接“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 or error> 默认值:“update”
指定如何以及是否使用锁定文件。有效值包括,值为“update”以使用锁文件并在有更改时更新锁文件;值为“error”使用锁文件,但如果锁文件不是最新文件,则抛出错误;值为“off”既不对锁文件执行读取或写入操作,也抛出错误。
标记: loading_and_analysis
已累计 --override_module=<an equals-separated mapping of module name to path> 次多次使用
使用 <模块名称>=<路径> 形式的本地路径替换模块。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出
已累计 --registry=<a string> 次多次使用
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在之前的注册表中查找模块,只有在之前的注册表中缺失模块时,才会回退到后续注册表。
标记: changes_inputs
触发构建时间优化的选项:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 默认值:“1s:2,20s:3,1m:5”
限制,如果达到这些限制,则会导致 GcThrashingDetector 导致 Bazel 崩溃并出现 OOM。每个限制以 <period>:<count> 形式指定,其中 period 是时长,计数是正整数。如果在 <period> 内连续 <count> 次完整 GC 后仍被占用的到期空间(旧代堆)百分比超过 --gc_thrashing_threshold%,则会触发 OOM。可以用英文逗号分隔指定多个限制。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过 --skyframe_high_water_mark_threshold 设置的阈值,则当发生完整 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示完整 GC 事件永远不会触发丢弃操作。达到此上限后,当发生完整 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过由 --skyframe_high_water_mark_threshold 设置的阈值,当发生次要 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示次要 GC 事件永远不会触发丢弃操作。达到此上限后,当发生次要 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 默认值:“85”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量不低于此阈值,则会丢弃不必要的临时 Skyframe 状态。当 GC 抖动 (i) 是由此临时状态的内存使用引起的且 (ii) 在需要时比重构状态的成本更高时,即可降低 GC 抖动对实际使用时间的影响。
标记: host_machine_resource_optimizations
影响日志记录的详细程度、格式或位置的选项:
--[no]experimental_command_profile 默认值:“false”
将 Java 飞行记录器 CPU 配置文件记录到输出基本目录中的 profile.jfr 文件中。此标志的语法和语义将来可能会更改,以支持不同的配置文件类型或输出格式;使用时需自行承担风险。
--[no]experimental_record_metrics_for_all_mnemonics 默认值:“false”
默认情况下,已执行操作数量最多的 20 种助记符不得超过操作类型的数量。设置此选项后,系统会写入所有助记符的统计信息。
--incremental_install_verbosity=<a string> 默认值:“”
增量安装的详细程度。对于调试日志记录,设置为 1。
标记: bazel_monitoring
用于指定或更改不属于其他类别的 Bazel 命令的通用输入的选项:
--experimental_resolved_file_instead_of_workspace=<a string> 默认值:“”
如果非空,则读取指定的已解析文件而不是 WORKSPACE 文件
标记: changes_inputs
远程缓存和执行选项:
--experimental_downloader_config=<a string> 默认值:参见说明
指定要用于配置远程下载程序的文件。此文件由多个行组成,其中每个行以指令(“allow”“block”或“rewrite”)开头,后跟主机名(分别用于“allow”和“block”)或两种格式,一种用于匹配,另一种用作替换网址,反向引用从“$1”开始。可以针对同一个网址提供多个“rewrite”指令,在这种情况下,系统会返回多个网址。
--experimental_worker_for_repo_fetching=<off, platform or virtual> 默认值:“关闭”
用于代码库提取的线程模式。如果设置为“off”,则不使用任何工作线程,并且 Repo 提取功能可能会重启。否则,如果设置为“platform”,则使用平台线程(即操作系统线程),如果设置为“virtual”,则使用虚拟线程。
其他选项,未以其他方式分类:
已累计 --override_repository=<an equals-separated mapping of repository name to path> 次多次使用
使用 <repo name>=<path> 形式的本地路径替换代码库。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出

强化包选项

出现在命令之前并由客户端解析的选项:
已累计 --distdir=<a path> 次多次使用
在访问网络下载归档文件之前,可在其他位置搜索归档文件。
标记: bazel_internal_configuration
如果设置此参数,当缓存命中时,代码库缓存将对文件进行硬链接,而不是进行复制。这是为了节省磁盘空间。
标记: bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 默认值:“0”
下载错误重试次数上限。如果设置为 0,系统会停用重试。
标记: experimental
--experimental_scale_timeouts=<a double> 默认值:“1.0”
按此系数扩缩 Starlark 代码库规则中的所有超时。通过这种方式,无需更改源代码,即可让外部代码库在速度低于规则作者预期的机器上运行。
标记:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 默认值:“8”
http 下载的尝试次数上限。
标记: bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 默认值:“0s”
http 下载重试的超时上限。如果值为 0,则未定义超时上限。
标记: bazel_internal_configuration
--http_timeout_scaling=<a double> 默认值:“1.0”
根据给定系数调整与 http 下载相关的所有超时时间
标记:bazel_internal_configuration
--repository_cache=<a path> 默认值:参见说明
指定在提取外部代码库期间获取的已下载值的缓存位置。使用空字符串作为参数会请求停用缓存,否则会使用默认值“<output_user_root>/cache/repos/v1”。
标记:bazel_internal_configuration
--[no]repository_disable_download 默认值:“false”
如果已设置此参数,则在代码库提取过程中,不允许使用 ctx.download{,_and_Extract} 进行下载。请注意,网络访问并非完全停用; ctx.execute 仍可以运行访问互联网的任意可执行文件。
标记: bazel_internal_configuration
用于控制构建执行的选项:
--gc_thrashing_threshold=<an integer in 0-100 range> 默认值:“100”
占用的空间百分比 (0-100),超过此值时,GcThrashingDetector 会将内存压力事件视为相对于其限值 (--gc_thrashing_limits)。如果设置为 100,则会停用 GcThrashingDetector。
标记: host_machine_resource_optimizations
--[no]keep_going [-k] 默认值:“false”
出错后应尽量多继续操作。虽然无法分析失败的目标以及依赖于该目标的目标,但这些目标的其他前提条件可以。
标记: eagerness_to_exit
--loading_phase_threads=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5"> 默认值:“auto”
用于加载/分析阶段的并行线程数。接受整数或关键字(“auto”“HOST_CPUS”“HOST_RAM”),可以选择后跟操作指令 ([-|*]<float>),例如:"auto", "HOST_CPUS*.5"。“auto”根据主机资源设置合理的默认值。必须至少为 1。
标记: bazel_internal_configuration
此选项会影响 Starlark 语言的语义或者可通过 BUILD 文件、.bzl 文件或 WORKSPACE 文件访问的 build API。
--[no]incompatible_config_setting_private_default_visibility 默认值:“false”
如果 incompatible_enforce_config_setting_visibility=false,则是空操作。否则,如果此标志为 false,则没有明确可见性属性的任何 config_setting 均为 //visibility:public。如果此标志为 true,config_setting 遵循与所有其他规则相同的可见性逻辑。请参阅 https://github.com/bazelbuild/bazel/issues/12933。
标记:loading_and_analysisincompatible_change
--[no]incompatible_enforce_config_setting_visibility 默认值:“true”
如果为 true,则强制执行 config_setting 可见性限制。如果为 false,则每个 config_setting 对每个目标都可见。请参阅 https://github.com/bazelbuild/bazel/issues/12932。
标记:loading_and_analysisincompatible_change
与 `mod` 子命令的输出和语义相关的选项:
--base_module=<"<root>" for the root module; <module>@<version> for a specific version of a module; <module> for all versions of a module; @<name> for a repo with the given apparent name; or @@<name> for a repo with the given canonical name> 默认值:“<root>”
指定要解读指定目标代码库的相对模块。
标记: terminal_output
--charset=<utf8 or ascii> 默认值:“utf8”
选择要用于树的字符集。仅影响文本输出。有效值为“utf8”或“ascii”。默认值为“utf8”
标记: terminal_output
--[no]cycles 默认值:“false”
指出所显示树内的依赖项循环(默认情况下,这些循环通常会被忽略)。
标记: terminal_output
--depth=<an integer> 默认值:“-1”
依赖关系树的最大显示深度。例如,深度为 1 将显示直接依赖项。对于树、路径和 all_path,它默认为 Integer.MAX_VALUE;对于依赖项并说明,它默认为 1(除了目标叶子及其父级之外,仅显示根的直接依赖项)。
标记: terminal_output
--extension_filter=<a comma-separated list of <extension>s> 默认值:参见说明
仅当设置了这些模块扩展各自的标志时,才会显示它们的用法以及由其生成的代码库。如果设置了此字段,结果图将仅包含包含使用指定扩展名的模块的路径。空列表会停用过滤器,实际上是指定所有可能的扩展名。
标记: terminal_output
--extension_info=<hidden, usages, repos or all> 默认值:“隐藏”
指定要包含在查询结果中的扩展程序使用情况的详细信息。“Usages”只会显示扩展程序的名称,“repos”还将包含使用 use_repo 导入的代码库,“all”还会显示扩展程序生成的其他代码库。
标记: terminal_output
--extension_usages=<a comma-separated list of <module>s> 默认值:“”
指定在 show_extension 查询中显示其扩展程序使用情况的模块。
标记: terminal_output
--from=<a comma-separated list of <module>s> 默认值:“<root>”
显示依赖关系图查询的起始模块。请检查每个查询的说明,了解其确切语义。默认为 <root>。
标记: terminal_output
--[no]include_builtin 默认值:“false”
在依赖关系图中添加内置模块。噪音很大,因此默认处于停用状态。
标记: terminal_output
--[no]include_unused 默认值:“false”
查询还会考虑并显示未使用的模块,这些模块一经选择就不会显示在模块分辨率图中(由于“最低版本选择”或“替换”规则)。这可能对每种查询类型产生不同的影响,例如在 all_paths 命令中包含新路径,或在说明命令中包含额外的从属路径。
标记: terminal_output
--output=<text, json or graph> 默认值:“text”
输出查询结果时应采用的格式。允许的查询值包括:text、json、graph
标记: terminal_output
--[no]verbose 默认值:“false”
这些查询还会显示模块被解析为当前版本(如果已更改)的原因。仅针对说明查询默认为 true。
标记: terminal_output
与 Bzlmod 输出和语义相关的选项:
已累计 --allow_yanked_versions=<a string> 次多次使用
以“<module1>@<version1>,<module2>@<version2>”的形式指定模块版本,即使这些版本在来源的注册表中进行了声明(如果它们并非来自 NonRegistryOverride),也允许出现在已解析的依赖关系图中。否则,拉取版本会导致解析失败。您还可以使用“BZLMOD_ALLOW_YANKED_VERSIONS”环境变量定义允许的拖动版本。您可以使用关键字“all”停用此检查(不推荐)。
标记: loading_and_analysis
--check_bazel_compatibility=<error, warning or off> 默认值:“error”
检查 Bazel 模块的 Bazel 版本兼容性。有效值包括“error”(可上报为解决失败),“off”可停用检查,值为“warning”(用于在检测到不匹配时输出警告)。
标记: loading_and_analysis
--check_direct_dependencies=<off, warning or error> 默认值:“警告”
检查根模块中声明的直接“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 or error> 默认值:“update”
指定如何以及是否使用锁定文件。有效值包括,值为“update”以使用锁文件并在有更改时更新锁文件;值为“error”使用锁文件,但如果锁文件不是最新文件,则抛出错误;值为“off”既不对锁文件执行读取或写入操作,也抛出错误。
标记: loading_and_analysis
已累计 --override_module=<an equals-separated mapping of module name to path> 次多次使用
使用 <模块名称>=<路径> 形式的本地路径替换模块。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出
已累计 --registry=<a string> 次多次使用
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在之前的注册表中查找模块,只有在之前的注册表中缺失模块时,才会回退到后续注册表。
标记: changes_inputs
触发构建时间优化的选项:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 默认值:“1s:2,20s:3,1m:5”
限制,如果达到这些限制,则会导致 GcThrashingDetector 导致 Bazel 崩溃并出现 OOM。每个限制以 <period>:<count> 形式指定,其中 period 是时长,计数是正整数。如果在 <period> 内连续 <count> 次完整 GC 后仍被占用的到期空间(旧代堆)百分比超过 --gc_thrashing_threshold%,则会触发 OOM。可以用英文逗号分隔指定多个限制。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过 --skyframe_high_water_mark_threshold 设置的阈值,则当发生完整 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示完整 GC 事件永远不会触发丢弃操作。达到此上限后,当发生完整 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过由 --skyframe_high_water_mark_threshold 设置的阈值,当发生次要 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示次要 GC 事件永远不会触发丢弃操作。达到此上限后,当发生次要 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 默认值:“85”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量不低于此阈值,则会丢弃不必要的临时 Skyframe 状态。当 GC 抖动 (i) 是由此临时状态的内存使用引起的且 (ii) 在需要时比重构状态的成本更高时,即可降低 GC 抖动对实际使用时间的影响。
标记: host_machine_resource_optimizations
影响日志记录的详细程度、格式或位置的选项:
--[no]experimental_command_profile 默认值:“false”
将 Java 飞行记录器 CPU 配置文件记录到输出基本目录中的 profile.jfr 文件中。此标志的语法和语义将来可能会更改,以支持不同的配置文件类型或输出格式;使用时需自行承担风险。
--[no]experimental_record_metrics_for_all_mnemonics 默认值:“false”
默认情况下,已执行操作数量最多的 20 种助记符不得超过操作类型的数量。设置此选项后,系统会写入所有助记符的统计信息。
用于指定或更改不属于其他类别的 Bazel 命令的通用输入的选项:
--experimental_resolved_file_instead_of_workspace=<a string> 默认值:“”
如果非空,则读取指定的已解析文件而不是 WORKSPACE 文件
标记: changes_inputs
远程缓存和执行选项:
--experimental_downloader_config=<a string> 默认值:参见说明
指定要用于配置远程下载程序的文件。此文件由多个行组成,其中每个行以指令(“allow”“block”或“rewrite”)开头,后跟主机名(分别用于“allow”和“block”)或两种格式,一种用于匹配,另一种用作替换网址,反向引用从“$1”开始。可以针对同一个网址提供多个“rewrite”指令,在这种情况下,系统会返回多个网址。
--experimental_worker_for_repo_fetching=<off, platform or virtual> 默认值:“关闭”
用于代码库提取的线程模式。如果设置为“off”,则不使用任何工作线程,并且 Repo 提取功能可能会重启。否则,如果设置为“platform”,则使用平台线程(即操作系统线程),如果设置为“virtual”,则使用虚拟线程。
其他选项,未以其他方式分类:
已累计 --deleted_packages=<comma-separated list of package names> 次多次使用
以英文逗号分隔的软件包名称列表,构建系统将其视为不存在的软件包名称,即使它们在软件包路径上的某个位置可见。 当删除现有软件包“x”的子软件包“x/y”时,使用此选项。例如,删除客户端中的 x/y/BUILD 后,如果构建系统遇到“//x:y/z”标签(如果其他 package_path 条目仍然提供该标签),则可能会收到提示。指定 --deleted_packages x/y 可避免此问题。
已累计 --override_repository=<an equals-separated mapping of repository name to path> 次多次使用
使用 <repo name>=<path> 形式的本地路径替换代码库。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出
--package_path=<colon-separated list of options> 默认值:“%workspace%”
以英文冒号分隔的列表,用于列出查找软件包的位置。以“%workspace%”开头的元素相对于封闭工作区。如果省略或为空,则默认值为“bazel info default-package-path”的输出。
--[no]show_loading_progress 默认值:“true”
如果启用,会导致 Bazel 输出“正在加载软件包:”消息。

build 继承所有选项。

出现在命令之前并由客户端解析的选项:
已累计 --distdir=<a path> 次多次使用
在访问网络下载归档文件之前,可在其他位置搜索归档文件。
标记: bazel_internal_configuration
如果设置此参数,当缓存命中时,代码库缓存将对文件进行硬链接,而不是进行复制。这是为了节省磁盘空间。
标记: bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 默认值:“0”
下载错误重试次数上限。如果设置为 0,系统会停用重试。
标记: experimental
--experimental_scale_timeouts=<a double> 默认值:“1.0”
按此系数扩缩 Starlark 代码库规则中的所有超时。通过这种方式,无需更改源代码,即可让外部代码库在速度低于规则作者预期的机器上运行。
标记:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 默认值:“8”
http 下载的尝试次数上限。
标记: bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 默认值:“0s”
http 下载重试的超时上限。如果值为 0,则未定义超时上限。
标记: bazel_internal_configuration
--http_timeout_scaling=<a double> 默认值:“1.0”
根据给定系数调整与 http 下载相关的所有超时时间
标记:bazel_internal_configuration
--repository_cache=<a path> 默认值:参见说明
指定在提取外部代码库期间获取的已下载值的缓存位置。使用空字符串作为参数会请求停用缓存,否则会使用默认值“<output_user_root>/cache/repos/v1”。
标记:bazel_internal_configuration
--[no]repository_disable_download 默认值:“false”
如果已设置此参数,则在代码库提取过程中,不允许使用 ctx.download{,_and_Extract} 进行下载。请注意,网络访问并非完全停用; ctx.execute 仍可以运行访问互联网的任意可执行文件。
标记: bazel_internal_configuration
用于控制构建执行的选项:
--gc_thrashing_threshold=<an integer in 0-100 range> 默认值:“100”
占用的空间百分比 (0-100),超过此值时,GcThrashingDetector 会将内存压力事件视为相对于其限值 (--gc_thrashing_limits)。如果设置为 100,则会停用 GcThrashingDetector。
标记: host_machine_resource_optimizations
与 Bzlmod 输出和语义相关的选项:
已累计 --allow_yanked_versions=<a string> 次多次使用
以“<module1>@<version1>,<module2>@<version2>”的形式指定模块版本,即使这些版本在来源的注册表中进行了声明(如果它们并非来自 NonRegistryOverride),也允许出现在已解析的依赖关系图中。否则,拉取版本会导致解析失败。您还可以使用“BZLMOD_ALLOW_YANKED_VERSIONS”环境变量定义允许的拖动版本。您可以使用关键字“all”停用此检查(不推荐)。
标记: loading_and_analysis
--check_bazel_compatibility=<error, warning or off> 默认值:“error”
检查 Bazel 模块的 Bazel 版本兼容性。有效值包括“error”(可上报为解决失败),“off”可停用检查,值为“warning”(用于在检测到不匹配时输出警告)。
标记: loading_and_analysis
--check_direct_dependencies=<off, warning or error> 默认值:“警告”
检查根模块中声明的直接“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 or error> 默认值:“update”
指定如何以及是否使用锁定文件。有效值包括,值为“update”以使用锁文件并在有更改时更新锁文件;值为“error”使用锁文件,但如果锁文件不是最新文件,则抛出错误;值为“off”既不对锁文件执行读取或写入操作,也抛出错误。
标记: loading_and_analysis
已累计 --override_module=<an equals-separated mapping of module name to path> 次多次使用
使用 <模块名称>=<路径> 形式的本地路径替换模块。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出
已累计 --registry=<a string> 次多次使用
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在之前的注册表中查找模块,只有在之前的注册表中缺失模块时,才会回退到后续注册表。
标记: changes_inputs
触发构建时间优化的选项:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 默认值:“1s:2,20s:3,1m:5”
限制,如果达到这些限制,则会导致 GcThrashingDetector 导致 Bazel 崩溃并出现 OOM。每个限制以 <period>:<count> 形式指定,其中 period 是时长,计数是正整数。如果在 <period> 内连续 <count> 次完整 GC 后仍被占用的到期空间(旧代堆)百分比超过 --gc_thrashing_threshold%,则会触发 OOM。可以用英文逗号分隔指定多个限制。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过 --skyframe_high_water_mark_threshold 设置的阈值,则当发生完整 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示完整 GC 事件永远不会触发丢弃操作。达到此上限后,当发生完整 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过由 --skyframe_high_water_mark_threshold 设置的阈值,当发生次要 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示次要 GC 事件永远不会触发丢弃操作。达到此上限后,当发生次要 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 默认值:“85”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量不低于此阈值,则会丢弃不必要的临时 Skyframe 状态。当 GC 抖动 (i) 是由此临时状态的内存使用引起的且 (ii) 在需要时比重构状态的成本更高时,即可降低 GC 抖动对实际使用时间的影响。
标记: host_machine_resource_optimizations
影响日志记录的详细程度、格式或位置的选项:
--[no]experimental_command_profile 默认值:“false”
将 Java 飞行记录器 CPU 配置文件记录到输出基本目录中的 profile.jfr 文件中。此标志的语法和语义将来可能会更改,以支持不同的配置文件类型或输出格式;使用时需自行承担风险。
--[no]experimental_record_metrics_for_all_mnemonics 默认值:“false”
默认情况下,已执行操作数量最多的 20 种助记符不得超过操作类型的数量。设置此选项后,系统会写入所有助记符的统计信息。
用于指定或更改不属于其他类别的 Bazel 命令的通用输入的选项:
--experimental_resolved_file_instead_of_workspace=<a string> 默认值:“”
如果非空,则读取指定的已解析文件而不是 WORKSPACE 文件
标记: changes_inputs
远程缓存和执行选项:
--experimental_downloader_config=<a string> 默认值:参见说明
指定要用于配置远程下载程序的文件。此文件由多个行组成,其中每个行以指令(“allow”“block”或“rewrite”)开头,后跟主机名(分别用于“allow”和“block”)或两种格式,一种用于匹配,另一种用作替换网址,反向引用从“$1”开始。可以针对同一个网址提供多个“rewrite”指令,在这种情况下,系统会返回多个网址。
--experimental_worker_for_repo_fetching=<off, platform or virtual> 默认值:“关闭”
用于代码库提取的线程模式。如果设置为“off”,则不使用任何工作线程,并且 Repo 提取功能可能会重启。否则,如果设置为“platform”,则使用平台线程(即操作系统线程),如果设置为“virtual”,则使用虚拟线程。
其他选项,未以其他方式分类:
已累计 --override_repository=<an equals-separated mapping of repository name to path> 次多次使用
使用 <repo name>=<path> 形式的本地路径替换代码库。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出
已累计 --print_action_mnemonics=<a string> 次多次使用
用于过滤 print_action 数据的助记符列表,留空时不会执行任何过滤。

查询选项

出现在命令之前并由客户端解析的选项:
已累计 --distdir=<a path> 次多次使用
在访问网络下载归档文件之前,可在其他位置搜索归档文件。
标记: bazel_internal_configuration
如果设置此参数,当缓存命中时,代码库缓存将对文件进行硬链接,而不是进行复制。这是为了节省磁盘空间。
标记: bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 默认值:“0”
下载错误重试次数上限。如果设置为 0,系统会停用重试。
标记: experimental
--experimental_scale_timeouts=<a double> 默认值:“1.0”
按此系数扩缩 Starlark 代码库规则中的所有超时。通过这种方式,无需更改源代码,即可让外部代码库在速度低于规则作者预期的机器上运行。
标记:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 默认值:“8”
http 下载的尝试次数上限。
标记: bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 默认值:“0s”
http 下载重试的超时上限。如果值为 0,则未定义超时上限。
标记: bazel_internal_configuration
--http_timeout_scaling=<a double> 默认值:“1.0”
根据给定系数调整与 http 下载相关的所有超时时间
标记:bazel_internal_configuration
--repository_cache=<a path> 默认值:参见说明
指定在提取外部代码库期间获取的已下载值的缓存位置。使用空字符串作为参数会请求停用缓存,否则会使用默认值“<output_user_root>/cache/repos/v1”。
标记:bazel_internal_configuration
--[no]repository_disable_download 默认值:“false”
如果已设置此参数,则在代码库提取过程中,不允许使用 ctx.download{,_and_Extract} 进行下载。请注意,网络访问并非完全停用; ctx.execute 仍可以运行访问互联网的任意可执行文件。
标记: bazel_internal_configuration
用于控制构建执行的选项:
--gc_thrashing_threshold=<an integer in 0-100 range> 默认值:“100”
占用的空间百分比 (0-100),超过此值时,GcThrashingDetector 会将内存压力事件视为相对于其限值 (--gc_thrashing_limits)。如果设置为 100,则会停用 GcThrashingDetector。
标记: host_machine_resource_optimizations
--[no]keep_going [-k] 默认值:“false”
出错后应尽量多继续操作。虽然无法分析失败的目标以及依赖于该目标的目标,但这些目标的其他前提条件可以。
标记: eagerness_to_exit
--loading_phase_threads=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5"> 默认值:“auto”
用于加载/分析阶段的并行线程数。接受整数或关键字(“auto”“HOST_CPUS”“HOST_RAM”),可以选择后跟操作指令 ([-|*]<float>),例如:"auto", "HOST_CPUS*.5"。“auto”根据主机资源设置合理的默认值。必须至少为 1。
标记: bazel_internal_configuration
此选项会影响 Starlark 语言的语义或者可通过 BUILD 文件、.bzl 文件或 WORKSPACE 文件访问的 build API。
--[no]incompatible_config_setting_private_default_visibility 默认值:“false”
如果 incompatible_enforce_config_setting_visibility=false,则是空操作。否则,如果此标志为 false,则没有明确可见性属性的任何 config_setting 均为 //visibility:public。如果此标志为 true,config_setting 遵循与所有其他规则相同的可见性逻辑。请参阅 https://github.com/bazelbuild/bazel/issues/12933。
标记:loading_and_analysisincompatible_change
--[no]incompatible_enforce_config_setting_visibility 默认值:“true”
如果为 true,则强制执行 config_setting 可见性限制。如果为 false,则每个 config_setting 对每个目标都可见。请参阅 https://github.com/bazelbuild/bazel/issues/12932。
标记:loading_and_analysisincompatible_change
与查询输出和语义相关的选项:
--aspect_deps=<off, conservative or precise> 默认值:“保守型”
当输出格式为 {xml,proto,record} 之一时,如何解析切面依赖项。“off”表示不解析任何切面依赖项;“保守”(默认值)表示添加所有已声明的切面依赖项,无论它们是否获得了直接依赖项的规则类,“确切”表示仅添加在直接依赖项的规则类下可能处于活动状态的那些方面。请注意,精确模式需要加载其他软件包来评估单个目标,因此该模式比其他模式慢。另请注意,即使是精确模式也不是完全精确:是否计算某个方面的决定是在分析阶段决定的,而该阶段不会在“bazel 查询”期间运行。
标记: build_file_semantics
--[no]consistent_labels 默认值:“false”
启用后,每个查询命令都会发出标签,就像是通过应用于 <code>Label</code> 实例的 Starlark <code>str</code> 函数来发出。这对于需要匹配不同查询命令的输出和/或由规则发出的标签输出的工具非常有用。如果未启用,输出格式设置工具可以自由发出明显的代码库名称(相对于主代码库),以使输出更易于阅读。
标记: terminal_output
--[no]experimental_graphless_query 默认值:“auto”
如果为 true,则使用不会复制图表的查询实现。新实现仅支持 --order_output=no,以及部分输出格式化程序。
标记:build_file_semanticseagerness_to_exit
--graph:conditional_edges_limit=<an integer> 默认值:“4”
可显示的条件标签数量上限。-1 表示不截断,0 表示无注释。此选项仅适用于 --output=graph。
标记: terminal_output
--[no]graph:factored 默认值:“true”
如果为 true,则图表将“因子”发出,即拓扑等效的节点将合并在一起,其标签将串联在一起。此选项仅适用于 --output=graph。
标记: terminal_output
--graph:node_limit=<an integer> 默认值:“512”
输出中图节点的标签字符串的最大长度。较长的标签将被截断;-1 表示不被截断。此选项仅适用于 --output=graph。
标记: terminal_output
--[no]implicit_deps 默认值:“true”
如果启用,隐式依赖项将包含在执行查询的依赖关系图中。隐式依赖项是指未在 BUILD 文件中明确指定,但由 bazel 添加的依赖项。对于 cquery,此选项用于控制过滤已解析的工具链。
标记: build_file_semantics
--[no]include_aspects 默认值:“true”
aquery、cquery:是否在输出中包含由切面生成的操作。query:no-op(始终遵循切面)。
标记: terminal_output
--[no]incompatible_lexicographical_output 默认值:“true”
如果设置了此选项,则按字典顺序对 --order_output=auto output 排序。
标记: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 或图时受支持。
扩展为:
  --order_output=no

标签: terminal_output
--null
每种格式是否以 \0(而不是换行符)结尾。
扩展为:
  --line_terminator_null=true

标签: terminal_output
--order_output=<no, deps, auto or full> 默认值:“auto”
输出未排序 (no)、依存关系排序 (deps) 或完全排序(完整)的结果。默认值为“auto”,表示结果按依赖项排序或完全排序,具体取决于输出格式设置工具(proto、minrank、maxrank 和图的依赖项排序,对于所有其他代码则完全排序)。当输出完全排序后,系统会按照完全确定性(总)的顺序输出节点。首先,所有节点都按字母顺序排序。然后,列表中的每个节点都用作后序深度优先搜索的起始点,其中将按后续节点的字母顺序遍历未访问节点的传出边缘。最后,输出的节点会按照与节点访问的顺序相反的顺序输出。
标记: terminal_output
--order_results
以按依存关系排序(默认)或无序方式输出结果。无序输出的速度更快,但仅在 --output 不是 minrank、maxrank 或图时受支持。
扩展为:
  --order_output=auto

标签: terminal_output
--output=<a string> 默认值:“label”
输出查询结果时应采用的格式。允许的查询值包括:build、graph、streamed_jsonproto、label、label_Kind、location、maxrank、minrank、package、proto、streamed_proto、textproto、xml。
标记: terminal_output
--[no]proto:default_values 默认值:“true”
如果为 true,则会包含未在 BUILD 文件中明确指定值的属性;否则,系统会省略这些属性。此选项适用于 --output=proto
标记:terminal_output
--[no]proto:definition_stack 默认值:“false”
填充 Definition_stack proto 字段,该字段会在定义规则的类时记录每个规则实例的 Starlark 调用堆栈。
标记: terminal_output
--[no]proto:flatten_selects 默认值:“true”
启用后, select() 创建的可配置属性将展平。对于列表类型,扁平化表示形式是一个列表,其中每个选定映射的值都正好包含一次。标量类型会展平为 null。
标记: build_file_semantics
--[no]proto:include_attribute_source_aspects 默认值:“false”
使用来源切面填充每个 Attribute 的 source_aspect_name proto 字段(如果未填写,则为空字符串)。
标记: terminal_output
--[no]proto:include_synthetic_attribute_hash 默认值:“false”
是否计算并填充 $internal_attr_hash 属性。
标记: terminal_output
--[no]proto:instantiation_stack 默认值:“false”
填充每条规则的实例化调用堆栈。请注意,该堆栈必须存在。
标记:terminal_output
--[no]proto:locations 默认值:“true”
是否在 proto 输出中输出位置信息。
标记: terminal_output
--proto:output_rule_attrs=<comma-separated list of options> 默认值:“all”
要在输出中包含的属性列表(以英文逗号分隔)。默认为所有属性。设置为空字符串,不输出任何属性。此选项适用于 --output=proto。
标记: terminal_output
--[no]proto:rule_inputs_and_outputs 默认值:“true”
是否填充 rule_input 和 rule_output 字段。
标记: terminal_output
--query_file=<a string> 默认值:“”
如果设置此参数,查询将从此处指定的文件中读取查询,而不是在命令行中读取。在此处指定文件以及命令行查询会出错。
标记: changes_inputs
--[no]relative_locations 默认值:“false”
如果为 true,则 xml 和 proto 输出中 BUILD 文件的位置将是相对位置。默认情况下,位置输出是绝对路径,不同机器之间会不一致。您可以将此选项设置为 true,以便在不同机器上获得一致的结果。
标记: terminal_output
--[no]strict_test_suite 默认值:“false”
如果为 true,那么即使 testing() 表达式遇到包含非测试目标的 test_suite,它都会给出错误。
标记:build_file_semanticseagerness_to_exit
--[no]tool_deps 默认值:“true”
查询:如果停用,对“exec configuration”的依赖关系将不会包含在执行查询的依赖关系图中。“exec configuration”依赖项边缘(例如从任何“proto_library”规则到协议编译器的依赖项)通常指向构建期间执行的工具,而不是同一“目标”程序的一部分。 Cquery:如果停用,则从发现了此已配置目标的顶级目标的执行转换中过滤掉所有已配置的目标。这意味着,如果顶级目标在目标配置中,则系统只会返回同样位于目标配置中的已配置目标。如果顶级目标位于 exec 配置中,则仅返回 exec 配置的目标。此选项不会排除已解析的工具链。
标记: 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
与 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> 默认值:“警告”
检查根模块中声明的直接“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 or error> 默认值:“update”
指定如何以及是否使用锁定文件。有效值包括,值为“update”以使用锁文件并在有更改时更新锁文件;值为“error”使用锁文件,但如果锁文件不是最新文件,则抛出错误;值为“off”既不对锁文件执行读取或写入操作,也抛出错误。
标记: loading_and_analysis
已累计 --override_module=<an equals-separated mapping of module name to path> 次多次使用
使用 <模块名称>=<路径> 形式的本地路径替换模块。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出
已累计 --registry=<a string> 次多次使用
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在之前的注册表中查找模块,只有在之前的注册表中缺失模块时,才会回退到后续注册表。
标记: changes_inputs
触发构建时间优化的选项:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 默认值:“1s:2,20s:3,1m:5”
限制,如果达到这些限制,则会导致 GcThrashingDetector 导致 Bazel 崩溃并出现 OOM。每个限制以 <period>:<count> 形式指定,其中 period 是时长,计数是正整数。如果在 <period> 内连续 <count> 次完整 GC 后仍被占用的到期空间(旧代堆)百分比超过 --gc_thrashing_threshold%,则会触发 OOM。可以用英文逗号分隔指定多个限制。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过 --skyframe_high_water_mark_threshold 设置的阈值,则当发生完整 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示完整 GC 事件永远不会触发丢弃操作。达到此上限后,当发生完整 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过由 --skyframe_high_water_mark_threshold 设置的阈值,当发生次要 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示次要 GC 事件永远不会触发丢弃操作。达到此上限后,当发生次要 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 默认值:“85”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量不低于此阈值,则会丢弃不必要的临时 Skyframe 状态。当 GC 抖动 (i) 是由此临时状态的内存使用引起的且 (ii) 在需要时比重构状态的成本更高时,即可降低 GC 抖动对实际使用时间的影响。
标记: host_machine_resource_optimizations
影响日志记录的详细程度、格式或位置的选项:
--[no]experimental_command_profile 默认值:“false”
将 Java 飞行记录器 CPU 配置文件记录到输出基本目录中的 profile.jfr 文件中。此标志的语法和语义将来可能会更改,以支持不同的配置文件类型或输出格式;使用时需自行承担风险。
--[no]experimental_record_metrics_for_all_mnemonics 默认值:“false”
默认情况下,已执行操作数量最多的 20 种助记符不得超过操作类型的数量。设置此选项后,系统会写入所有助记符的统计信息。
--experimental_repository_resolved_file=<a string> 默认值:“”
如果为非空,则写入一个 Starlark 值,其中包含已执行的所有 Starlark 代码库规则的解析信息。
标记: affects_outputs
用于指定或更改不属于其他类别的 Bazel 命令的通用输入的选项:
--experimental_resolved_file_instead_of_workspace=<a string> 默认值:“”
如果非空,则读取指定的已解析文件而不是 WORKSPACE 文件
标记: changes_inputs
远程缓存和执行选项:
--experimental_downloader_config=<a string> 默认值:参见说明
指定要用于配置远程下载程序的文件。此文件由多个行组成,其中每个行以指令(“allow”“block”或“rewrite”)开头,后跟主机名(分别用于“allow”和“block”)或两种格式,一种用于匹配,另一种用作替换网址,反向引用从“$1”开始。可以针对同一个网址提供多个“rewrite”指令,在这种情况下,系统会返回多个网址。
--experimental_worker_for_repo_fetching=<off, platform or virtual> 默认值:“关闭”
用于代码库提取的线程模式。如果设置为“off”,则不使用任何工作线程,并且 Repo 提取功能可能会重启。否则,如果设置为“platform”,则使用平台线程(即操作系统线程),如果设置为“virtual”,则使用虚拟线程。
其他选项,未以其他方式分类:
已累计 --deleted_packages=<comma-separated list of package names> 次多次使用
以英文逗号分隔的软件包名称列表,构建系统将其视为不存在的软件包名称,即使它们在软件包路径上的某个位置可见。 当删除现有软件包“x”的子软件包“x/y”时,使用此选项。例如,删除客户端中的 x/y/BUILD 后,如果构建系统遇到“//x:y/z”标签(如果其他 package_path 条目仍然提供该标签),则可能会收到提示。指定 --deleted_packages x/y 可避免此问题。
已累计 --override_repository=<an equals-separated mapping of repository name to path> 次多次使用
使用 <repo name>=<path> 形式的本地路径替换代码库。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出
--package_path=<colon-separated list of options> 默认值:“%workspace%”
以英文冒号分隔的列表,用于列出查找软件包的位置。以“%workspace%”开头的元素相对于封闭工作区。如果省略或为空,则默认值为“bazel info default-package-path”的输出。
--[no]show_loading_progress 默认值:“true”
如果启用,会导致 Bazel 输出“正在加载软件包:”消息。

运行选项

build 继承所有选项。

出现在命令之前并由客户端解析的选项:
已累计 --distdir=<a path> 次多次使用
在访问网络下载归档文件之前,可在其他位置搜索归档文件。
标记: bazel_internal_configuration
如果设置此参数,当缓存命中时,代码库缓存将对文件进行硬链接,而不是进行复制。这是为了节省磁盘空间。
标记: bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 默认值:“0”
下载错误重试次数上限。如果设置为 0,系统会停用重试。
标记: experimental
--experimental_scale_timeouts=<a double> 默认值:“1.0”
按此系数扩缩 Starlark 代码库规则中的所有超时。通过这种方式,无需更改源代码,即可让外部代码库在速度低于规则作者预期的机器上运行。
标记:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 默认值:“8”
http 下载的尝试次数上限。
标记: bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 默认值:“0s”
http 下载重试的超时上限。如果值为 0,则未定义超时上限。
标记: bazel_internal_configuration
--http_timeout_scaling=<a double> 默认值:“1.0”
根据给定系数调整与 http 下载相关的所有超时时间
标记:bazel_internal_configuration
--repository_cache=<a path> 默认值:参见说明
指定在提取外部代码库期间获取的已下载值的缓存位置。使用空字符串作为参数会请求停用缓存,否则会使用默认值“<output_user_root>/cache/repos/v1”。
标记:bazel_internal_configuration
--[no]repository_disable_download 默认值:“false”
如果已设置此参数,则在代码库提取过程中,不允许使用 ctx.download{,_and_Extract} 进行下载。请注意,网络访问并非完全停用; ctx.execute 仍可以运行访问互联网的任意可执行文件。
标记: bazel_internal_configuration
--[no]run 默认值:“true”
如果为 false,则跳过运行为构建目标构建的命令行。
标记: affects_outputs
用于控制构建执行的选项:
--gc_thrashing_threshold=<an integer in 0-100 range> 默认值:“100”
占用的空间百分比 (0-100),超过此值时,GcThrashingDetector 会将内存压力事件视为相对于其限值 (--gc_thrashing_limits)。如果设置为 100,则会停用 GcThrashingDetector。
标记: host_machine_resource_optimizations
可让用户配置预期输出(影响预期输出值而非其存在性)的选项:
--script_path=<a path> 默认值:参见说明
如果设置此参数,则会将 Shell 脚本写入调用目标的给定文件。如果设置了此选项,则不会从 bazel 运行目标。使用“bazel run --script_path=foo //foo && ./foo”调用目标“//foo”。这与“bazel run //foo”的不同之处在于,bazel 锁会被释放,并且可执行文件已连接到终端的 stdin。
标记:affects_outputsexecution
与 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> 默认值:“警告”
检查根模块中声明的直接“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 or error> 默认值:“update”
指定如何以及是否使用锁定文件。有效值包括,值为“update”以使用锁文件并在有更改时更新锁文件;值为“error”使用锁文件,但如果锁文件不是最新文件,则抛出错误;值为“off”既不对锁文件执行读取或写入操作,也抛出错误。
标记: loading_and_analysis
已累计 --override_module=<an equals-separated mapping of module name to path> 次多次使用
使用 <模块名称>=<路径> 形式的本地路径替换模块。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出
已累计 --registry=<a string> 次多次使用
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在之前的注册表中查找模块,只有在之前的注册表中缺失模块时,才会回退到后续注册表。
标记: changes_inputs
触发构建时间优化的选项:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 默认值:“1s:2,20s:3,1m:5”
限制,如果达到这些限制,则会导致 GcThrashingDetector 导致 Bazel 崩溃并出现 OOM。每个限制以 <period>:<count> 形式指定,其中 period 是时长,计数是正整数。如果在 <period> 内连续 <count> 次完整 GC 后仍被占用的到期空间(旧代堆)百分比超过 --gc_thrashing_threshold%,则会触发 OOM。可以用英文逗号分隔指定多个限制。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过 --skyframe_high_water_mark_threshold 设置的阈值,则当发生完整 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示完整 GC 事件永远不会触发丢弃操作。达到此上限后,当发生完整 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过由 --skyframe_high_water_mark_threshold 设置的阈值,当发生次要 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示次要 GC 事件永远不会触发丢弃操作。达到此上限后,当发生次要 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 默认值:“85”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量不低于此阈值,则会丢弃不必要的临时 Skyframe 状态。当 GC 抖动 (i) 是由此临时状态的内存使用引起的且 (ii) 在需要时比重构状态的成本更高时,即可降低 GC 抖动对实际使用时间的影响。
标记: host_machine_resource_optimizations
影响日志记录的详细程度、格式或位置的选项:
--[no]experimental_command_profile 默认值:“false”
将 Java 飞行记录器 CPU 配置文件记录到输出基本目录中的 profile.jfr 文件中。此标志的语法和语义将来可能会更改,以支持不同的配置文件类型或输出格式;使用时需自行承担风险。
--[no]experimental_record_metrics_for_all_mnemonics 默认值:“false”
默认情况下,已执行操作数量最多的 20 种助记符不得超过操作类型的数量。设置此选项后,系统会写入所有助记符的统计信息。
用于指定或更改不属于其他类别的 Bazel 命令的通用输入的选项:
--experimental_resolved_file_instead_of_workspace=<a string> 默认值:“”
如果非空,则读取指定的已解析文件而不是 WORKSPACE 文件
标记: changes_inputs
远程缓存和执行选项:
--experimental_downloader_config=<a string> 默认值:参见说明
指定要用于配置远程下载程序的文件。此文件由多个行组成,其中每个行以指令(“allow”“block”或“rewrite”)开头,后跟主机名(分别用于“allow”和“block”)或两种格式,一种用于匹配,另一种用作替换网址,反向引用从“$1”开始。可以针对同一个网址提供多个“rewrite”指令,在这种情况下,系统会返回多个网址。
--experimental_worker_for_repo_fetching=<off, platform or virtual> 默认值:“关闭”
用于代码库提取的线程模式。如果设置为“off”,则不使用任何工作线程,并且 Repo 提取功能可能会重启。否则,如果设置为“platform”,则使用平台线程(即操作系统线程),如果设置为“virtual”,则使用虚拟线程。
其他选项,未以其他方式分类:
已累计 --override_repository=<an equals-separated mapping of repository name to path> 次多次使用
使用 <repo name>=<path> 形式的本地路径替换代码库。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出

关闭选项

出现在命令之前并由客户端解析的选项:
已累计 --distdir=<a path> 次多次使用
在访问网络下载归档文件之前,可在其他位置搜索归档文件。
标记: bazel_internal_configuration
如果设置此参数,当缓存命中时,代码库缓存将对文件进行硬链接,而不是进行复制。这是为了节省磁盘空间。
标记: bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 默认值:“0”
下载错误重试次数上限。如果设置为 0,系统会停用重试。
标记: experimental
--experimental_scale_timeouts=<a double> 默认值:“1.0”
按此系数扩缩 Starlark 代码库规则中的所有超时。通过这种方式,无需更改源代码,即可让外部代码库在速度低于规则作者预期的机器上运行。
标记:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 默认值:“8”
http 下载的尝试次数上限。
标记: bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 默认值:“0s”
http 下载重试的超时上限。如果值为 0,则未定义超时上限。
标记: bazel_internal_configuration
--http_timeout_scaling=<a double> 默认值:“1.0”
根据给定系数调整与 http 下载相关的所有超时时间
标记:bazel_internal_configuration
--repository_cache=<a path> 默认值:参见说明
指定在提取外部代码库期间获取的已下载值的缓存位置。使用空字符串作为参数会请求停用缓存,否则会使用默认值“<output_user_root>/cache/repos/v1”。
标记:bazel_internal_configuration
--[no]repository_disable_download 默认值:“false”
如果已设置此参数,则在代码库提取过程中,不允许使用 ctx.download{,_and_Extract} 进行下载。请注意,网络访问并非完全停用; ctx.execute 仍可以运行访问互联网的任意可执行文件。
标记: bazel_internal_configuration
用于控制构建执行的选项:
--gc_thrashing_threshold=<an integer in 0-100 range> 默认值:“100”
占用的空间百分比 (0-100),超过此值时,GcThrashingDetector 会将内存压力事件视为相对于其限值 (--gc_thrashing_limits)。如果设置为 100,则会停用 GcThrashingDetector。
标记: host_machine_resource_optimizations
用于控制命令输出的选项:
--iff_heap_size_greater_than=<an integer> 默认值:“0”
Iff 为非零值,则只有在 JVM 消耗的总内存(以 MB 为单位)超过此值时,关闭服务器才会关闭服务器。
标记:loses_incremental_stateeagerness_to_exit
与 Bzlmod 输出和语义相关的选项:
已累计 --allow_yanked_versions=<a string> 次多次使用
以“<module1>@<version1>,<module2>@<version2>”的形式指定模块版本,即使这些版本在来源的注册表中进行了声明(如果它们并非来自 NonRegistryOverride),也允许出现在已解析的依赖关系图中。否则,拉取版本会导致解析失败。您还可以使用“BZLMOD_ALLOW_YANKED_VERSIONS”环境变量定义允许的拖动版本。您可以使用关键字“all”停用此检查(不推荐)。
标记: loading_and_analysis
--check_bazel_compatibility=<error, warning or off> 默认值:“error”
检查 Bazel 模块的 Bazel 版本兼容性。有效值包括“error”(可上报为解决失败),“off”可停用检查,值为“warning”(用于在检测到不匹配时输出警告)。
标记: loading_and_analysis
--check_direct_dependencies=<off, warning or error> 默认值:“警告”
检查根模块中声明的直接“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 or error> 默认值:“update”
指定如何以及是否使用锁定文件。有效值包括,值为“update”以使用锁文件并在有更改时更新锁文件;值为“error”使用锁文件,但如果锁文件不是最新文件,则抛出错误;值为“off”既不对锁文件执行读取或写入操作,也抛出错误。
标记: loading_and_analysis
已累计 --override_module=<an equals-separated mapping of module name to path> 次多次使用
使用 <模块名称>=<路径> 形式的本地路径替换模块。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出
已累计 --registry=<a string> 次多次使用
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在之前的注册表中查找模块,只有在之前的注册表中缺失模块时,才会回退到后续注册表。
标记: changes_inputs
触发构建时间优化的选项:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 默认值:“1s:2,20s:3,1m:5”
限制,如果达到这些限制,则会导致 GcThrashingDetector 导致 Bazel 崩溃并出现 OOM。每个限制以 <period>:<count> 形式指定,其中 period 是时长,计数是正整数。如果在 <period> 内连续 <count> 次完整 GC 后仍被占用的到期空间(旧代堆)百分比超过 --gc_thrashing_threshold%,则会触发 OOM。可以用英文逗号分隔指定多个限制。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过 --skyframe_high_water_mark_threshold 设置的阈值,则当发生完整 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示完整 GC 事件永远不会触发丢弃操作。达到此上限后,当发生完整 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过由 --skyframe_high_water_mark_threshold 设置的阈值,当发生次要 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示次要 GC 事件永远不会触发丢弃操作。达到此上限后,当发生次要 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 默认值:“85”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量不低于此阈值,则会丢弃不必要的临时 Skyframe 状态。当 GC 抖动 (i) 是由此临时状态的内存使用引起的且 (ii) 在需要时比重构状态的成本更高时,即可降低 GC 抖动对实际使用时间的影响。
标记: host_machine_resource_optimizations
影响日志记录的详细程度、格式或位置的选项:
--[no]experimental_command_profile 默认值:“false”
将 Java 飞行记录器 CPU 配置文件记录到输出基本目录中的 profile.jfr 文件中。此标志的语法和语义将来可能会更改,以支持不同的配置文件类型或输出格式;使用时需自行承担风险。
--[no]experimental_record_metrics_for_all_mnemonics 默认值:“false”
默认情况下,已执行操作数量最多的 20 种助记符不得超过操作类型的数量。设置此选项后,系统会写入所有助记符的统计信息。
用于指定或更改不属于其他类别的 Bazel 命令的通用输入的选项:
--experimental_resolved_file_instead_of_workspace=<a string> 默认值:“”
如果非空,则读取指定的已解析文件而不是 WORKSPACE 文件
标记: changes_inputs
远程缓存和执行选项:
--experimental_downloader_config=<a string> 默认值:参见说明
指定要用于配置远程下载程序的文件。此文件由多个行组成,其中每个行以指令(“allow”“block”或“rewrite”)开头,后跟主机名(分别用于“allow”和“block”)或两种格式,一种用于匹配,另一种用作替换网址,反向引用从“$1”开始。可以针对同一个网址提供多个“rewrite”指令,在这种情况下,系统会返回多个网址。
--experimental_worker_for_repo_fetching=<off, platform or virtual> 默认值:“关闭”
用于代码库提取的线程模式。如果设置为“off”,则不使用任何工作线程,并且 Repo 提取功能可能会重启。否则,如果设置为“platform”,则使用平台线程(即操作系统线程),如果设置为“virtual”,则使用虚拟线程。
其他选项,未以其他方式分类:
已累计 --override_repository=<an equals-separated mapping of repository name to path> 次多次使用
使用 <repo name>=<path> 形式的本地路径替换代码库。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出

同步选项

出现在命令之前并由客户端解析的选项:
已累计 --distdir=<a path> 次多次使用
在访问网络下载归档文件之前,可在其他位置搜索归档文件。
标记: bazel_internal_configuration
如果设置此参数,当缓存命中时,代码库缓存将对文件进行硬链接,而不是进行复制。这是为了节省磁盘空间。
标记: bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 默认值:“0”
下载错误重试次数上限。如果设置为 0,系统会停用重试。
标记: experimental
--experimental_scale_timeouts=<a double> 默认值:“1.0”
按此系数扩缩 Starlark 代码库规则中的所有超时。通过这种方式,无需更改源代码,即可让外部代码库在速度低于规则作者预期的机器上运行。
标记:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 默认值:“8”
http 下载的尝试次数上限。
标记: bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 默认值:“0s”
http 下载重试的超时上限。如果值为 0,则未定义超时上限。
标记: bazel_internal_configuration
--http_timeout_scaling=<a double> 默认值:“1.0”
根据给定系数调整与 http 下载相关的所有超时时间
标记:bazel_internal_configuration
--repository_cache=<a path> 默认值:参见说明
指定在提取外部代码库期间获取的已下载值的缓存位置。使用空字符串作为参数会请求停用缓存,否则会使用默认值“<output_user_root>/cache/repos/v1”。
标记:bazel_internal_configuration
--[no]repository_disable_download 默认值:“false”
如果已设置此参数,则在代码库提取过程中,不允许使用 ctx.download{,_and_Extract} 进行下载。请注意,网络访问并非完全停用; ctx.execute 仍可以运行访问互联网的任意可执行文件。
标记: bazel_internal_configuration
用于控制构建执行的选项:
--[no]configure 默认值:“False”
仅出于系统配置目的同步标记为“configure”的代码库。
标记: changes_inputs
--gc_thrashing_threshold=<an integer in 0-100 range> 默认值:“100”
占用的空间百分比 (0-100),超过此值时,GcThrashingDetector 会将内存压力事件视为相对于其限值 (--gc_thrashing_limits)。如果设置为 100,则会停用 GcThrashingDetector。
标记: host_machine_resource_optimizations
--[no]keep_going [-k] 默认值:“false”
出错后应尽量多继续操作。虽然无法分析失败的目标以及依赖于该目标的目标,但这些目标的其他前提条件可以。
标记: eagerness_to_exit
--loading_phase_threads=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5"> 默认值:“auto”
用于加载/分析阶段的并行线程数。接受整数或关键字(“auto”“HOST_CPUS”“HOST_RAM”),可以选择后跟操作指令 ([-|*]<float>),例如:"auto", "HOST_CPUS*.5"。“auto”根据主机资源设置合理的默认值。必须至少为 1。
标记: bazel_internal_configuration
已累计 --only=<a string> 次多次使用
如果给定此选项,则仅同步使用此选项指定的代码库。仍然认为所有(或所有与配置类似的 --configure )都是过时的。
标记: changes_inputs
此选项会影响 Starlark 语言的语义或者可通过 BUILD 文件、.bzl 文件或 WORKSPACE 文件访问的 build API。
--[no]incompatible_config_setting_private_default_visibility 默认值:“false”
如果 incompatible_enforce_config_setting_visibility=false,则是空操作。否则,如果此标志为 false,则没有明确可见性属性的任何 config_setting 均为 //visibility:public。如果此标志为 true,config_setting 遵循与所有其他规则相同的可见性逻辑。请参阅 https://github.com/bazelbuild/bazel/issues/12933。
标记:loading_and_analysisincompatible_change
--[no]incompatible_enforce_config_setting_visibility 默认值:“true”
如果为 true,则强制执行 config_setting 可见性限制。如果为 false,则每个 config_setting 对每个目标都可见。请参阅 https://github.com/bazelbuild/bazel/issues/12932。
标记:loading_and_analysisincompatible_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> 默认值:“警告”
检查根模块中声明的直接“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 or error> 默认值:“update”
指定如何以及是否使用锁定文件。有效值包括,值为“update”以使用锁文件并在有更改时更新锁文件;值为“error”使用锁文件,但如果锁文件不是最新文件,则抛出错误;值为“off”既不对锁文件执行读取或写入操作,也抛出错误。
标记: loading_and_analysis
已累计 --override_module=<an equals-separated mapping of module name to path> 次多次使用
使用 <模块名称>=<路径> 形式的本地路径替换模块。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出
已累计 --registry=<a string> 次多次使用
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在之前的注册表中查找模块,只有在之前的注册表中缺失模块时,才会回退到后续注册表。
标记: changes_inputs
触发构建时间优化的选项:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 默认值:“1s:2,20s:3,1m:5”
限制,如果达到这些限制,则会导致 GcThrashingDetector 导致 Bazel 崩溃并出现 OOM。每个限制以 <period>:<count> 形式指定,其中 period 是时长,计数是正整数。如果在 <period> 内连续 <count> 次完整 GC 后仍被占用的到期空间(旧代堆)百分比超过 --gc_thrashing_threshold%,则会触发 OOM。可以用英文逗号分隔指定多个限制。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过 --skyframe_high_water_mark_threshold 设置的阈值,则当发生完整 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示完整 GC 事件永远不会触发丢弃操作。达到此上限后,当发生完整 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过由 --skyframe_high_water_mark_threshold 设置的阈值,当发生次要 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示次要 GC 事件永远不会触发丢弃操作。达到此上限后,当发生次要 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 默认值:“85”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量不低于此阈值,则会丢弃不必要的临时 Skyframe 状态。当 GC 抖动 (i) 是由此临时状态的内存使用引起的且 (ii) 在需要时比重构状态的成本更高时,即可降低 GC 抖动对实际使用时间的影响。
标记: host_machine_resource_optimizations
影响日志记录的详细程度、格式或位置的选项:
--[no]experimental_command_profile 默认值:“false”
将 Java 飞行记录器 CPU 配置文件记录到输出基本目录中的 profile.jfr 文件中。此标志的语法和语义将来可能会更改,以支持不同的配置文件类型或输出格式;使用时需自行承担风险。
--[no]experimental_record_metrics_for_all_mnemonics 默认值:“false”
默认情况下,已执行操作数量最多的 20 种助记符不得超过操作类型的数量。设置此选项后,系统会写入所有助记符的统计信息。
--experimental_repository_resolved_file=<a string> 默认值:“”
如果为非空,则写入一个 Starlark 值,其中包含已执行的所有 Starlark 代码库规则的解析信息。
标记: affects_outputs
用于指定或更改不属于其他类别的 Bazel 命令的通用输入的选项:
--experimental_resolved_file_instead_of_workspace=<a string> 默认值:“”
如果非空,则读取指定的已解析文件而不是 WORKSPACE 文件
标记: changes_inputs
远程缓存和执行选项:
--experimental_downloader_config=<a string> 默认值:参见说明
指定要用于配置远程下载程序的文件。此文件由多个行组成,其中每个行以指令(“allow”“block”或“rewrite”)开头,后跟主机名(分别用于“allow”和“block”)或两种格式,一种用于匹配,另一种用作替换网址,反向引用从“$1”开始。可以针对同一个网址提供多个“rewrite”指令,在这种情况下,系统会返回多个网址。
--experimental_worker_for_repo_fetching=<off, platform or virtual> 默认值:“关闭”
用于代码库提取的线程模式。如果设置为“off”,则不使用任何工作线程,并且 Repo 提取功能可能会重启。否则,如果设置为“platform”,则使用平台线程(即操作系统线程),如果设置为“virtual”,则使用虚拟线程。
其他选项,未以其他方式分类:
已累计 --deleted_packages=<comma-separated list of package names> 次多次使用
以英文逗号分隔的软件包名称列表,构建系统将其视为不存在的软件包名称,即使它们在软件包路径上的某个位置可见。 当删除现有软件包“x”的子软件包“x/y”时,使用此选项。例如,删除客户端中的 x/y/BUILD 后,如果构建系统遇到“//x:y/z”标签(如果其他 package_path 条目仍然提供该标签),则可能会收到提示。指定 --deleted_packages x/y 可避免此问题。
已累计 --override_repository=<an equals-separated mapping of repository name to path> 次多次使用
使用 <repo name>=<path> 形式的本地路径替换代码库。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出
--package_path=<colon-separated list of options> 默认值:“%workspace%”
以英文冒号分隔的列表,用于列出查找软件包的位置。以“%workspace%”开头的元素相对于封闭工作区。如果省略或为空,则默认值为“bazel info default-package-path”的输出。
--[no]show_loading_progress 默认值:“true”
如果启用,会导致 Bazel 输出“正在加载软件包:”消息。

测试选项

build 继承所有选项。

出现在命令之前并由客户端解析的选项:
已累计 --distdir=<a path> 次多次使用
在访问网络下载归档文件之前,可在其他位置搜索归档文件。
标记: bazel_internal_configuration
如果设置此参数,当缓存命中时,代码库缓存将对文件进行硬链接,而不是进行复制。这是为了节省磁盘空间。
标记: bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 默认值:“0”
下载错误重试次数上限。如果设置为 0,系统会停用重试。
标记: experimental
--experimental_scale_timeouts=<a double> 默认值:“1.0”
按此系数扩缩 Starlark 代码库规则中的所有超时。通过这种方式,无需更改源代码,即可让外部代码库在速度低于规则作者预期的机器上运行。
标记:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 默认值:“8”
http 下载的尝试次数上限。
标记: bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 默认值:“0s”
http 下载重试的超时上限。如果值为 0,则未定义超时上限。
标记: bazel_internal_configuration
--http_timeout_scaling=<a double> 默认值:“1.0”
根据给定系数调整与 http 下载相关的所有超时时间
标记:bazel_internal_configuration
--repository_cache=<a path> 默认值:参见说明
指定在提取外部代码库期间获取的已下载值的缓存位置。使用空字符串作为参数会请求停用缓存,否则会使用默认值“<output_user_root>/cache/repos/v1”。
标记:bazel_internal_configuration
--[no]repository_disable_download 默认值:“false”
如果已设置此参数,则在代码库提取过程中,不允许使用 ctx.download{,_and_Extract} 进行下载。请注意,网络访问并非完全停用; ctx.execute 仍可以运行访问互联网的任意可执行文件。
标记: bazel_internal_configuration
用于控制构建执行的选项:
--gc_thrashing_threshold=<an integer in 0-100 range> 默认值:“100”
占用的空间百分比 (0-100),超过此值时,GcThrashingDetector 会将内存压力事件视为相对于其限值 (--gc_thrashing_limits)。如果设置为 100,则会停用 GcThrashingDetector。
标记: host_machine_resource_optimizations
与 Bzlmod 输出和语义相关的选项:
已累计 --allow_yanked_versions=<a string> 次多次使用
以“<module1>@<version1>,<module2>@<version2>”的形式指定模块版本,即使这些版本在来源的注册表中进行了声明(如果它们并非来自 NonRegistryOverride),也允许出现在已解析的依赖关系图中。否则,拉取版本会导致解析失败。您还可以使用“BZLMOD_ALLOW_YANKED_VERSIONS”环境变量定义允许的拖动版本。您可以使用关键字“all”停用此检查(不推荐)。
标记: loading_and_analysis
--check_bazel_compatibility=<error, warning or off> 默认值:“error”
检查 Bazel 模块的 Bazel 版本兼容性。有效值包括“error”(可上报为解决失败),“off”可停用检查,值为“warning”(用于在检测到不匹配时输出警告)。
标记: loading_and_analysis
--check_direct_dependencies=<off, warning or error> 默认值:“警告”
检查根模块中声明的直接“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 or error> 默认值:“update”
指定如何以及是否使用锁定文件。有效值包括,值为“update”以使用锁文件并在有更改时更新锁文件;值为“error”使用锁文件,但如果锁文件不是最新文件,则抛出错误;值为“off”既不对锁文件执行读取或写入操作,也抛出错误。
标记: loading_and_analysis
已累计 --override_module=<an equals-separated mapping of module name to path> 次多次使用
使用 <模块名称>=<路径> 形式的本地路径替换模块。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出
已累计 --registry=<a string> 次多次使用
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在之前的注册表中查找模块,只有在之前的注册表中缺失模块时,才会回退到后续注册表。
标记: changes_inputs
触发构建时间优化的选项:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 默认值:“1s:2,20s:3,1m:5”
限制,如果达到这些限制,则会导致 GcThrashingDetector 导致 Bazel 崩溃并出现 OOM。每个限制以 <period>:<count> 形式指定,其中 period 是时长,计数是正整数。如果在 <period> 内连续 <count> 次完整 GC 后仍被占用的到期空间(旧代堆)百分比超过 --gc_thrashing_threshold%,则会触发 OOM。可以用英文逗号分隔指定多个限制。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过 --skyframe_high_water_mark_threshold 设置的阈值,则当发生完整 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示完整 GC 事件永远不会触发丢弃操作。达到此上限后,当发生完整 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过由 --skyframe_high_water_mark_threshold 设置的阈值,当发生次要 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示次要 GC 事件永远不会触发丢弃操作。达到此上限后,当发生次要 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 默认值:“85”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量不低于此阈值,则会丢弃不必要的临时 Skyframe 状态。当 GC 抖动 (i) 是由此临时状态的内存使用引起的且 (ii) 在需要时比重构状态的成本更高时,即可降低 GC 抖动对实际使用时间的影响。
标记: host_machine_resource_optimizations
影响日志记录的详细程度、格式或位置的选项:
--[no]experimental_command_profile 默认值:“false”
将 Java 飞行记录器 CPU 配置文件记录到输出基本目录中的 profile.jfr 文件中。此标志的语法和语义将来可能会更改,以支持不同的配置文件类型或输出格式;使用时需自行承担风险。
--[no]experimental_record_metrics_for_all_mnemonics 默认值:“false”
默认情况下,已执行操作数量最多的 20 种助记符不得超过操作类型的数量。设置此选项后,系统会写入所有助记符的统计信息。
--[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
用于指定或更改不属于其他类别的 Bazel 命令的通用输入的选项:
--experimental_resolved_file_instead_of_workspace=<a string> 默认值:“”
如果非空,则读取指定的已解析文件而不是 WORKSPACE 文件
标记: changes_inputs
远程缓存和执行选项:
--experimental_downloader_config=<a string> 默认值:参见说明
指定要用于配置远程下载程序的文件。此文件由多个行组成,其中每个行以指令(“allow”“block”或“rewrite”)开头,后跟主机名(分别用于“allow”和“block”)或两种格式,一种用于匹配,另一种用作替换网址,反向引用从“$1”开始。可以针对同一个网址提供多个“rewrite”指令,在这种情况下,系统会返回多个网址。
--experimental_worker_for_repo_fetching=<off, platform or virtual> 默认值:“关闭”
用于代码库提取的线程模式。如果设置为“off”,则不使用任何工作线程,并且 Repo 提取功能可能会重启。否则,如果设置为“platform”,则使用平台线程(即操作系统线程),如果设置为“virtual”,则使用虚拟线程。
其他选项,未以其他方式分类:
已累计 --override_repository=<an equals-separated mapping of repository name to path> 次多次使用
使用 <repo name>=<path> 形式的本地路径替换代码库。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出

版本选项

出现在命令之前并由客户端解析的选项:
已累计 --distdir=<a path> 次多次使用
在访问网络下载归档文件之前,可在其他位置搜索归档文件。
标记: bazel_internal_configuration
如果设置此参数,当缓存命中时,代码库缓存将对文件进行硬链接,而不是进行复制。这是为了节省磁盘空间。
标记: bazel_internal_configuration
--experimental_repository_downloader_retries=<an integer> 默认值:“0”
下载错误重试次数上限。如果设置为 0,系统会停用重试。
标记: experimental
--experimental_scale_timeouts=<a double> 默认值:“1.0”
按此系数扩缩 Starlark 代码库规则中的所有超时。通过这种方式,无需更改源代码,即可让外部代码库在速度低于规则作者预期的机器上运行。
标记:bazel_internal_configurationexperimental
--http_connector_attempts=<an integer> 默认值:“8”
http 下载的尝试次数上限。
标记: bazel_internal_configuration
--http_connector_retry_max_timeout=<An immutable length of time.> 默认值:“0s”
http 下载重试的超时上限。如果值为 0,则未定义超时上限。
标记: bazel_internal_configuration
--http_timeout_scaling=<a double> 默认值:“1.0”
根据给定系数调整与 http 下载相关的所有超时时间
标记:bazel_internal_configuration
--repository_cache=<a path> 默认值:参见说明
指定在提取外部代码库期间获取的已下载值的缓存位置。使用空字符串作为参数会请求停用缓存,否则会使用默认值“<output_user_root>/cache/repos/v1”。
标记:bazel_internal_configuration
--[no]repository_disable_download 默认值:“false”
如果已设置此参数,则在代码库提取过程中,不允许使用 ctx.download{,_and_Extract} 进行下载。请注意,网络访问并非完全停用; ctx.execute 仍可以运行访问互联网的任意可执行文件。
标记: bazel_internal_configuration
用于控制构建执行的选项:
--gc_thrashing_threshold=<an integer in 0-100 range> 默认值:“100”
占用的空间百分比 (0-100),超过此值时,GcThrashingDetector 会将内存压力事件视为相对于其限值 (--gc_thrashing_limits)。如果设置为 100,则会停用 GcThrashingDetector。
标记: host_machine_resource_optimizations
可让用户配置预期输出(影响预期输出值而非其存在性)的选项:
--[no]gnu_format 默认值:“false”
如果设置此参数,请按照 GNU 标准中所述的惯例将版本写入 stdout。
标记:affects_outputsexecution
与 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> 默认值:“警告”
检查根模块中声明的直接“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 or error> 默认值:“update”
指定如何以及是否使用锁定文件。有效值包括,值为“update”以使用锁文件并在有更改时更新锁文件;值为“error”使用锁文件,但如果锁文件不是最新文件,则抛出错误;值为“off”既不对锁文件执行读取或写入操作,也抛出错误。
标记: loading_and_analysis
已累计 --override_module=<an equals-separated mapping of module name to path> 次多次使用
使用 <模块名称>=<路径> 形式的本地路径替换模块。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出
已累计 --registry=<a string> 次多次使用
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在之前的注册表中查找模块,只有在之前的注册表中缺失模块时,才会回退到后续注册表。
标记: changes_inputs
触发构建时间优化的选项:
--gc_thrashing_limits=<comma separated pairs of <period>:<count>> 默认值:“1s:2,20s:3,1m:5”
限制,如果达到这些限制,则会导致 GcThrashingDetector 导致 Bazel 崩溃并出现 OOM。每个限制以 <period>:<count> 形式指定,其中 period 是时长,计数是正整数。如果在 <period> 内连续 <count> 次完整 GC 后仍被占用的到期空间(旧代堆)百分比超过 --gc_thrashing_threshold%,则会触发 OOM。可以用英文逗号分隔指定多个限制。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_full_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过 --skyframe_high_water_mark_threshold 设置的阈值,则当发生完整 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示完整 GC 事件永远不会触发丢弃操作。达到此上限后,当发生完整 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_minor_gc_drops_per_invocation=<an integer, >= 0> 默认值:“2147483647”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量超过由 --skyframe_high_water_mark_threshold 设置的阈值,当发生次要 GC 事件时,它会丢弃不必要的临时 Skyframe 状态,每次调用最多达到这么多次。默认为整数.MAX_VALUE;实际上是无限制的。零表示次要 GC 事件永远不会触发丢弃操作。达到此上限后,当发生次要 GC 事件且超出保留的堆百分比阈值时,系统将不再丢弃 Skyframe 状态。
标记: host_machine_resource_optimizations
--skyframe_high_water_mark_threshold=<an integer> 默认值:“85”
用于对 Bazel 内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留的堆百分比用量不低于此阈值,则会丢弃不必要的临时 Skyframe 状态。当 GC 抖动 (i) 是由此临时状态的内存使用引起的且 (ii) 在需要时比重构状态的成本更高时,即可降低 GC 抖动对实际使用时间的影响。
标记: host_machine_resource_optimizations
影响日志记录的详细程度、格式或位置的选项:
--[no]experimental_command_profile 默认值:“false”
将 Java 飞行记录器 CPU 配置文件记录到输出基本目录中的 profile.jfr 文件中。此标志的语法和语义将来可能会更改,以支持不同的配置文件类型或输出格式;使用时需自行承担风险。
--[no]experimental_record_metrics_for_all_mnemonics 默认值:“false”
默认情况下,已执行操作数量最多的 20 种助记符不得超过操作类型的数量。设置此选项后,系统会写入所有助记符的统计信息。
用于指定或更改不属于其他类别的 Bazel 命令的通用输入的选项:
--experimental_resolved_file_instead_of_workspace=<a string> 默认值:“”
如果非空,则读取指定的已解析文件而不是 WORKSPACE 文件
标记: changes_inputs
远程缓存和执行选项:
--experimental_downloader_config=<a string> 默认值:参见说明
指定要用于配置远程下载程序的文件。此文件由多个行组成,其中每个行以指令(“allow”“block”或“rewrite”)开头,后跟主机名(分别用于“allow”和“block”)或两种格式,一种用于匹配,另一种用作替换网址,反向引用从“$1”开始。可以针对同一个网址提供多个“rewrite”指令,在这种情况下,系统会返回多个网址。
--experimental_worker_for_repo_fetching=<off, platform or virtual> 默认值:“关闭”
用于代码库提取的线程模式。如果设置为“off”,则不使用任何工作线程,并且 Repo 提取功能可能会重启。否则,如果设置为“platform”,则使用平台线程(即操作系统线程),如果设置为“virtual”,则使用虚拟线程。
其他选项,未以其他方式分类:
已累计 --override_repository=<an equals-separated mapping of repository name to path> 次多次使用
使用 <repo name>=<path> 形式的本地路径替换代码库。如果指定路径是绝对路径,则会按原样使用。如果指定路径是相对路径,则其相对于当前工作目录。如果给定路径以“%workspace%”开头,则该路径相对于工作区根目录,即“bazel info workspace”的输出

选项效果标记

unknown 此选项具有未知或未载明的作用。
no_op 此选项实际上没有任何作用。
loses_incremental_state 更改此选项的值可能会导致增量状态严重丢失,从而减慢构建速度。如果服务器重启或大部分依赖图失效,则状态可能会丢失。
changes_inputs 此选项会主动更改 Bazel 考虑的 build 输入,例如文件系统限制、代码库版本或其他选项。
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 此选项可更改一个或多个构建操作的命令行参数。
test_runner 此选项会更改构建的 testrunner 环境。

选项元数据标记

experimental 此选项会触发一项实验性功能,但无法保证一定功能。
incompatible_change 此选项会触发重大更改。使用此选项可测试迁移准备情况,或抢先体验新功能
deprecated 此选项已弃用。这可能是因为它影响的功能已弃用,或者首选其他提供信息的方法。