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 |
将目标安装到移动设备。 |
modquery |
查询 Bzlmod 外部依赖项图 |
print_action |
输出用于编译文件的命令行参数。 |
query |
执行依赖关系图查询。 |
run |
运行指定的目标。 |
shutdown |
停止 bazel 服务器。 |
sync |
同步工作区文件中指定的所有代码库 |
test |
构建和运行指定的测试目标。 |
version |
输出 bazel 的版本信息。 |
启动选项
- 显示在命令之前并由客户端解析的选项:
--[no]autodetect_server_javabase
默认值:“true”-
传递 --noautodetect_server_javabase 后,Bazel 不会回退到本地 JDK 来运行 bazel 服务器,而是会退出。
代码:affects_outputs
、loses_incremental_state
--[no]batch
默认值:“false”-
如果设置,Bazel 将仅作为客户端进程(而无服务器)运行,而不是在标准客户端/服务器模式下运行。此方法已废弃,并将被移除。如果您想避免服务器一直处于运行状态,请改为明确关闭服务器。
代码:loses_incremental_state
、bazel_internal_configuration
、deprecated
--[no]batch_cpu_scheduling
默认值:“false”-
仅适用于 Linux;为 Blaze 使用“批处理”CPU 调度。对于非交互式但不想降低 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) 由于之前的 /dev/null,系统会忽略 z.rc。如果未指定,Bazel 会使用它在以下两个位置找到的第一个 .bazelrc 文件:工作区目录,然后是用户的主目录。注意:命令行选项始终会替换 bazelrc 中的任何选项。
代码:changes_inputs
--[no]block_for_lock
默认值:“true”-
传递 --noblock_for_lock 后,Bazel 不会等待正在运行的命令完成,而是会立即退出。
代码:eagerness_to_exit
--[no]client_debug
默认值:“false”-
如果为 true,则将来自客户端的调试信息记录到 stderr。更改此选项不会导致服务器重启。
代码:affects_outputs
、bazel_monitoring
--connect_timeout_secs=<an integer>
默认值:“30”-
客户端每次尝试连接到服务器时等待的时间
代码:bazel_internal_configuration
--[no]expand_configs_in_place
默认值:“true”-
将 --config 标志的展开方式更改为就地展开,而不是在常规 rc 选项和命令行指定的选项之间进行定点展开。
代码:no_op
、deprecated
--failure_detail_out=<path>
默认:请参阅说明-
如果设置,则在服务器发生故障且无法像往常一样通过 gRPC 报告故障时,指定写入 failure_detail protobuf 消息的位置。否则,位置将为 ${OUTPUT_BASE}/failure_detail.rawproto。
代码:affects_outputs
、loses_incremental_state
--[no]home_rc
默认值:“true”-
是否在 $HOME/.bazelrc 中查找主 bazelrc 文件
标记:changes_inputs
--[no]idle_server_tasks
默认值:“true”-
在服务器空闲时运行 System.gc()
代码:loses_incremental_state
、host_machine_resource_optimizations
--[no]ignore_all_rc_files
默认值:“false”-
会停用所有 rc 文件,无论其他用于修改 rc 的标志的值如何,即使这些标志在启动选项列表中的后面也是如此。
代码:changes_inputs
--io_nice_level={-1,0,1,2,3,4,5,6,7}
默认值:“-1”-
仅适用于 Linux;使用 sys_ioprio_set 系统调用,将级别设置为 0-7 以实现尽力 I/O 调度。0 表示最高优先级,7 表示最低优先级。预测性调度程序最多只能支持优先级 4。如果设置为负值,则 Bazel 不会执行系统调用。
代码:host_machine_resource_optimizations
--local_startup_timeout_secs=<an integer>
默认值:“120”-
客户端等待连接到服务器的最大时长
代码:bazel_internal_configuration
--macos_qos_class=<a string>
默认值:“default”-
在 macOS 上运行时,设置 bazel 服务器的 QoS 服务类。此标志对所有其他平台没有影响,但我们支持此标志,以确保 rc 文件可以在这些平台之间共享而无需更改。可能的值包括:用户互动、用户发起、默认、实用程序和后台。
代码:host_machine_resource_optimizations
--max_idle_secs=<integer>
默认值:“10800”-
构建服务器在关闭之前将等待的空闲秒数。零表示服务器永远不会关闭。系统仅在服务器启动时读取此值,更改此选项不会导致服务器重启。
代码:eagerness_to_exit
、loses_incremental_state
--output_base=<path>
默认:请参阅说明-
如果设置,则指定将写入所有 build 输出的输出位置。否则,位置将为 ${OUTPUT_ROOT}/_blaze_${USER}/${MD5_OF_WORKSPACE_ROOT}。注意:如果您在一次 Bazel 调用与下一次 Bazel 调用之间为此值指定了不同的选项,则可能会启动一个新的附加 Bazel 服务器。Bazel 会为每个指定的输出基础目录启动一个服务器。通常,每个工作区只有一个输出基础;不过,如果您使用此选项,则每个工作区可以有多个输出基础,从而能够在同一台机器上并发为同一客户端运行多个 build。如需了解如何关闭 Bazel 服务器,请参阅“bazel help shutdown”。
代码:affects_outputs
、loses_incremental_state
--output_user_root=<path>
默认:请参阅说明-
所有 build 输出都写入到此用户专用目录下;默认情况下,这是一个 $USER 的函数,但通过指定常量,build 输出可以在协作用户之间共享。
代码:affects_outputs
、loses_incremental_state
--[no]preemptible
默认值:“false”-
如果为 true,则在启动其他命令时,系统可以抢占该命令。
代码:eagerness_to_exit
--server_jvm_out=<path>
默认:请参阅说明-
用于写入服务器 JVM 输出的位置。如果未设置,则默认为 output_base 中的某个位置。
代码:affects_outputs
、loses_incremental_state
--[no]shutdown_on_low_sys_mem
默认值:“false”-
如果设置了 max_idle_secs 且构建服务器已空闲一段时间,则在系统空闲 RAM 不足时关闭服务器。仅限 Linux。
代码:eagerness_to_exit
、loses_incremental_state
--[no]system_rc
默认值:“true”-
是否查找系统级 bazelrc。
代码:changes_inputs
--[no]unlimit_coredumps
默认值:“false”- 将软核心转储限制上调至硬限制,以便在常见情况下生成服务器(包括 JVM)和客户端的核心转储。将此标志添加到 bazelrc 中,然后将其忘记,这样当您实际遇到触发核心转储的条件时,便会获得核心转储。
代码:bazel_internal_configuration
--[no]watchfs
默认值:“false”-
如果为 true,则 bazel 会尝试使用操作系统的文件监控服务来监控本地更改,而不是扫描每个文件以查找更改。
代码:deprecated
--[no]windows_enable_symlinks
默认值:“false”-
如果为 true,则会在 Windows 上创建真实的符号链接,而不是进行文件复制。需要启用 Windows 开发者模式,并且使用 Windows 10 1703 版或更高版本。
代码:bazel_internal_configuration
--[no]workspace_rc
默认值:“true”-
是否在 $workspace/.bazelrc 中查找工作区 bazelrc 文件
标记:changes_inputs
- 其他无法归类的选项:
--host_jvm_args=<jvm_arg>
累计多次使用- 要传递给执行 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 的路径。
所有命令通用的选项
- 用于控制 build 执行的选项:
--experimental_oom_more_eagerly_threshold=<an integer>
默认值:“100”-
如果此标志设置为小于 100 的值,则如果在两次完整 GC 后,(old gen) 堆仍占用超过此百分比的空间,Bazel 将发生 OOM。
代码:host_machine_resource_optimizations
--experimental_ui_max_stdouterr_bytes=<an integer in (-1)-1073741819 range>
默认值:“1048576”-
要输出到控制台的标准输出 / 标准错误文件的大小上限。-1 表示无限制。
代码:execution
- 允许用户配置预期输出的选项,会影响其值,而不是其存在性:
--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
默认值:“false”-
如果为 true,则启用 Bzlmod 依赖项管理系统,该系统优先于 WORKSPACE。如需了解详情,请参阅 https://bazel.build/build/bzlmod。
代码:loading_and_analysis
--[no]experimental_action_resource_set
默认值:“true”-
如果设置为 true,ctx.actions.run() 和 ctx.actions.run_shell() 会接受 resource_set 参数以进行本地执行。否则,内存和 CPU 将默认设置为 250 MB 和 1 个。
代码:execution
、build_file_semantics
、experimental
-
如果设置为 true,系统会将标记从目标传播到操作的执行要求;否则,系统不会传播标记。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/8830。
代码:build_file_semantics
、experimental
--[no]experimental_analysis_test_call
默认值:“true”-
如果设置为 true,则可以使用 analysis_test 原生调用。
代码:loading_and_analysis
、build_file_semantics
、experimental
--[no]experimental_bzl_visibility
默认值:“true”-
如果启用,则会添加一个 `visibility()` 函数,.bzl 文件可以在顶级评估期间调用该函数,以便出于 load() 语句的目的设置其可见性。
代码:loading_and_analysis
、experimental
-
如果设为 true,则规则 cc_shared_library 所需的规则属性和 Starlark API 方法将可用
标记:build_file_semantics
、loading_and_analysis
、experimental
--[no]experimental_disable_external_package
默认值:“false”-
如果设置为 true,系统将不再提供自动生成的 //external 软件包。Bazel 仍无法解析文件“external/BUILD”,但从未命名软件包中延伸到 external/ 的通配符将会起作用。
代码:loading_and_analysis
、loses_incremental_state
、experimental
--[no]experimental_enable_android_migration_apis
默认值:“false”-
如果设为 true,则启用支持 Android Starlark 迁移所需的 API。
代码:build_file_semantics
--[no]experimental_get_fixed_configured_action_env
默认值:“false”-
如果启用,action.env 还会返回通过功能配置指定的固定环境变量。
代码:loading_and_analysis
、experimental
--[no]experimental_google_legacy_api
默认值:“false”-
如果设为 true,则会公开与 Google 旧版代码相关的多个 Starlark build API 实验性部分。
代码:loading_and_analysis
、experimental
--[no]experimental_lazy_template_expansion
默认值:“true”-
如果设为 true,ctx.actions.expand_template() 会接受 TemplateDict 参数,以便延迟评估替换值。
代码:execution
、build_file_semantics
、experimental
--[no]experimental_platforms_api
默认值:“false”-
如果设置为 true,则会启用一些与平台相关的 Starlark API,这些 API 对调试很有用。
代码:loading_and_analysis
、experimental
--[no]experimental_repo_remote_exec
默认值:“false”-
如果设置为 true,repository_rule 会获得一些远程执行功能。
代码:build_file_semantics
、loading_and_analysis
、experimental
--[no]experimental_sibling_repository_layout
默认值:“false”-
如果设置为 true,非主要代码库会作为指向执行根目录中主要代码库的符号链接植入。也就是说,所有代码库都是 $output_base/execution_root 目录的直接子目录。这会产生一个副作用,即为真正的顶级“external”目录释放 $output_base/execution_root/__main__/external。
代码:action_command_lines
、bazel_internal_configuration
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]incompatible_always_check_depset_elements
默认值:“true”-
检查所有构造函数中添加到 depset 的元素的有效性。元素必须是不可变的,但历史上,depset(direct=...) 构造函数忘记了进行检查。在 depset 元素中使用元组,而不是列表。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/10313。
代码:build_file_semantics
、incompatible_change
--[no]incompatible_depset_for_libraries_to_link_getter
默认值:“true”-
如果为 true,Bazel 将不再从 linking_context.libraries_to_link 返回列表,而是返回 depset。
代码:loading_and_analysis
、incompatible_change
--[no]incompatible_disable_starlark_host_transitions
默认值:“false”-
如果设置为 true,规则属性将无法设置“cfg = "host"”。规则应改为设置“cfg = "exec"”。
代码:loading_and_analysis
、incompatible_change
--[no]incompatible_disable_target_provider_fields
默认值:“false”-
如果设置为 true,则会停用通过字段语法访问“target”对象上的提供程序的功能。请改用提供程序密钥语法。例如,请改用 `ctx.attr.dep[MyInfo]` 从规则实现函数内访问 `my_info`,而不是使用 `ctx.attr.dep.my_info`。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/9014。
代码:build_file_semantics
、incompatible_change
--[no]incompatible_disallow_empty_glob
默认值:“false”-
如果设为 true,glob() 的 `allow_empty` 参数的默认值为 False。
代码:build_file_semantics
、incompatible_change
--[no]incompatible_disallow_legacy_javainfo
默认值:“true”-
已弃用。无操作。
代码:build_file_semantics
、incompatible_change
--[no]incompatible_disallow_struct_provider_syntax
默认值:“false”-
如果设置为 true,规则实现函数可能不会返回结构体。而必须返回提供程序实例的列表。
代码:build_file_semantics
、incompatible_change
--[no]incompatible_existing_rules_immutable_view
默认值:“true”-
如果设置为 true,native.existing_rule 和 native.existing_rules 会返回轻量级不可变视图对象,而不是可变字典。
代码:build_file_semantics
、loading_and_analysis
、incompatible_change
--[no]incompatible_fix_package_group_reporoot_syntax
默认值:“true”-
在 package_group 的 `packages` 属性中,将值“//...”的含义更改为指当前代码库中的所有软件包,而不是任何代码库中的所有软件包。您可以使用特殊值“public”替代“//...”以获得旧行为。此标志要求同时启用 --incompatible_package_group_has_public_syntax。
代码:build_file_semantics
、incompatible_change
--[no]incompatible_java_common_parameters
默认值:“true”-
如果设置为 true,pack_sources 中的 output_jar 和 host_javabase 参数以及 compile 中的 host_javabase 将全部移除。
代码:build_file_semantics
、incompatible_change
--[no]incompatible_new_actions_api
默认值:“true”-
如果设置为 true,用于创建操作的 API 仅适用于 `ctx.actions`,而不适用于 `ctx`。
代码段:build_file_semantics
、incompatible_change
--[no]incompatible_no_attr_license
默认值:“true”-
如果设置为 true,则会停用函数 `attr.license`。
代码:build_file_semantics
、incompatible_change
--[no]incompatible_no_implicit_file_export
默认值:“false”-
如果设置,除非明确导出,否则(已使用的)源文件是软件包私有的。请参阅 https://github.com/bazelbuild/proposals/blob/master/designs/2019-10-24-file-visibility.md
标记:build_file_semantics
、incompatible_change
--[no]incompatible_no_rule_outputs_param
默认值:“false”-
如果设置为 true,则会停用 `rule()` Starlark 函数的 `outputs` 参数。
代码:build_file_semantics
、incompatible_change
--[no]incompatible_package_group_has_public_syntax
默认值:“true”-
在 package_group 的 `packages` 属性中,允许写入“public”或“private”,分别表示所有软件包或无软件包。
代码:build_file_semantics
、incompatible_change
--[no]incompatible_require_linker_input_cc_api
默认值:“true”-
如果设置为 true,规则 create_linking_context 将需要 linker_inputs,而不是 libraries_to_link。linking_context 的旧 getter 也将被停用,只会提供 linker_inputs。
代码:build_file_semantics
、loading_and_analysis
、incompatible_change
--[no]incompatible_run_shell_command_string
默认值:“true”-
如果设置为 true,actions.run_shell 的命令参数将仅接受字符串
标记:build_file_semantics
、incompatible_change
--[no]incompatible_stop_exporting_language_modules
默认值:“false”-
如果启用此选项,用户 .bzl 文件中将无法使用特定于语言的模块(例如 `cc_common`),并且只能从各自的规则代码库中调用这些模块。
代码:loading_and_analysis
、incompatible_change
--[no]incompatible_struct_has_no_methods
默认值:“false”- 停用了结构体的 to_json 和 to_proto 方法,这会污染结构体字段命名空间。请改用 json.encode 或 json.encode_indent 来处理 JSON,或使用 proto.encode_text 来处理 textproto。
代码:build_file_semantics
、incompatible_change
--[no]incompatible_top_level_aspects_require_providers
默认值:“false”-
如果设置为 true,顶级 aspect 将遵循其所需的提供程序,并且仅在规则的所声明提供程序满足该 aspect 所需提供程序的顶级目标上运行。
代码:loading_and_analysis
、incompatible_change
--[no]incompatible_unambiguous_label_stringification
默认值:“true”-
如果为 true,Bazel 会将标签 @//foo:bar 转换为字符串 @//foo:bar,而不是 //foo:bar。这只会影响 str()、% 运算符等的行为;repr() 的行为保持不变。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/15916。
代码:loading_and_analysis
、incompatible_change
--[no]incompatible_use_cc_configure_from_rules_cc
默认值:“false”-
如果为 true,Bazel 将不再允许使用 @bazel_tools 中的 cc_configure。如需了解详情和迁移说明,请参阅 https://github.com/bazelbuild/bazel/issues/10134。
代码:loading_and_analysis
、incompatible_change
--[no]incompatible_visibility_private_attributes_at_definition
默认值:“false”-
如果设为 true,系统会根据规则定义(而非规则使用情况)检查不公开规则属性的可见性。
代码:build_file_semantics
、incompatible_change
--max_computation_steps=<a long integer>
默认值:“0”-
BUILD 文件可以执行的 Starlark 计算步骤的数量上限(零表示无限制)。
代码:build_file_semantics
--nested_set_depth_limit=<an integer>
默认值:“3500”-
depset(也称为 NestedSet)内部图的最大深度,超过该深度,depset() 构造函数将失败。
代码段:loading_and_analysis
- 触发构建时间优化的选项:
--[no]incompatible_do_not_split_linking_cmdline
默认值:“true”-
如果为 true,则 Bazel 不再修改用于关联的命令行标志,也不会选择性地决定哪些标志会写入参数文件,哪些标志不会。如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7670。
代码:loading_and_analysis
、incompatible_change
--[no]keep_state_after_build
默认值:“true”-
如果为 false,则 Blaze 会在构建完成时舍弃此 build 中的内存状态。后续 build 不会比此 build 有任何增量。
代码:loses_incremental_state
--skyframe_high_water_mark_threshold=<an integer>
默认值:“85”-
用于对 Bazel 的内部 Skyframe 引擎进行高级配置的标志。如果 Bazel 检测到其保留堆百分比用量至少达到此阈值,则会丢弃不必要的临时 Skyframe 状态。如果 GC 抖动(i)是由此临时状态的内存用量引起的,并且 (ii) 比在需要时重新构建状态的开销更高,那么调整此参数可以减轻其对实际运行时间的影响。
代码:host_machine_resource_optimizations
--[no]track_incremental_state
默认值:“true”-
如果为 false,Blaze 不会保留允许在增量 build 中失效和重新评估的数据,以便在此 build 上节省内存。后续 build 不会比此 build 有任何增量。通常,在将此参数设置为 false 时,您需要指定 --batch。
标记:loses_incremental_state
- 影响日志记录详细程度、格式或位置的选项:
--[no]announce_rc
默认值:“false”-
是否宣布 rc 选项。
代码:affects_outputs
--[no]attempt_to_print_relative_paths
默认值:“false”-
在输出消息的位置部分时,尝试使用相对于 Workspace 目录或 --package_path 指定的一个目录的路径。
代码:terminal_output
--bes_backend=<a string>
默认值:“”-
以 [SCHEME://]HOST[:PORT] 的形式指定 build 事件服务 (BES) 后端端点。默认设置为停用 BES 上传。支持的架构为 grpc 和 grpcs(启用了 TLS 的 grpc)。如果未提供架构,Bazel 会假定为 grpcs。
代码:affects_outputs
--[no]bes_check_preceding_lifecycle_events
默认值:“false”-
在 PublishBuildToolEventStreamRequest 上设置了 check_preceding_lifecycle_events_present 字段,用于告知 BES 检查它之前是否收到了与当前工具事件匹配的 InvocationAttemptStarted 和 BuildEnqueued 事件。
代码:affects_outputs
--bes_header=<a 'name=value' assignment>
累计多次使用-
以 NAME=VALUE 格式指定将包含在 BES 请求中的标头。您可以通过多次指定此标志来传递多个标头。同名对应的多个值将转换为逗号分隔列表。
代码:affects_outputs
--bes_instance_name=<a string>
默认:请参阅说明-
指定 BES 将在哪个实例下保留上传的 BEP。默认值为 null。
代码:affects_outputs
--bes_keywords=<comma-separated list of options>
累计多次使用-
指定要添加到发布到 BES 的默认关键字集(“command_name=<command_name> ", "protocol_name=BEP")的通知关键字列表。默认值为无。
代码:affects_outputs
--[no]bes_lifecycle_events
默认值:“true”-
指定是否发布 BES 生命周期事件。(默认值为“true”)。
代码:affects_outputs
--bes_oom_finish_upload_timeout=<An immutable length of time.>
默认值:“10m”-
指定 bazel 在发生 OOM 时应等待 BES/BEP 上传完成的时长。当 JVM 发生严重的 GC 抖动且无法在任何用户线程中取得进展时,此标志可确保终止。
代码:bazel_monitoring
--bes_outerr_buffer_size=<an integer>
默认值:“10240”-
指定在作为进度事件报告之前,要缓冲在 BEP 中的标准输出或标准错误输出的大小上限。即使写入量大于指定值(不超过 --bes_outerr_chunk_size),系统仍会在单个事件中报告各个写入。
代码:affects_outputs
--bes_outerr_chunk_size=<an integer>
默认值:“1048576”-
指定要将 stdout 或 stderr 发送到 BEP 的单个消息的大小上限。
代码:affects_outputs
--bes_proxy=<a string>
默认:请参阅说明- 通过代理连接到 Build Event Service。目前,此标志只能用于配置 Unix 域套接字 (unix:/path/to/socket)。
--bes_results_url=<a string>
默认值:“”-
指定用户可以查看流式传输到 BES 后端的信息的基准网址。Bazel 会将附加调用 ID 的网址输出到终端。
代码:terminal_output
--bes_timeout=<An immutable length of time.>
默认值:“0s”-
指定 bazel 在构建和测试完成后应等待 BES/BEP 上传完成多长时间。有效的超时时间是一个自然数后跟一个单位:天 (d)、小时 (h)、分钟 (m)、秒 (s) 和毫秒 (ms)。默认值为“0”,表示没有超时。
代码:affects_outputs
--build_event_binary_file=<a string>
默认值:“”-
如果不为空,则将 build 事件协议的 varint 分隔二进制表示法写入该文件。此选项暗示 --bes_upload_mode=wait_for_upload_complete。
代码:affects_outputs
--[no]build_event_binary_file_path_conversion
默认值:“true”-
请尽可能将 build 事件协议的二进制文件表示法中的路径转换为更具全局效力的 URI;如果停用,系统将始终使用 file:// URI 架构
代码:affects_outputs
--build_event_json_file=<a string>
默认值:“”-
如果不为空,则将 build 事件协议的 JSON 序列化写入该文件。
代码:affects_outputs
--[no]build_event_json_file_path_conversion
默认值:“true”-
尽可能将 build 事件协议的 JSON 文件表示法中的路径转换为更具全球效力的 URI;如果停用,系统将始终使用 file:// URI 架构
代码:affects_outputs
--build_event_max_named_set_of_file_entries=<an integer>
默认值:“-1”-
单个 named_set_of_files 事件的条目数量上限;系统会忽略小于 2 的值,并且不会执行事件拆分。这旨在限制 build 事件协议中的事件大小上限,但不会直接控制事件大小。事件总大小取决于集合的结构以及文件和 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
--[no]experimental_announce_profile_path
默认值:“false”-
如果启用,会将 JSON 配置文件路径添加到日志。
代码:affects_outputs
、bazel_monitoring
--[no]experimental_bep_target_summary
默认值:“false”- 是否发布 TargetSummary 事件。
--[no]experimental_build_event_expand_filesets
默认值:“false”-
如果为 true,则在显示输出文件时在 BEP 中展开文件集。
代码:affects_outputs
--[no]experimental_build_event_fully_resolve_fileset_symlinks
默认值:“false”-
如果为 true,则在显示输出文件时,在 BEP 中完全解析相对文件集符号链接。需要使用 --experimental_build_event_expand_filesets。
代码:affects_outputs
--experimental_build_event_upload_max_retries=<an integer>
默认值:“4”-
Bazel 应重试上传 build 事件的次数上限。
代码: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
--experimental_profile_additional_tasks=<phase, action, action_check, action_lock, action_release, action_update, action_complete, info, create_package, remote_execution, local_execution, scanner, local_parse, upload_time, process_time, remote_queue, remote_setup, fetch, 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, local_cpu_usage, system_cpu_usage, local_memory_usage, system_memory_usage, 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 or unknown>
累计多次使用-
指定要包含在配置文件中的其他配置文件任务。
代码:affects_outputs
、bazel_monitoring
--[no]experimental_profile_include_primary_output
默认值:“false”-
在操作事件中添加了额外的“out”属性,其中包含指向操作主要输出的执行路径。
代码:affects_outputs
、bazel_monitoring
--[no]experimental_profile_include_target_label
默认值:“false”-
在操作事件的 JSON 配置数据中添加了目标标签。
代码:affects_outputs
、bazel_monitoring
--[no]experimental_stream_log_file_uploads
默认值:“false”-
流式日志文件会直接上传到远程存储空间,而不是写入磁盘。
代码:affects_outputs
--experimental_workspace_rules_log_file=<a path>
默认:请参阅说明- 将某些 Workspace 规则事件记录到此文件中,以分隔的 WorkspaceEvent 协议的形式。
--[no]generate_json_trace_profile
默认值:“auto”-
如果启用,Bazel 会对 build 进行性能分析,并将 JSON 格式的配置文件写入输出基准中的文件。加载 chrome://tracing 以查看轨迹文件。默认情况下,Bazel 会为所有类似构建的命令和查询写入配置文件。
代码:affects_outputs
、bazel_monitoring
--[no]heap_dump_on_oom
默认值:“false”-
确定是否在抛出 OOM(包括因 --experimental_oom_more_eagerly_threshold 而抛出的 OOM)时手动输出堆转储。该转储将写入 <output_base>/<invocation_id>.heapdump.hprof。此选项实际上取代了 -XX:+HeapDumpOnOutOfMemoryError,后者没有任何效果,因为 OOM 会被捕获并重定向到 Runtime#halt。
代码:bazel_monitoring
--[no]legacy_important_outputs
默认值:“true”-
使用此选项可抑制在 TargetComplete 事件中生成旧版 important_outputs 字段。若要将 Bazel 与 ResultStore 集成,必须使用 important_outputs。
代码:affects_outputs
--logging=<0 <= an integer <= 6>
默认值:“3”-
日志记录级别。
代码:affects_outputs
--memory_profile=<a path>
默认:请参阅说明-
如果设置,则会在阶段结束时将内存用量数据写入指定文件,并在构建结束时将稳定堆写入主日志。
代码:affects_outputs
、bazel_monitoring
--memory_profile_stable_heap_parameters=<two integers, separated by a comma>
默认值:“1,0”-
调整了构建结束时内存性能配置文件对稳定堆的计算。此值应为两个由英文逗号分隔的整数。第一个参数是要执行的 GC 次数。第二个参数是两次垃圾回收之间等待的秒数。
代码:bazel_monitoring
--profile=<a path>
默认:请参阅说明-
如果设置,则会对 Bazel 进行性能分析并将数据写入指定文件。使用 bazel analyze-profile 分析配置文件。
代码:affects_outputs
、bazel_monitoring
--[no]slim_profile
默认值:“true”-
如果配置文件过大,则通过合并事件来缩减 JSON 配置文件的大小。
代码:affects_outputs
、bazel_monitoring
--starlark_cpu_profile=<a string>
默认值:“”-
将所有 Starlark 线程的 CPU 使用情况 pprof 配置文件写入指定文件。
代码:bazel_monitoring
--tool_tag=<a string>
默认值:“”-
要将此 Bazel 调用归因到的工具名称。
代码:affects_outputs
、bazel_monitoring
--ui_event_filters=<Convert list of comma separated event kind to list of filters>
累计多次使用-
指定要在界面中显示哪些事件。您可以使用前置 +/- 将事件添加或移除到默认事件,也可以使用直接赋值完全替换默认集。支持的一组事件类型包括 INFO、DEBUG、ERROR 等。
代码:terminal_output
- 其他未分类的选项:
--build_metadata=<a 'name=value' assignment>
累计多次使用-
要在 build 事件中提供的自定义键值字符串对。
代码:terminal_output
--color=<yes, no or auto>
默认值:“auto”- 使用终端控件为输出添加颜色。
--config=<a string>
累计多次使用- 从 rc 文件中选择其他配置部分;对于每个 <command>,它还会从 <command>:<config> 中提取选项(如果存在此部分);如果任何 .rc 文件中都不存在此部分,Blaze 会失败并显示错误。等效的配置部分和标志组合位于 tools/*.blazerc 配置文件中。
--curses=<yes, no or auto>
默认值:“auto”- 使用终端光标控件尽可能减少滚动输出。
--[no]enable_platform_specific_config
默认值:“false”- 如果为 true,则 Bazel 会从 bazelrc 文件中提取特定于主机操作系统的配置行。例如,如果主机操作系统是 Linux,并且您运行 bazel build,则 Bazel 会选择以 build:linux 开头的行。支持的操作系统标识符包括 linux、macos、windows、freebsd 和 openbsd。启用此标志相当于在 Linux 上使用 --config=linux,在 Windows 上使用 --config=windows 等。
--experimental_credential_helper=<An (unresolved) path to a credential helper for a scope.>
累计多次使用- 配置要用于检索所提供范围(网域)的凭据的凭据帮助程序。 凭据助手中的凭据优先于 <code>--google_default_credentials</code>、`--google_credentials` 或 <code>.netrc</code> 中的凭据。详情请参阅 https://github.com/bazelbuild/proposals/blob/main/designs/2022-06-07-bazel-credential-helpers.md。
--experimental_credential_helper_cache_duration=<An immutable length of time.>
默认值:“30m”- 配置凭据帮助程序中的凭据缓存时长。 使用其他值进行调用会调整现有条目的生命周期;传递零可清除缓存。无论此标志如何,clean 命令始终会清除缓存。
--experimental_credential_helper_timeout=<An immutable length of time.>
默认值:“5s”- 为 Credential Helper 配置超时。 如果凭据帮助程序未在此超时时间段内做出响应,则调用将失败。
--[no]experimental_skymeld_ui
默认值:“false”-
当分析和执行阶段同时运行时,同时显示这两个阶段的进度。
代码:terminal_output
--[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 连接配置 keepalive pinging。如果设置此值,则在连接上没有执行读取操作这么长时间后,Bazel 会发送 ping,但前提是至少有一个待处理的 gRPC 调用。时间以秒为粒度;如果设置的值小于 1 秒,则会出错。默认情况下,系统会停用保持连接的 ping。您应先与服务所有者协调,然后再启用此设置。例如,如需将此标志的值设置为 30 秒,应按如下方式进行:--grpc_keepalive_time=30s
--grpc_keepalive_timeout=<An immutable length of time.>
默认值:“20s”- 为出站 gRPC 连接配置了 keepalive 超时。如果使用 --grpc_keepalive_time 启用了 keepalive ping,那么如果 Bazel 在此时间过后未收到 ping 回复,则会超时连接。时间以秒为粒度;如果设置的值小于 1 秒,则会出错。如果停用了保持连接的 ping,系统会忽略此设置。
--[no]incompatible_disallow_symlink_file_to_dir
默认值:“true”-
如果设为 true,则 `ctx.actions.symlink` 将禁止将文件符号连接到目录。
代码:loading_and_analysis
、incompatible_change
--[no]incompatible_remove_rule_name_parameter
默认值:“true”-
如果设置为 true,则无法使用“name”参数调用“rule”。
代码:loading_and_analysis
、incompatible_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 的数字都会映射到 1。
代码:terminal_output
--[no]watchfs
默认值:“false”- 在 Linux/macOS 上:如果为 true,则 bazel 会尝试使用操作系统的文件监控服务来监控本地更改,而不是扫描每个文件以查找更改。在 Windows 上:此标志目前无效,但可以与 --experimental_windows_watchfs 结合使用。在任何操作系统上:如果您的工作区位于网络文件系统中,并且文件是在远程计算机上修改的,则行为未定义。
“分析”标签页中的“配置文件”选项
- 显示在命令之前并由客户端解析的选项:
--distdir=<a path>
累计多次使用-
在访问网络下载归档文件之前,可搜索归档文件的其他位置。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_hardlinks
默认值:“false”-
如果设置了此选项,代码库缓存在命中缓存时会硬链接文件,而不是进行复制。这是为了节省磁盘空间。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_urls_as_default_canonical_id
默认值:“false”-
如果为 true,则使用从代码库下载网址派生的字符串作为 canonical_id(如果未指定)。这会导致网址发生变化,从而导致重新下载,即使缓存中包含具有相同哈希值的下载内容也是如此。这可用于验证网址更改不会导致缓存掩盖损坏的代码库。
代码:loading_and_analysis
、experimental
--[no]experimental_repository_disable_download
默认值:“false”-
如果设置,则不允许下载外部代码库。
代码:experimental
--experimental_repository_downloader_retries=<an integer>
默认值:“0”-
下载错误的重试尝试次数上限。如果设置为 0,则会停用重试。
代码:experimental
--experimental_scale_timeouts=<a double>
默认值:“1.0”-
将 Starlark 代码库规则中的所有超时时间乘以此系数。这样,外部代码库就可以在比规则作者预期更慢的机器上运行,而无需更改源代码
代码:bazel_internal_configuration
、experimental
--http_timeout_scaling=<a double>
默认值:“1.0”-
按给定系数缩放与 http 下载相关的所有超时时间
代码:bazel_internal_configuration
--repository_cache=<a path>
默认:请参阅说明-
指定在提取外部代码库期间获取的下载值的缓存位置。将空字符串作为参数会请求停用缓存。
代码:bazel_internal_configuration
- 影响 Bazel 强制执行有效 build 输入(规则定义、标志组合等)的严格程度的选项:
--experimental_repository_hash_file=<a string>
默认值:“”-
如果不为空,则指定包含已解析值的文件,系统应根据该值验证代码库目录哈希
标记:affects_outputs
、experimental
--experimental_verify_repository_rules=<a string>
累计多次使用-
如果应验证输出目录的哈希的代码库规则列表,则通过 --experimental_repository_hash_file 指定文件。
标记:affects_outputs
、experimental
- 此选项会影响 Starlark 语言的语义或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API:
--[no]experimental_allow_top_level_aspects_parameters
默认值:“true”-
无操作
标记:no_op
、deprecated
、experimental
- 与 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
--override_module=<an equals-separated mapping of module name to path>
累计多次使用- 使用本地目录替换模块。
--registry=<a string>
累计多次使用-
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在较早的注册表中查找模块,只有在较早的注册表中没有模块时,才会回退到较新的注册表。
标记:changes_inputs
- 影响日志记录详细程度、格式或位置的选项:
--dump=<text or raw>
[-d
] 默认:请参阅说明- 以易于阅读的“文本”格式或适合脚本的“原始”格式输出完整的配置数据转储。
代码:affects_outputs
--[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”指令,在这种情况下,系统会返回多个网址。
- 其他未归入其他类别的选项:
--override_repository=<an equals-separated mapping of repository name to path>
累计多次使用- 使用本地目录替换代码库。
Aquery 选项
继承 build 中的所有选项。
- 显示在命令之前并由客户端解析的选项:
--distdir=<a path>
累计多次使用-
在访问网络下载归档文件之前,可搜索归档文件的其他位置。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_hardlinks
默认值:“false”-
如果设置了此选项,代码库缓存在命中缓存时会硬链接文件,而不是进行复制。这是为了节省磁盘空间。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_urls_as_default_canonical_id
默认值:“false”-
如果为 true,则使用从代码库下载网址派生的字符串作为 canonical_id(如果未指定)。这会导致网址发生变化,从而导致重新下载,即使缓存中包含具有相同哈希值的下载内容也是如此。这可用于验证网址更改不会导致缓存掩盖损坏的代码库。
代码:loading_and_analysis
、experimental
--[no]experimental_repository_disable_download
默认值:“false”-
如果设置,则不允许下载外部代码库。
代码:experimental
--experimental_repository_downloader_retries=<an integer>
默认值:“0”-
下载错误的重试尝试次数上限。如果设置为 0,则会停用重试。
代码:experimental
--experimental_scale_timeouts=<a double>
默认值:“1.0”-
将 Starlark 代码库规则中的所有超时时间乘以此系数。这样,外部代码库就可以在比规则作者预期更慢的机器上运行,而无需更改源代码
代码:bazel_internal_configuration
、experimental
--http_timeout_scaling=<a double>
默认值:“1.0”-
按给定系数缩放与 http 下载相关的所有超时时间
代码:bazel_internal_configuration
--repository_cache=<a path>
默认:请参阅说明-
指定在提取外部代码库期间获取的下载值的缓存位置。将空字符串作为参数会请求停用缓存。
代码:bazel_internal_configuration
- 影响 Bazel 强制执行有效 build 输入(规则定义、标志组合等)的严格程度的选项:
--experimental_repository_hash_file=<a string>
默认值:“”-
如果不为空,则指定包含已解析值的文件,系统应根据该值验证代码库目录哈希
标记:affects_outputs
、experimental
--experimental_verify_repository_rules=<a string>
累计多次使用-
如果应验证输出目录的哈希的代码库规则列表,则通过 --experimental_repository_hash_file 指定文件。
标记:affects_outputs
、experimental
- 此选项会影响 Starlark 语言的语义或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API:
--[no]experimental_allow_top_level_aspects_parameters
默认值:“true”-
无操作
标记:no_op
、deprecated
、experimental
- 与查询输出和语义相关的选项:
--aspect_deps=<off, conservative or precise>
默认值:“保守”-
如何在输出格式为 {xml,proto,record} 之一时解析方面依赖项。“关闭”表示不解析任何方面依赖项;“保守”(默认)表示添加所有声明的方面依赖项,无论它们是否被赋予直接依赖项的规则类;“精确”表示仅添加可能处于活动状态的方面,具体取决于直接依赖项的规则类。请注意,精确模式需要加载其他软件包才能评估单个目标,因此速度比其他模式慢。另请注意,即使是精确模式也不完全精确:计算某个方面是否需要在分析阶段决定,而该阶段不会在“bazel query”期间运行。
代码:build_file_semantics
--[no]deduplicate_depsets
默认值:“true”-
在最终的 proto/textproto/json 输出中删除了 dep_set_of_files 的非叶子子项的重复项。这不会去除不共享直接父级的 depset。这不会影响操作的输入工件最终有效列表。
代码:terminal_output
--[no]graph:factored
默认值:“true”-
如果为 true,则会以“分解”形式发出图,即将拓扑等效的节点合并在一起,并串联其标签。此选项仅适用于 --output=graph。
代码:terminal_output
--graph:node_limit=<an integer>
默认值:“512”-
输出中图表节点的标签字符串的最大长度。较长的标签将被截断;-1 表示不截断。此选项仅适用于 --output=graph。
代码:terminal_output
--[no]implicit_deps
默认值:“true”-
如果启用,隐式依赖项将包含在查询操作的依赖图中。隐式依赖项是指未在 BUILD 文件中明确指定,但由 Bazel 添加的依赖项。对于 cquery,此选项用于控制过滤已解析的工具链。
代码:build_file_semantics
--[no]include_artifacts
默认值:“true”-
包含输出中的操作输入和输出的名称(可能很大)。
代码:terminal_output
--[no]include_aspects
默认值:“true”-
aquery、cquery:是否在输出中包含由方面生成的操作。query:无操作(始终遵循方面)。
代码:terminal_output
--[no]include_commandline
默认值:“true”-
包含输出中的操作命令行的相关内容(可能很大)。
代码:terminal_output
--[no]include_file_write_contents
默认值:“false”-
包含 FileWrite 和 SourceSymlinkManifest 操作的文件内容(可能很大)。
代码:terminal_output
--[no]include_param_files
默认值:“false”-
包含命令中使用的参数文件的内容(可能很大)。注意:启用此标志会自动启用 --include_commandline 标志。
代码:terminal_output
--[no]incompatible_display_source_file_location
默认值:“true”-
默认值为 true,用于显示源文件的目标。如果为 true,则在位置输出中显示源文件第 1 行的所在位置。此标志仅用于迁移目的。
代码:terminal_output
、incompatible_change
--[no]incompatible_package_group_includes_double_slash
默认值:“true”-
如果启用,则在输出 package_group 的 `packages` 属性时,不会省略开头的 `//`。
代码:terminal_output
、incompatible_change
--[no]infer_universe_scope
默认值:“false”- 如果已设置,并且未设置 --universe_scope,则 --universe_scope 的值将推断为查询表达式中的唯一目标模式列表。请注意,为使用全局范围函数(例如 `allrdeps`)的查询表达式推断出的 --universe_scope 值可能不是您想要的,因此只有在您知道自己在做什么的情况下,才应使用此选项。如需了解详情和示例,请参阅 https://bazel.build/query/language#sky-query。如果设置了 --universe_scope,则系统会忽略此选项的值。注意:此选项仅适用于“query”(即不适用于“cquery”)。
代码:loading_and_analysis
--[no]line_terminator_null
默认值:“false”-
确定每个格式是否以 \0(而非换行符)结尾。
代码:terminal_output
--[no]nodep_deps
默认值:“true”-
如果启用,查询操作所依赖的依赖项图中将包含“nodep”属性中的依赖项。“nodep”属性的一个常见示例是“visibility”。运行并解析 `info build-language` 的输出,了解 build 语言中的所有“nodep”属性。
代码:build_file_semantics
--output=<a string>
默认值:“text”-
aquery 结果应采用的输出格式。aquery 的允许值为:text、textproto、proto、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_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
--[no]relative_locations
默认值:“false”-
如果为 true,xml 和 proto 输出中的 BUILD 文件的位置将是相对位置。默认情况下,位置输出是绝对路径,并且在不同机器之间不会保持一致。您可以将此选项设置为 true,以便在不同机器上获得一致的结果。
代码:terminal_output
--[no]skyframe_state
默认值:“false”-
在不执行额外分析的情况下,从 Skyframe 转储当前的 Action Graph。注意:目前不支持使用 --skyframe_state 指定目标。此标志仅适用于 --output=proto 或 --output=textproto。
代码:terminal_output
--[no]tool_deps
默认值:“true”-
查询:如果停用,查询所依赖的“主机配置”或“执行”目标将不会包含在查询所操作的依赖项图中。“主机配置”依赖项边(例如,从任何“proto_library”规则到协议编译器的边)通常指向构建期间执行的工具,而不是同一“目标”程序的一部分。
Cquery:如果停用,则会滤除从发现此配置目标的顶级目标跨主机或执行转换的所有配置目标。也就是说,如果顶级目标位于目标配置中,则系统只会返回也位于目标配置中的已配置目标。如果顶级目标位于主机配置中,则系统只会返回主机配置的目标。此选项不会排除已解析的工具链。
代码: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
--override_module=<an equals-separated mapping of module name to path>
累计多次使用- 使用本地目录替换模块。
--registry=<a string>
累计多次使用-
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在较早的注册表中查找模块,只有在较早的注册表中没有模块时,才会回退到较新的注册表。
标记:changes_inputs
- 影响日志记录详细程度、格式或位置的选项:
--[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”指令,在这种情况下,系统会返回多个网址。
- 其他未归入其他类别的选项:
--override_repository=<an equals-separated mapping of repository name to path>
累计多次使用- 使用本地目录替换代码库。
- 用于控制 build 执行的选项:
--[no]experimental_inprocess_symlink_creation
默认值:“false”-
是否通过直接文件系统调用创建符号链接树
标记:loading_and_analysis
、execution
、experimental
--[no]experimental_remotable_source_manifests
默认值:“false”-
是否将来源清单操作设为可远程执行
标记:loading_and_analysis
、execution
、experimental
--[no]experimental_split_coverage_postprocessing
默认值:“false”-
如果为 true,则 Bazel 会在新 spawn 中为测试运行覆盖率后处理。
代码:execution
--[no]experimental_strict_fileset_output
默认值:“false”-
如果启用此选项,文件集将将所有输出工件视为常规文件。它们不会遍历目录,也不会对符号链接敏感。
代码:execution
--modify_execution_info=<regex=[+-]key,regex=[+-]key,...>
默认值:“”-
根据操作助记符,在操作的执行信息中添加或移除键。仅适用于支持执行信息的操作。许多常见操作都支持执行信息,例如 Genrule、CppCompile、Javac、StarlarkAction、TestRunner。指定多个值时,顺序很重要,因为许多正则表达式都可能适用于同一助记符。
语法:“regex=[+-]key,regex=[+-]key,...”
示例:'.*=+x,.*=-y,.*=+z' 会将“x”和“z”添加到所有操作的执行信息中,并从中移除“y”。
“Genrule=+requires-x”会将“requires-x”添加到所有 Genrule 操作的执行信息中。
'(?!Genrule).*=-requires-x' 会从所有非 Genrule 操作的执行信息中移除“requires-x”。
代码:execution
、affects_outputs
、loading_and_analysis
--persistent_android_dex_desugar
-
使用 worker 启用永久性 Android dex 和脱糖操作。
展开为:
--strategy=Desugar=worker
--strategy=DexBuilder=worker
代码:host_machine_resource_optimizations
、execution
--persistent_android_resource_processor
-
使用工作器启用永久性 Android 资源处理器。
展开为:
--internal_persistent_busybox_tools
--strategy=AaptPackage=worker
--strategy=AndroidResourceParser=worker
--strategy=AndroidResourceValidator=worker
--strategy=AndroidResourceCompiler=worker
--strategy=RClassGenerator=worker
--strategy=AndroidResourceLink=worker
--strategy=AndroidAapt2=worker
--strategy=AndroidAssetMerger=worker
--strategy=AndroidResourceMerger=worker
--strategy=AndroidCompiledResourceMerger=worker
--strategy=ManifestMerger=worker
--strategy=AndroidManifestMerger=worker
--strategy=Aapt2Optimize=worker
--strategy=AARGenerator=worker
代码:host_machine_resource_optimizations
、execution
--persistent_multiplex_android_dex_desugar
-
使用工作器启用永久的多路复用 Android dex 和脱糖操作。
展开为:
--persistent_android_dex_desugar
--modify_execution_info=Desugar=+supports-multiplex-workers
--modify_execution_info=DexBuilder=+supports-multiplex-workers
代码:host_machine_resource_optimizations
、execution
--persistent_multiplex_android_resource_processor
-
使用工作器启用永久性多路复用 Android 资源处理器。
展开为:
--persistent_android_resource_processor
--modify_execution_info=AaptPackage=+supports-multiplex-workers
--modify_execution_info=AndroidResourceParser=+supports-multiplex-workers
--modify_execution_info=AndroidResourceValidator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceCompiler=+supports-multiplex-workers
--modify_execution_info=RClassGenerator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceLink=+supports-multiplex-workers
--modify_execution_info=AndroidAapt2=+supports-multiplex-workers
--modify_execution_info=AndroidAssetMerger=+supports-multiplex-workers
--modify_execution_info=AndroidResourceMerger=+supports-multiplex-workers
--modify_execution_info=AndroidCompiledResourceMerger=+supports-multiplex-workers
--modify_execution_info=ManifestMerger=+supports-multiplex-workers
--modify_execution_info=AndroidManifestMerger=+supports-multiplex-workers
--modify_execution_info=Aapt2Optimize=+supports-multiplex-workers
--modify_execution_info=AARGenerator=+supports-multiplex-workers
代码:host_machine_resource_optimizations
、execution
--persistent_multiplex_android_tools
-
启用持久性和多路复用 Android 工具(dex 编译、脱糖、资源处理)。
展开为:
--persistent_multiplex_android_resource_processor
--persistent_multiplex_android_dex_desugar
代码:host_machine_resource_optimizations
、execution
- 用于配置用于执行操作的工具链的选项:
--android_compiler=<a string>
默认:请参阅说明-
Android 目标编译器。
代码:affects_outputs
、loading_and_analysis
、loses_incremental_state
--android_crosstool_top=<a build target label>
默认值:“//external:android/crosstool”-
用于 Android build 的 C++ 编译器的位置。
代码:affects_outputs
、changes_inputs
、loading_and_analysis
、loses_incremental_state
--android_grte_top=<a label>
默认:请参阅说明-
Android 目标 grte_top。
代码:changes_inputs
、loading_and_analysis
、loses_incremental_state
--android_manifest_merger=<legacy, android or force_android>
默认值:“android”-
选择要用于 android_binary 规则的清单合并工具。用于帮助从旧版合并工具过渡到 Android 清单合并工具的标志。
代码:affects_outputs
、loading_and_analysis
、loses_incremental_state
--android_platforms=<a build target label>
默认值:“”-
设置 android_binary 目标使用的平台。如果指定了多个平台,则二进制文件是 fat APK,其中包含每个指定目标平台的原生二进制文件。
代码:changes_inputs
、loading_and_analysis
、loses_incremental_state
--android_sdk=<a build target label>
默认值:“@bazel_tools//tools/android:sdk”-
指定用于构建 Android 应用的 Android SDK/平台。
代码:changes_inputs
、loading_and_analysis
、loses_incremental_state
--apple_compiler=<a string>
默认:请参阅说明-
Apple 目标编译器。非常适合选择工具链的变体(例如 xcode-beta)。
代码:affects_outputs
、loading_and_analysis
、loses_incremental_state
--apple_crosstool_top=<a build target label>
默认值:"@bazel_tools//tools/cpp:toolchain"-
要在 Apple 和 Objc 规则及其依赖项中使用的交叉工具软件包的标签。
代码:loses_incremental_state
、changes_inputs
--apple_grte_top=<a build target label>
默认:请参阅说明-
Apple 目标平台 grte_top。
代码:changes_inputs
、loading_and_analysis
、loses_incremental_state
--cc_output_directory_tag=<a string>
默认值:“”-
指定要添加到配置目录的后缀。
代码:affects_outputs
、explicit_in_output_path
--compiler=<a string>
默认:请参阅说明-
用于编译目标的 C++ 编译器。
代码:loading_and_analysis
、execution
--coverage_output_generator=<a build target label>
默认值:“@bazel_tools//tools/test:lcov_merger”-
用于对原始覆盖率报告进行后处理的二进制文件的位置。此文件分组目前必须包含单个文件(二进制文件)。默认为“//tools/test:lcov_merger”。
代码:changes_inputs
、affects_outputs
、loading_and_analysis
--coverage_report_generator=<a build target label>
默认值:“@bazel_tools//tools/test:coverage_report_generator”-
用于生成覆盖率报告的二进制文件的位置。此文件分组目前必须包含单个文件(二进制文件)。默认为“//tools/test:coverage_report_generator”。
代码:changes_inputs
、affects_outputs
、loading_and_analysis
--coverage_support=<a build target label>
默认值:“@bazel_tools//tools/test:coverage_support”-
收集代码覆盖率的每个测试操作的输入所需的支持文件的位置。默认为“//tools/test:coverage_support”。
代码:changes_inputs
、affects_outputs
、loading_and_analysis
--crosstool_top=<a build target label>
默认值:"@bazel_tools//tools/cpp:toolchain"-
要用于编译 C++ 代码的跨平台工具包的标签。
代码:loading_and_analysis
、changes_inputs
、affects_outputs
--custom_malloc=<a build target label>
默认:请参阅说明-
指定自定义 malloc 实现。此设置会替换 build 规则中的 malloc 属性。
代码:changes_inputs
、affects_outputs
--experimental_add_exec_constraints_to_targets=<a '<RegexFilter>=<label1>[,<label2>,...]' assignment>
累计多次使用-
以英文逗号分隔的正则表达式列表,每个正则表达式可选择附加 -(负表达式)前缀,并将 (=) 分配给以英文逗号分隔的约束条件值目标列表。如果目标与任何否定表达式都不匹配,但与至少一个肯定表达式匹配,则其工具链解析将像声明限制值为执行限制一样执行。示例://demo,-test=@platforms//cpus:x86_64 会将“x86_64”添加到 //demo 下的所有目标(名称包含“test”的目标除外)。
代码:loading_and_analysis
--[no]experimental_enable_objc_cc_deps
默认值:“true”- 允许 objc_* 规则依赖于 cc_library,并导致在 --ios_multi_cpu 中的任何值为“ios_<--ios_cpu>”时,将 --cpu 设置为“ios_<--ios_cpu>”来构建任何 objc 依赖项。
代码:loading_and_analysis
、incompatible_change
--[no]experimental_include_xcode_execution_requirements
默认值:“false”-
如果设置,则为每个 Xcode 操作添加“requires-xcode:{version}”执行要求。如果 xcode 版本使用连字符标签,请还添加“requires-xcode-label:{version_label}”执行要求。
代码:loses_incremental_state
、loading_and_analysis
、execution
--[no]experimental_prefer_mutual_xcode
默认值:“true”-
如果为 true,则使用本地和远程都提供的最新 Xcode。如果为 false,或者没有可供共用的版本,则使用通过 xcode-select 选择的本地 Xcode 版本。
代码:loses_incremental_state
--extra_execution_platforms=<comma-separated list of options>
累计多次使用-
可用作执行平台来运行操作的平台。平台可以通过确切目标或目标模式进行指定。这些平台会优先于通过 register_execution_platforms() 在 WORKSPACE 文件中声明的平台得到考虑。
代码段:execution
--extra_toolchains=<comma-separated list of options>
累计多次使用-
在工具链解析期间要考虑的工具链规则。工具链可以按确切目标指定,也可以作为目标模式指定。系统会先考虑这些工具链,然后再考虑通过 register_toolchains() 在 WORKSPACE 文件中声明的工具链。
代码段:affects_outputs
、changes_inputs
、loading_and_analysis
--grte_top=<a label>
默认:请参阅说明-
一个已签入的 libc 库的标签。默认值由交叉工具链选择,您几乎不需要替换它。
代码:action_command_lines
、affects_outputs
--host_compiler=<a string>
默认:请参阅说明-
用于主机编译的 C++ 编译器。如果未设置 --host_crosstool_top,系统会忽略它。
代码:loading_and_analysis
、execution
--host_crosstool_top=<a build target label>
默认:请参阅说明-
默认情况下,--crosstool_top 和 --compiler 选项也用于主机配置。如果提供了此标志,Bazel 会为给定的 crosstool_top 使用默认的 libc 和编译器。
代码:loading_and_analysis
、changes_inputs
、affects_outputs
--host_grte_top=<a label>
默认:请参阅说明-
如果指定,此设置将替换主机配置的 libc 顶级目录 (--grte_top)。
代码:action_command_lines
、affects_outputs
--host_platform=<a build target label>
默认值:“”-
描述主机系统的平台规则的标签。
代码:affects_outputs
、changes_inputs
、loading_and_analysis
--[no]incompatible_disable_expand_if_all_available_in_flag_set
默认值:“true”-
如果为 true,则 Bazel 不允许在 flag_sets 中指定 expand_if_all_available(如需了解迁移说明,请参阅 https://github.com/bazelbuild/bazel/issues/7008)。
代码:loading_and_analysis
、incompatible_change
--[no]incompatible_dont_enable_host_nonhost_crosstool_features
默认值:“true”-
如果为 true,Bazel 将不会在 c++ 工具链中启用“主机”和“非主机”功能(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7407)。
代码:loading_and_analysis
、incompatible_change
--[no]incompatible_enable_android_toolchain_resolution
默认值:“false”-
使用工具链解析为 Android 规则选择 Android SDK(Starlark 和原生)
代码段:loading_and_analysis
、incompatible_change
--[no]incompatible_enable_apple_toolchain_resolution
默认值:“false”-
使用工具链解析为 Apple 规则选择 Apple SDK(Starlark 和原生)
代码段:loading_and_analysis
、incompatible_change
--[no]incompatible_make_thinlto_command_lines_standalone
默认值:“true”-
如果为 true,则 Bazel 不会将 C++ 链接操作命令行重复用于 lto 编制索引命令行(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/6791)。
代码:loading_and_analysis
、incompatible_change
--[no]incompatible_remove_cpu_and_compiler_attributes_from_cc_toolchain
默认值:“true”-
如果为 true,则在设置 cc_toolchain.cpu 和 cc_toolchain.compiler 属性时,Bazel 会发出警告(如需了解迁移说明,请参阅 https://github.com/bazelbuild/bazel/issues/7075)。
代码:loading_and_analysis
、incompatible_change
--[no]incompatible_remove_legacy_whole_archive
默认值:“true”-
如果为 true,则 Bazel 不会默认将库依赖项作为整个归档文件进行关联(如需了解迁移说明,请参阅 https://github.com/bazelbuild/bazel/issues/7362)。
代码:loading_and_analysis
、incompatible_change
--[no]incompatible_require_ctx_in_configure_features
默认值:“true”-
如果为 true,则 Bazel 会要求在 cc_common.configure_features 中添加“ctx”参数(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7793)。
代码:loading_and_analysis
、incompatible_change
-
如果工具链支持,请使用接口共享对象。目前,所有 ELF 工具链都支持此设置。
代码:loading_and_analysis
、affects_outputs
、affects_outputs
--ios_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认:请参阅说明-
指定用于构建 iOS 应用的 iOS SDK 版本。如果未指定,则使用“xcode_version”中的默认 iOS SDK 版本。
代码:loses_incremental_state
--macos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认:请参阅说明-
指定用于构建 macOS 应用的 macOS SDK 版本。如果未指定,则使用“xcode_version”中的默认 macOS SDK 版本。
代码:loses_incremental_state
--minimum_os_version=<a string>
默认:请参阅说明-
编译目标的最低操作系统版本。
代码:loading_and_analysis
、affects_outputs
--platform_mappings=<a relative path>
默认值:“”-
映射文件的位置,该文件描述了在未设置任何平台时应使用哪个平台,或者在平台已存在时应设置哪些标志。必须相对于主工作区根目录。默认为“platform_mappings”(位于工作区根目录下的文件)。
代码:affects_outputs
、changes_inputs
、loading_and_analysis
--platforms=<a build target label>
默认值:“”-
描述当前命令的目标平台的平台规则的标签。
代码:affects_outputs
、changes_inputs
、loading_and_analysis
--python2_path=<a string>
默认:请参阅说明-
已废弃,无操作。通过 `--incompatible_use_python_toolchains` 停用。
标记:no_op
、deprecated
--python3_path=<a string>
默认:请参阅说明-
已废弃,无操作。通过 `--incompatible_use_python_toolchains` 停用。
标记:no_op
、deprecated
--python_path=<a string>
默认:请参阅说明-
用于在目标平台上运行 Python 目标的 Python 解释器的绝对路径。已废弃;已通过 --incompatible_use_python_toolchains 停用。
代码:loading_and_analysis
、affects_outputs
--python_top=<a build target label>
默认:请参阅说明-
py_runtime 的标签,表示用于在目标平台上运行 Python 目标的调用 Python 解释器。已废弃;已通过 --incompatible_use_python_toolchains 停用。
代码:loading_and_analysis
、affects_outputs
--target_platform_fallback=<a build target label>
默认值:“@local_config_platform//:host”-
平台规则的标签。如果未设置目标平台,并且没有平台映射与当前的一组标志匹配,则应使用此平台规则。
代码:affects_outputs
、changes_inputs
、loading_and_analysis
--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_state
、loading_and_analysis
- 用于控制命令输出的选项:
--[no]apple_enable_auto_dsym_dbg
默认值:“false”-
是否强制为 dbg build 生成调试符号 (.dSYM) 文件。
代码:affects_outputs
、action_command_lines
--[no]apple_generate_dsym
默认值:“false”-
是否生成调试符号 (.dSYM) 文件。
代码:affects_outputs
、action_command_lines
--[no]build_runfile_links
默认值:“true”-
如果为 true,则为所有目标构建 runfile 符号链接森林。如果为 false,则尽可能仅写入清单。
代码:affects_outputs
--[no]build_runfile_manifests
默认值:“true”-
如果为 true,则为所有目标写入 runfile 清单。如果为 false,请省略。如果为 false,本地测试将无法运行。
代码:affects_outputs
--[no]build_test_dwp
默认值:“false”-
如果启用此选项,则在使用 fission 静态构建 C++ 测试时,系统还会自动构建测试二进制文件的 .dwp 文件。
代码:loading_and_analysis
、affects_outputs
--cc_proto_library_header_suffixes=<comma-separated list of options>
默认值:“.pb.h”-
设置 cc_proto_library 创建的头文件的前缀。
代码:affects_outputs
、loading_and_analysis
--cc_proto_library_source_suffixes=<comma-separated list of options>
默认值:“.pb.cc”-
设置 cc_proto_library 创建的源文件的前缀。
代码:affects_outputs
、loading_and_analysis
--[no]experimental_proto_descriptor_sets_include_source_info
默认值:“false”-
在 proto_library 中针对备选 Java API 版本运行额外操作。
代码:affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_proto_extra_actions
默认值:“false”-
在 proto_library 中针对备选 Java API 版本运行额外操作。
代码:affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_save_feature_state
默认值:“false”-
将启用和请求的功能的状态保存为编译输出。
代码:affects_outputs
、experimental
--fission=<a set of compilation modes>
默认值:“no”-
指定哪些编译模式会针对 C++ 编译和链接使用 fission。可以是 {'fastbuild', 'dbg', 'opt'} 的任意组合,也可以是特殊值“yes”(启用所有模式)和“no”(停用所有模式)。
代码:loading_and_analysis
、action_command_lines
、affects_outputs
--[no]incompatible_always_include_files_in_data
默认值:“true”-
如果为 true,原生规则会将数据依赖项的 <code>DefaultInfo.files</code> 添加到其 runfile,这与 Starlark 规则的建议行为一致 (https://bazel.build/extending/rules#runfiles_features_to_avoid)。
代码:affects_outputs
、incompatible_change
--[no]legacy_external_runfiles
默认值:“true”-
如果为 true,则在 .runfiles/wsname/external/repo 下(以及 .runfiles/repo 下)为外部代码库构建 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_outputs
、loading_and_analysis
、loses_incremental_state
--[no]android_databinding_use_androidx
默认值:“false”-
生成与 AndroidX 兼容的数据绑定文件。此属性仅适用于数据绑定 v2。
代码:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]android_databinding_use_v3_4_args
默认值:“false”-
使用带有 3.4.0 参数的 Android DataBinding v2
代码段:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--android_dynamic_mode=<off, default or fully>
默认值:“off”-
确定当 cc_binary 未明确创建共享库时,Android 规则的 C++ 依赖项是否会动态链接。“default”表示 bazel 将选择是否动态链接。“完全”表示所有库都将动态关联。“off”表示所有库都将以完全静态模式关联。
代码:affects_outputs
、loading_and_analysis
--android_manifest_merger_order=<alphabetical, alphabetical_by_configuration or dependency>
默认值:“alphabetical”-
设置传递给 Android 二进制文件的清单的合并顺序。ALPHABETICAL 表示清单按相对于 execroot 的路径排序。ALPHABETICAL_BY_CONFIGURATION 表示清单会按相对于输出目录中配置目录的路径进行排序。DEPENDENCY 表示清单按顺序排列,每个库的清单都位于其依赖项的清单之前。
代码:action_command_lines
、execution
--[no]android_resource_shrinking
默认值:“false”-
为使用 ProGuard 的 android_binary APK 启用资源缩减。
代码:affects_outputs
、loading_and_analysis
--apple_bitcode=<'mode' or 'platform=mode', where 'mode' is none, embedded_markers or embedded, and 'platform' is ios, watchos, tvos, macos or catalyst>
累计多次使用-
为定位到设备架构的编译步骤指定 Apple 位码模式。值采用“[platform=]mode”的格式,其中平台(必须为“ios”“macos”“tvos”或“watchos”)为可选项。如果提供,则位码模式将专门应用于该平台;如果省略,则应用于所有平台。模式必须为“none”“embedded_markers”或“embedded”。此选项可以多次提供。
代码:loses_incremental_state
--[no]build_python_zip
默认值:“auto”-
构建 Python 可执行 ZIP 文件;在 Windows 上处于开启状态,在其他平台上处于关闭状态
代码:affects_outputs
--catalyst_cpus=<comma-separated list of options>
累计多次使用-
要为其构建 Apple Catalyst 二进制文件的架构的逗号分隔列表。
代码:loses_incremental_state
、loading_and_analysis
--[no]collect_code_coverage
默认值:“false”-
如果指定,Bazel 将插桩代码(尽可能使用离线插桩),并在测试期间收集覆盖率信息。只有与 --instrumentation_filter 匹配的目标会受到影响。通常,不应直接指定此选项,而应改用“bazel coverage”命令。
代码:affects_outputs
--compilation_mode=<fastbuild, dbg or opt>
[-c
] 默认:“fastbuild”-
指定二进制文件的构建模式。值:“fastbuild”“dbg”“opt”。
代码:affects_outputs
、action_command_lines
、explicit_in_output_path
--conlyopt=<a string>
累计多次使用-
在编译 C 源文件时传递给 gcc 的额外选项。
代码:action_command_lines
、affects_outputs
--copt=<a string>
累计多次使用-
要传递给 gcc 的其他选项。
代码:action_command_lines
、affects_outputs
--cpu=<a string>
默认值:“”-
目标 CPU。
代码:changes_inputs
、affects_outputs
、explicit_in_output_path
--cs_fdo_absolute_path=<a string>
默认:请参阅说明-
使用 CSFDO 配置文件信息优化编译。指定包含配置文件(原始或编入索引的 LLVM 配置文件)的 ZIP 文件的绝对路径名称。
代码:affects_outputs
--cs_fdo_instrument=<a string>
默认:请参阅说明-
使用情境感知 FDO 插桩生成二进制文件。对于 Clang/LLVM 编译器,它还接受在运行时将原始配置文件转储到的目录名称。
代码:affects_outputs
--cs_fdo_profile=<a build target label>
默认:请参阅说明-
cs_fdo_profile,表示要用于优化的上下文感知型配置文件。
代码:affects_outputs
--cxxopt=<a string>
累计多次使用-
在编译 C++ 源文件时传递给 gcc 的其他选项。
代码:action_command_lines
、affects_outputs
--define=<a 'name=value' assignment>
累计多次使用- 每个 --define 选项都指定了 build 变量的赋值。
代码:changes_inputs
、affects_outputs
--dynamic_mode=<off, default or fully>
默认值:“default”-
确定是否将动态链接 C++ 二进制文件。“default”表示 Bazel 将选择是否动态链接。“完全”表示所有库都将动态关联。“off”表示所有库都将以完全静态模式关联。
代码:loading_and_analysis
、affects_outputs
--[no]enable_fdo_profile_absolute_path
默认值:“true”-
如果设置,使用 fdo_absolute_profile_path 将会引发错误。
代码:affects_outputs
--[no]enable_runfiles
默认值:“auto”-
启用 runfiles 符号链接树;默认情况下,在 Windows 和其他平台上处于关闭状态。
代码:affects_outputs
--experimental_action_listener=<a build target label>
累计多次使用- 已废弃,取而代之的是 aspect。使用 action_listener 将 extra_action 附加到现有 build 操作。
代码:execution
、experimental
--[no]experimental_android_compress_java_resources
默认值:“false”-
压缩 APK 中的 Java 资源
代码段:affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_android_databinding_v2
默认值:“false”-
使用 Android DataBinding v2
代码段:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]experimental_android_resource_shrinking
默认值:“false”-
为使用 ProGuard 的 android_binary APK 启用资源缩减。
代码:affects_outputs
、loading_and_analysis
--[no]experimental_android_rewrite_dexes_with_rex
默认值:“false”-
使用 rex 工具重写 dex 文件
代码段:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--experimental_objc_fastbuild_options=<comma-separated list of options>
默认值:“-O0,-DDEBUG=1”-
将这些字符串用作 objc fastbuild 编译器选项。
代码:action_command_lines
--[no]experimental_omitfp
默认值:“false”-
如果为 true,则使用 libunwind 进行堆栈展开,并使用 -fomit-frame-pointer 和 -fasynchronous-unwind-tables 进行编译。
代码:action_command_lines
、affects_outputs
、experimental
--[no]experimental_platform_in_output_dir
默认值:“false”-
如果为 true,则输出目录名称中使用目标平台,而不是 CPU。
代码:affects_outputs
、experimental
--[no]experimental_use_llvm_covmap
默认值:“false”-
如果指定,在启用 collect_code_coverage 时,Bazel 将生成 llvm-cov 覆盖率映射信息,而不是 gcov。
代码:changes_inputs
、affects_outputs
、loading_and_analysis
、experimental
--fat_apk_cpu=<comma-separated list of options>
默认值:“armeabi-v7a”-
设置此选项可启用胖 APK,其中包含适用于所有指定目标架构的原生二进制文件,例如--fat_apk_cpu=x86,armeabi-v7a. 如果指定此标志,则系统会忽略 android_binary 规则的依赖项的 --android_cpu。
代码:affects_outputs
、loading_and_analysis
、loses_incremental_state
--[no]fat_apk_hwasan
默认值:“false”-
是否创建 HWASAN 分块。
代码:affects_outputs
、loading_and_analysis
、loses_incremental_state
--fdo_instrument=<a string>
默认:请参阅说明-
使用 FDO 插桩生成二进制文件。对于 Clang/LLVM 编译器,它还接受在运行时将原始配置文件转储到的目录名称。
代码:affects_outputs
--fdo_optimize=<a string>
默认:请参阅说明-
使用 FDO 配置文件信息优化编译。指定包含 .gcda 文件树、包含自动配置文件的 afdo 文件或 LLVM 配置文件的 ZIP 文件的名称。此标志还接受指定为标签的文件(例如 `//foo/bar:file.afdo` - 您可能需要向相应的软件包添加 `exports_files` 指令),以及指向 `fdo_profile` 目标的标签。此标志将被 `fdo_profile` 规则取代。
代码:affects_outputs
--fdo_prefetch_hints=<a build target label>
默认:请参阅说明-
使用缓存预取提示。
代码:affects_outputs
--fdo_profile=<a build target label>
默认:请参阅说明-
表示要用于优化的配置文件的 fdo_profile。
代码:affects_outputs
--features=<a string>
累计多次使用-
默认情况下,系统会为所有软件包启用或停用指定的功能。指定 -<feature> 会在全球范围内停用该功能。否定地图项始终会覆盖肯定地图项。此标志用于在不发布 Bazel 版本的情况下发布默认功能更改。
代码:changes_inputs
、affects_outputs
--[no]force_pic
默认值:“false”-
如果启用,所有 C++ 编译都会生成位置无关代码(“-fPIC”),链接会优先使用 PIC 预构建库而非非 PIC 库,并且链接会生成位置无关可执行文件(“-pie”)。
代码:loading_and_analysis
、affects_outputs
--host_action_env=<a 'name=value' assignment with an optional value part>
累计多次使用-
指定具有主机或执行配置的操作可用的一组环境变量。变量可以按名称指定,在这种情况下,值将从调用环境中获取;也可以通过名称=值对指定,这种情况下,值的设置不受调用环境的影响。此选项可多次使用;对于为同一变量指定的选项,最新的选项会胜出,不同变量的选项会累加。
代码:action_command_lines
--host_compilation_mode=<fastbuild, dbg or opt>
默认值:“opt”-
指定构建期间使用的工具将采用的模式。值:“fastbuild”“dbg”“opt”。
代码:affects_outputs
、action_command_lines
--host_conlyopt=<a string>
累计多次使用-
在为宿主工具编译 C 源文件时传递给 gcc 的额外选项。
代码:action_command_lines
、affects_outputs
--host_copt=<a string>
累计多次使用-
要传递给 gcc 以供宿主工具使用的其他选项。
代码:action_command_lines
、affects_outputs
--host_cpu=<a string>
默认值:“”-
主机 CPU。
代码:changes_inputs
、affects_outputs
--host_cxxopt=<a string>
累计多次使用-
要传递给 gcc 以供主机工具使用的其他选项。
代码:action_command_lines
、affects_outputs
--host_force_python=<PY2 or PY3>
默认:请参阅说明-
替换主机配置的 Python 版本。可以是“PY2”或“PY3”。
代码:loading_and_analysis
、affects_outputs
--host_linkopt=<a string>
累计多次使用-
在关联主机工具时传递给 gcc 的其他选项。
代码:action_command_lines
、affects_outputs
--host_macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认:请参阅说明-
主机目标的最低兼容 macOS 版本。如果未指定,则使用“macos_sdk_version”。
代码:loses_incremental_state
--host_per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options>
累计多次使用-
在主机或执行配置中编译特定文件时,可选择性地传递给 C/C++ 编译器的其他选项。此选项可以多次传递。语法:regex_filter@option_1,option_2,...,option_n。其中,regex_filter 表示包含和排除正则表达式模式的列表(另请参阅 --instrumentation_filter)。option_1 到 option_n 表示任意命令行选项。如果选项包含英文逗号,则必须用反斜杠括起来。选项可以包含 @。只有第一个 @ 用于拆分字符串。示例:--host_per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 会将 -O0 命令行选项添加到 //foo/ 中所有 cc 文件(除了 bar.cc)的 gcc 命令行。
代码:action_command_lines
、affects_outputs
--host_swiftcopt=<a string>
累计多次使用-
可传递给 swiftc 以供宿主工具使用的其他选项。
代码:action_command_lines
、affects_outputs
--[no]incompatible_avoid_conflict_dlls
默认值:“true”-
如果启用此功能,Windows 上由 cc_library 生成的所有 C++ 动态链接库 (DLL) 都将重命名为 name_{hash}.dll,其中 hash 是根据 RepositoryName 和 DLL 的软件包路径计算得出的。如果有一个软件包依赖于多个同名 cc_library(例如 //foo/bar1:utils 和 //foo/bar2:utils),此选项非常有用。
代码:loading_and_analysis
、affects_outputs
、incompatible_change
--[no]incompatible_merge_genfiles_directory
默认值:“true”-
如果为 true,则 genfiles 目录会折叠到 bin 目录中。
代码:affects_outputs
、incompatible_change
--[no]incompatible_use_platforms_repo_for_constraints
默认值:“true”-
如果为 true,系统会移除 @bazel_tools 中的约束条件设置。
代码:affects_outputs
、incompatible_change
--[no]instrument_test_targets
默认值:“false”-
启用覆盖率时,指定是否考虑插桩测试规则。设置后,将检测 --instrumentation_filter 包含的测试规则。 否则,测试规则始终会从覆盖率插桩中排除。
代码:affects_outputs
--instrumentation_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths>
默认:“-/javatests[/:],-/test/java[/:]”-
启用覆盖范围后,只有名称包含在指定的基于正则表达式的过滤器中的规则才会被检测。 系统会排除带有“-”前缀的规则。请注意,除非启用 --instrument_test_targets,否则系统只会插桩非测试规则。
代码:affects_outputs
--ios_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认:请参阅说明-
目标模拟器和设备的最低兼容 iOS 版本。如果未指定,则使用“ios_sdk_version”。
代码:loses_incremental_state
--ios_multi_cpus=<comma-separated list of options>
累计多次使用-
用于构建 ios_application 的架构的逗号分隔列表。结果是一个包含所有指定架构的通用二进制文件。
代码:loses_incremental_state
、loading_and_analysis
--[no]legacy_whole_archive
默认值:“true”-
已废弃,已被 --incompatible_remove_legacy_whole_archive 取代(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7362)。启用后,对于 linkshared=True 且 linkopts 中包含 linkstatic=True 或“-static”的 cc_binary 规则,请使用 --whole-archive。这只是为了向后兼容。更好的替代方案是在需要时使用 alwayslink=1。
代码:action_command_lines
、affects_outputs
、deprecated
--linkopt=<a string>
累计多次使用-
在链接时传递给 gcc 的其他选项。
代码:action_command_lines
、affects_outputs
--ltobackendopt=<a string>
累计多次使用-
用于传递到 LTO 后端步骤的其他选项(在 --features=thin_lto 下)。
代码:action_command_lines
、affects_outputs
--ltoindexopt=<a string>
累计多次使用-
传递给 LTO 索引编制步骤的其他选项(在 --features=thin_lto 下)。
代码:action_command_lines
、affects_outputs
--macos_cpus=<comma-separated list of options>
累计多次使用-
要为其构建 Apple macOS 二进制文件的架构的逗号分隔列表。
代码:loses_incremental_state
、loading_and_analysis
--macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认:请参阅说明-
目标平台的最低兼容 macOS 版本。如果未指定,则使用“macos_sdk_version”。
代码:loses_incremental_state
--[no]objc_debug_with_GLIBCXX
默认值:“false”-
如果已设置且编译模式设置为“dbg”,请定义 GLIBCXX_DEBUG、GLIBCXX_DEBUG_PEDANTIC 和 GLIBCPP_CONCEPT_CHECKS。
代码:action_command_lines
--[no]objc_enable_binary_stripping
默认值:“false”-
确定是否对已链接的二进制文件执行符号和死代码剥离。如果同时指定此标志和 --compilation_mode=opt,系统将执行二进制剥离。
代码:action_command_lines
--objccopt=<a string>
累计多次使用-
在编译 Objective-C/C++ 源文件时传递给 gcc 的其他选项。
代码:action_command_lines
--per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options>
累计多次使用-
在编译特定文件时,有选择地传递给 gcc 的其他选项。此选项可以多次传递。语法:regex_filter@option_1,option_2,...,option_n。其中,regex_filter 表示包含和排除正则表达式模式的列表(另请参阅 --instrumentation_filter)。option_1 到 option_n 表示任意命令行选项。如果选项包含英文逗号,则必须用反斜杠括起来。选项可以包含 @。只有第一个 @ 用于拆分字符串。示例:--per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 会将 -O0 命令行选项添加到 //foo/ 中所有 cc 文件(除了 bar.cc)的 gcc 命令行。
代码:action_command_lines
、affects_outputs
--per_file_ltobackendopt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options>
累计多次使用-
在编译某些后端对象时,用于选择性传递给 LTO 后端的其他选项(在 --features=thin_lto 下)。此选项可以多次传递。语法:regex_filter@option_1,option_2,...,option_n。其中,regex_filter 表示包含和排除正则表达式模式的列表。option_1 到 option_n 表示任意命令行选项。如果选项包含英文逗号,则必须用反斜杠括起来。选项可以包含 @。只有第一个 @ 用于拆分字符串。示例:--per_file_ltobackendopt=//foo/.*\.o,-//foo/bar\.o@-O0 会将 -O0 命令行选项添加到 //foo/ 中所有 o 文件(bar.o 除外)的 LTO 后端命令行。
代码段:action_command_lines
、affects_outputs
--platform_suffix=<a string>
默认:请参阅说明-
指定要添加到配置目录的后缀。
代码:loses_incremental_state
、affects_outputs
、loading_and_analysis
--propeller_optimize=<a build target label>
默认:请参阅说明-
使用 Propeller 配置文件信息优化 build 目标。Propeller 配置文件必须至少包含以下两个文件之一:cc 配置文件和 ld 配置文件。此标志接受 build 标签,该标签必须引用螺旋桨配置文件输入文件。例如,定义标签的 BUILD 文件:a/b/BUILD:propeller_optimize( name = "propeller_profile", cc_profile = "propeller_cc_profile.txt", ld_profile = "propeller_ld_profile.txt",) 您可能需要向相应的软件包添加 exports_files 指令,以便 Bazel 能够看到这些文件。该选项的使用方式必须为:--propeller_optimize=//a/b:propeller_profile
代码:action_command_lines
、affects_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
-
如果为 true,则包含相同功能的原生库将在不同目标之间共享
代码:loading_and_analysis
、affects_outputs
--[no]stamp
默认值:“false”-
使用日期、用户名、主机名、工作区信息等对二进制文件进行标记。
标记:affects_outputs
--strip=<always, sometimes or never>
默认值:“有时”-
指定是否要剥离二进制文件和共享库(使用“-Wl,--strip-debug”)。“sometimes”的默认值表示仅当 --compilation_mode=fastbuild 时才进行剥离。
代码:affects_outputs
--stripopt=<a string>
累计多次使用-
生成“<name>.stripped”二进制文件时要传递给 strip 的其他选项。
代码:action_command_lines
、affects_outputs
--swiftcopt=<a string>
累计多次使用-
要传递给 Swift 编译的其他选项。
代码:action_command_lines
--tvos_cpus=<comma-separated list of options>
累计多次使用-
要构建 Apple tvOS 二进制文件的架构的逗号分隔列表。
代码:loses_incremental_state
、loading_and_analysis
--tvos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认:请参阅说明-
目标模拟器和设备的最低兼容 tvOS 版本。如果未指定,则使用“tvos_sdk_version”。
代码:loses_incremental_state
--watchos_cpus=<comma-separated list of options>
累计多次使用-
要构建 Apple watchOS 二进制文件的架构的逗号分隔列表。
代码:loses_incremental_state
、loading_and_analysis
--watchos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认:请参阅说明-
目标模拟器和设备的最低兼容 watchOS 版本。如果未指定,则使用“watchos_sdk_version”。
代码:loses_incremental_state
--xbinary_fdo=<a build target label>
默认:请参阅说明-
使用 XbinaryFDO 配置文件信息优化编译。指定默认交叉二进制配置文件的名称。当此选项与 --fdo_instrument/--fdo_optimize/--fdo_profile 一起使用时,这些选项始终会优先,就像从未指定 xbinary_fdo 一样。
代码:affects_outputs
- 影响 Bazel 强制执行有效 build 输入(规则定义、标志组合等)的严格程度的选项:
--auto_cpu_environment_group=<a build target label>
默认值:“”-
声明要用于自动将 cpu 值映射到 target_environment 值的 environment_group。
代码:changes_inputs
、loading_and_analysis
、experimental
--[no]check_licenses
默认值:“false”-
检查依赖项软件包强加的许可限制是否与正在构建的目标的发布模式冲突。默认情况下,系统不会检查许可。
代码:build_file_semantics
--[no]check_visibility
默认值:“true”-
如果停用,目标依赖项中的可见性错误会降级为警告。
代码:build_file_semantics
--[no]desugar_for_android
默认值:“true”-
在 dexing 之前是否要脱糖 Java 8 字节码。
代码:affects_outputs
、loading_and_analysis
、loses_incremental_state
--[no]desugar_java8_libs
默认值:“false”-
确定是否应在面向旧版设备的应用中添加受支持的 Java 8 库。
代码:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]enforce_constraints
默认值:“true”-
检查每个目标与哪些环境兼容,如果有任何目标的依赖项不支持相同的环境,则报告错误
代码:build_file_semantics
--[no]experimental_allow_android_library_deps_without_srcs
默认值:“false”- 标志,用于帮助从允许到禁止使用依赖项的无源代码 android_library 规则进行过渡。默认情况下,需要清理仓库才能推出此功能。
代码:eagerness_to_exit
、loading_and_analysis
--[no]experimental_check_desugar_deps
默认值:“true”-
确定是否在 Android 二进制级别仔细检查是否正确脱糖。
代码:eagerness_to_exit
、loading_and_analysis
、experimental
--experimental_import_deps_checking=<off, warning or error>
默认值:“OFF”-
启用后,检查 aar_import 的依赖项是否已完成。此强制执行可能会破坏 build,也可能只会导致警告。
代码:loading_and_analysis
--experimental_strict_java_deps=<off, warn, error, strict or default>
默认值:“default”-
如果为 true,则检查 Java 目标是否明确将所有直接使用的目标声明为依赖项。
代码:build_file_semantics
、eagerness_to_exit
--[no]incompatible_check_testonly_for_output_files
默认值:“false”-
如果启用,则通过查找生成规则的 testonly 来检查输出文件的先决条件目标的 testonly。这与可见性检查一致。
代码:build_file_semantics
、incompatible_change
--[no]incompatible_disable_native_android_rules
默认值:“false”-
如果启用,系统会停用直接使用原生 Android 规则的功能。请使用 https://github.com/bazelbuild/rules_android 中的 Starlark Android 规则
代码段:eagerness_to_exit
、incompatible_change
--[no]incompatible_disable_native_apple_binary_rule
默认值:“false”-
无操作。保留此处是为了向后兼容。
代码:eagerness_to_exit
、incompatible_change
--[no]incompatible_force_strict_header_check_from_starlark
默认值:“true”-
如果启用,请在 Starlark API 中设置严格的标头检查
标记:loading_and_analysis
、changes_inputs
、incompatible_change
--[no]incompatible_validate_top_level_header_inclusions
默认值:“true”-
如果为 true,Bazel 还会验证顶级目录头文件包含情况(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/10047)。
代码:loading_and_analysis
、incompatible_change
--[no]strict_filesets
默认值:“false”-
如果此选项处于启用状态,则系统会将跨越软件包边界的文件集报告为错误。停用 check_fileset_dependencies_recursively 后,此方法不起作用。
代码:build_file_semantics
、eagerness_to_exit
--strict_proto_deps=<off, warn, error, strict or default>
默认值:“error”-
除非设为 OFF,否则会检查 proto_library 目标是否明确将所有直接使用的目标声明为依赖项。
代码:build_file_semantics
、eagerness_to_exit
、incompatible_change
--strict_public_imports=<off, warn, error, strict or default>
默认值:“off”-
除非处于“OFF”状态,否则会检查 proto_library 目标是否明确将“import public”中使用的所有目标声明为导出。
代码:build_file_semantics
、eagerness_to_exit
、incompatible_change
--[no]strict_system_includes
默认值:“false”-
如果为 true,则还需要声明通过系统包含路径 (-isystem) 找到的头文件。
代码:loading_and_analysis
、eagerness_to_exit
--target_environment=<a build target label>
累计多次使用-
声明此 build 的目标环境。必须是指向“environment”规则的标签引用。如果指定了此属性,则所有顶级目标都必须与此环境兼容。
代码:changes_inputs
- 影响 build 签名输出的选项:
--apk_signing_method=<v1, v2, v1_v2 or v4>
默认值:“v1_v2”-
用于对 APK 进行签名的实现
代码段:action_command_lines
、affects_outputs
、loading_and_analysis
--[no]device_debug_entitlements
默认值:“true”-
如果已设置且编译模式不是“opt”,则 objc 应用在签名时会包含调试权限。
代码:changes_inputs
--ios_signing_cert_name=<a string>
默认:请参阅说明-
用于 iOS 签名的证书名称。如果未设置,则会回退为配置文件。可以是证书的钥匙串身份偏好设置,也可以是证书公用名的子字符串(根据 codesign 的手册页 [SIGNING IDENTITIES])。
标记:action_command_lines
- 此选项会影响 Starlark 语言的语义或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API。
--[no]incompatible_disallow_legacy_py_provider
默认值:“true”-
无操作,即将被移除。
标记:loading_and_analysis
、incompatible_change
- 用于控制测试环境或测试运行程序行为的选项:
--[no]allow_analysis_failures
默认值:“false”-
如果为 true,规则目标的分析失败会导致目标传播包含错误说明的 AnalysisFailureInfo 实例,而不是导致构建失败。
代码:loading_and_analysis
、experimental
--analysis_testing_deps_limit=<an integer>
默认值:“2000”-
通过具有 for_analysis_testing 配置转换的规则属性设置传递依赖项的数量上限。超出此限制将导致规则错误。
代码:loading_and_analysis
--[no]break_build_on_parallel_dex2oat_failure
默认值:“false”-
如果为 true,则 dex2oat 操作失败会导致 build 中断,而不是在测试运行时执行 dex2oat。
代码:loading_and_analysis
、experimental
--[no]experimental_android_use_parallel_dex2oat
默认值:“false”-
并行使用 dex2oat,可能会加快 android_test 的速度。
代码:loading_and_analysis
、host_machine_resource_optimizations
、experimental
--[no]ios_memleaks
默认值:“false”-
启用在 ios_test 目标中检查内存泄露。
代码:action_command_lines
--ios_simulator_device=<a string>
默认:请参阅说明-
在模拟器中运行 iOS 应用时要模拟的设备,例如“iPhone 6”。您可以在将要运行模拟器的机器上运行“xcrun simctl list devicetypes”以获取设备列表。
代码:test_runner
--ios_simulator_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认:请参阅说明-
在运行或测试时,要在模拟器上运行的 iOS 版本。如果 ios_test 规则中指定了目标设备,则系统会忽略此属性。
代码:test_runner
--runs_per_test=<a positive integer or test_regex@runs. This flag may be passed more than once>
累计多次使用- 指定运行每个测试的次数。如果其中任何一次尝试因任何原因而失败,则整个测试都将被视为失败。通常,指定的值只是一个整数。示例:--runs_per_test=3 将会运行所有测试 3 次。备选语法:regex_filter@runs_per_test。其中,runs_per_test 表示一个整数值,regex_filter 表示包含和排除正则表达式模式的列表(另请参阅 --instrumentation_filter)。示例:--runs_per_test=//foo/.*,-//foo/bar/.*@3 会运行 //foo/ 中的所有测试(foo/bar 下的测试除外)三次。此选项可以多次传递。最晚传递的匹配实参优先。如果没有任何匹配项,则仅运行一次测试。
--test_env=<a 'name=value' assignment with an optional value part>
累计多次使用-
指定要注入到测试运行程序环境中的其他环境变量。变量可以按名称指定(在这种情况下,其值将从 Bazel 客户端环境读取),也可以按名称-值对指定。您可以多次使用此选项来指定多个变量。仅供“bazel test”命令使用。
代码:test_runner
--test_timeout=<a single integer or comma-separated list of 4 integers>
默认值:“-1”- 替换测试超时的默认测试超时值(以秒为单位)。如果指定单个正整数值,则该值会替换所有类别。如果指定了 4 个以英文逗号分隔的整数,它们将替换短时、中等、长时和永久(按此顺序)的超时设置。无论采用哪种形式,值为 -1 都表示 Blaze 应针对该类别使用其默认超时设置。
--tvos_simulator_device=<a string>
默认:请参阅说明-
在模拟器中运行 tvOS 应用时要模拟的设备,例如“Apple TV 1080p”。您可以在将要运行模拟器的机器上运行“xcrun simctl list devicetypes”以获取设备列表。
代码:test_runner
--tvos_simulator_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认:请参阅说明-
运行或测试时要在模拟器上运行的 tvOS 版本。
代码:test_runner
--watchos_simulator_device=<a string>
默认:请参阅说明-
在模拟器中运行 watchOS 应用时要模拟的设备,例如“Apple Watch - 38 毫米”。您可以在将要运行模拟器的机器上运行“xcrun simctl list devicetypes”以获取设备列表。
代码:test_runner
--watchos_simulator_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认:请参阅说明-
运行或测试时要在模拟器上运行的 watchOS 版本。
代码:test_runner
--[no]zip_undeclared_test_outputs
默认值:“true”-
如果为 true,则未声明的测试输出将归档到 zip 文件中。
代码:test_runner
- 与查询输出和语义相关的选项:
--aspect_deps=<off, conservative or precise>
默认值:“保守”-
如何在输出格式为 {xml,proto,record} 之一时解析方面依赖项。“关闭”表示不解析任何方面依赖项;“保守”(默认)表示添加所有声明的方面依赖项,无论它们是否被赋予直接依赖项的规则类;“精确”表示仅添加可能处于活动状态的方面,具体取决于直接依赖项的规则类。请注意,精确模式需要加载其他软件包才能评估单个目标,因此速度比其他模式慢。另请注意,即使是精确模式也不完全精确:计算某个方面是否需要在分析阶段决定,而该阶段不会在“bazel query”期间运行。
代码:build_file_semantics
--[no]deduplicate_depsets
默认值:“true”-
在最终的 proto/textproto/json 输出中删除了 dep_set_of_files 的非叶子子项的重复项。这不会去除不共享直接父级的 depset。这不会影响操作的输入工件最终有效列表。
代码:terminal_output
--[no]graph:factored
默认值:“true”-
如果为 true,则会以“分解”形式发出图,即将拓扑等效的节点合并在一起,并串联其标签。此选项仅适用于 --output=graph。
代码:terminal_output
--graph:node_limit=<an integer>
默认值:“512”-
输出中图表节点的标签字符串的最大长度。较长的标签将被截断;-1 表示不截断。此选项仅适用于 --output=graph。
代码:terminal_output
--[no]implicit_deps
默认值:“true”-
如果启用,隐式依赖项将包含在查询操作的依赖图中。隐式依赖项是指未在 BUILD 文件中明确指定,但由 Bazel 添加的依赖项。对于 cquery,此选项用于控制过滤已解析的工具链。
代码:build_file_semantics
--[no]include_artifacts
默认值:“true”-
包含输出中的操作输入和输出的名称(可能很大)。
代码:terminal_output
--[no]include_aspects
默认值:“true”-
aquery、cquery:是否在输出中包含由方面生成的操作。query:无操作(始终遵循方面)。
代码:terminal_output
--[no]include_commandline
默认值:“true”-
包含输出中的操作命令行的相关内容(可能很大)。
代码:terminal_output
--[no]include_file_write_contents
默认值:“false”-
包含 FileWrite 和 SourceSymlinkManifest 操作的文件内容(可能很大)。
代码:terminal_output
--[no]include_param_files
默认值:“false”-
包含命令中使用的参数文件的内容(可能很大)。注意:启用此标志会自动启用 --include_commandline 标志。
代码:terminal_output
--[no]incompatible_display_source_file_location
默认值:“true”-
默认值为 true,用于显示源文件的目标。如果为 true,则在位置输出中显示源文件第 1 行的所在位置。此标志仅用于迁移目的。
代码:terminal_output
、incompatible_change
--[no]incompatible_package_group_includes_double_slash
默认值:“true”-
如果启用,则在输出 package_group 的 `packages` 属性时,不会省略开头的 `//`。
代码:terminal_output
、incompatible_change
--[no]infer_universe_scope
默认值:“false”- 如果已设置,并且未设置 --universe_scope,则 --universe_scope 的值将推断为查询表达式中的唯一目标模式列表。请注意,为使用全局范围函数(例如 `allrdeps`)的查询表达式推断出的 --universe_scope 值可能不是您想要的,因此只有在您知道自己在做什么的情况下,才应使用此选项。如需了解详情和示例,请参阅 https://bazel.build/query/language#sky-query。如果设置了 --universe_scope,则系统会忽略此选项的值。注意:此选项仅适用于“query”(即不适用于“cquery”)。
代码:loading_and_analysis
--[no]line_terminator_null
默认值:“false”-
确定每个格式是否以 \0(而非换行符)结尾。
代码:terminal_output
--[no]nodep_deps
默认值:“true”-
如果启用,查询操作所依赖的依赖项图中将包含“nodep”属性中的依赖项。“nodep”属性的一个常见示例是“visibility”。运行并解析 `info build-language` 的输出,了解 build 语言中的所有“nodep”属性。
代码:build_file_semantics
--output=<a string>
默认值:“text”-
aquery 结果应采用的输出格式。aquery 的允许值为:text、textproto、proto、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_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
--[no]relative_locations
默认值:“false”-
如果为 true,xml 和 proto 输出中的 BUILD 文件的位置将是相对位置。默认情况下,位置输出是绝对路径,并且在不同机器之间不会保持一致。您可以将此选项设置为 true,以便在不同机器上获得一致的结果。
代码:terminal_output
--[no]skyframe_state
默认值:“false”-
在不执行额外分析的情况下,从 Skyframe 转储当前的 Action Graph。注意:目前不支持使用 --skyframe_state 指定目标。此标志仅适用于 --output=proto 或 --output=textproto。
代码:terminal_output
--[no]tool_deps
默认值:“true”-
查询:如果停用,查询所依赖的“主机配置”或“执行”目标将不会包含在查询所操作的依赖项图中。“主机配置”依赖项边(例如,从任何“proto_library”规则到协议编译器的边)通常指向构建期间执行的工具,而不是同一“目标”程序的一部分。
Cquery:如果停用,则会滤除从发现此配置目标的顶级目标跨主机或执行转换的所有配置目标。也就是说,如果顶级目标位于目标配置中,则系统只会返回也位于目标配置中的已配置目标。如果顶级目标位于主机配置中,则系统只会返回主机配置的目标。此选项不会排除已解析的工具链。
代码:build_file_semantics
--universe_scope=<comma-separated list of options>
默认值:“”-
一组以英文逗号分隔的目标模式(加色和减色)。查询可以在由指定目标的传递闭包定义的宇宙中执行。此选项适用于 query 和 cquery 命令。对于 cquery,此选项的输入是所有答案的构建目标,因此此选项可能会影响配置和转换。如果未指定此选项,则系统会假定顶级目标是从查询表达式解析出来的目标。注意:对于 cquery,如果无法使用顶级选项构建从查询表达式解析的目标,则不指定此选项可能会导致构建中断。
代码段:loading_and_analysis
- 触发构建时间优化的选项:
--[no]collapse_duplicate_defines
默认值:“false”-
启用后,系统会在构建阶段提前移除多余的 --define。这样可以避免某些类型的等效 build 不必要地丢失分析缓存。
代码:loading_and_analysis
、loses_incremental_state
--[no]experimental_filter_library_jar_with_program_jar
默认值:“false”-
过滤 ProGuard ProgramJar,以移除 LibraryJar 中也存在的所有类。
代码:action_command_lines
--[no]experimental_inmemory_dotd_files
默认值:“true”-
如果启用,C++ .d 文件将直接从远程构建节点在内存中传递,而不是写入磁盘。
代码:loading_and_analysis
、execution
、affects_outputs
、experimental
--[no]experimental_inmemory_jdeps_files
默认值:“true”-
如果启用,从 Java 编译生成的依赖项 (.jdeps) 文件将直接从远程构建节点在内存中传递,而不是写入磁盘。
代码:loading_and_analysis
、execution
、affects_outputs
、experimental
--[no]experimental_objc_include_scanning
默认值:“false”-
是否要针对 Objective-C/C++ 执行包含扫描。
代码:loading_and_analysis
、execution
、changes_inputs
--[no]experimental_parse_headers_skipped_if_corresponding_srcs_found
默认值:“false”-
如果启用,当在同一目标中找到具有相同 basename 的源代码时,parse_headers 功能不会创建单独的头文件编译操作。
代码:loading_and_analysis
、affects_outputs
--[no]experimental_retain_test_configuration_across_testonly
默认值:“false”-
启用后,--trim_test_configuration 不会修剪标记为 testonly=1 的规则的测试配置。这是为了减少在非测试规则依赖于 cc_test 规则时出现的操作冲突问题。如果 --trim_test_configuration 为 false,则无效。
代码:loading_and_analysis
、loses_incremental_state
--[no]experimental_starlark_cc_import
默认值:“false”-
如果启用,则可以使用 Starlark 版本的 cc_import。
代码:loading_and_analysis
、experimental
--[no]experimental_unsupported_and_brittle_include_scanning
默认值:“false”-
确定是否通过解析输入文件中的 #include 行来缩小 C/C++ 编译的输入范围。这可以通过缩减编译输入树的大小来提高性能和增量性。不过,它也可能会破坏 build,因为包含扫描器未完全实现 C 预处理器语义。具体而言,它不理解动态 #include 指令,并会忽略预处理器条件逻辑。使用时需自行承担风险。与此举报相关的所有已提交问题都将关闭。
代码:loading_and_analysis
、execution
、changes_inputs
--[no]incremental_dexing
默认值:“true”- 会为每个 Jar 文件单独执行大部分 dex 处理工作。
代码:affects_outputs
、loading_and_analysis
、loses_incremental_state
--[no]objc_use_dotd_pruning
默认值:“true”-
如果设置,clang 发出的 .d 文件将用于修剪传入 objc 编译的输入集。
代码:changes_inputs
、loading_and_analysis
--[no]process_headers_in_dependencies
默认值:“false”-
构建目标 //a:a 时,处理 //a:a 依赖的所有目标中的头文件(如果为工具链启用了头文件处理)。
代码:execution
--[no]trim_test_configuration
默认值:“true”-
启用后,系统会在 build 的顶级下清除与测试相关的选项。当此标志处于启用状态时,测试无法构建为非测试规则的依赖项,但对测试相关选项所做的更改不会导致系统重新分析非测试规则。
代码:loading_and_analysis
、loses_incremental_state
--[no]use_singlejar_apkbuilder
默认值:“true”-
此选项已废弃。该参数现在已无效,很快就会被移除。
标记:loading_and_analysis
- 影响日志记录详细程度、格式或位置的选项:
--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”(默认值)时,只有当此标志设置为 true 时,才会被视为 false。请参阅 https://github.com/bazelbuild/bazel/issues/10076。
代码:affects_outputs
、incompatible_change
--[no]incompatible_py2_outputs_are_suffixed
默认值:“true”- 如果为 true,则在 Python 2 配置中构建的目标将显示在包含后缀“-py2”的输出根目录下,而针对 Python 3 构建的目标将显示在不含 Python 相关后缀的根目录下。这意味着 `bazel-bin` 便捷符号链接将指向 Python 3 目标,而不是 Python 2。如果您启用此选项,我们还建议您启用 `--incompatible_py3_is_default`。
代码段:affects_outputs
、incompatible_change
--[no]incompatible_py3_is_default
默认值:“true”-
如果为 true,则未设置 `python_version`(或 `default_python_version`)属性的 `py_binary` 和 `py_test` 目标将默认设为 PY3,而不是 PY2。如果您设置此标志,则建议您也设置 `--incompatible_py2_outputs_are_suffixed`。
代码:loading_and_analysis
、affects_outputs
、incompatible_change
--[no]incompatible_use_python_toolchains
默认值:“true”-
如果设置为 true,可执行的原生 Python 规则将使用 Python 工具链指定的 Python 运行时,而不是 --python_top 等旧版标志提供的运行时。
代码:loading_and_analysis
、incompatible_change
--python_version=<PY2 or PY3>
默认:请参阅说明-
Python 主要版本模式,即 `PY2` 或 `PY3`。请注意,此值会被 `py_binary` 和 `py_test` 目标替换(即使它们未明确指定版本),因此通常没有太多理由提供此标志。
代码:loading_and_analysis
、affects_outputs
、explicit_in_output_path
- 不属于其他类别的其他选项:
--[no]cache_test_results
[-t
] 默认值:“auto”- 如果设置为“auto”,则只有在以下情况下,Bazel 才会重新运行测试:(1) Bazel 检测到测试或其依赖项发生了变化,(2) 测试被标记为外部测试,(3) 使用 --runs_per_test 请求了多次测试运行,或(4) 测试之前失败。如果设为“yes”,则 Bazel 会缓存所有测试结果(标记为外部的测试除外)。如果设为“no”,则 Bazel 不会缓存任何测试结果。
--[no]experimental_cancel_concurrent_tests
默认值:“false”-
如果为 true,则 Blaze 会在首次成功运行时取消并发运行的测试。此选项仅与 --runs_per_test_detects_flakes 结合使用时才有用。
代码:affects_outputs
、loading_and_analysis
--[no]experimental_fetch_all_coverage_outputs
默认值:“false”-
如果为 true,则 Bazel 会在运行覆盖率期间提取每个测试的整个覆盖率数据目录。
代码:affects_outputs
、loading_and_analysis
--[no]experimental_generate_llvm_lcov
默认值:“false”-
如果为 true,则 clang 的覆盖率将生成 LCOV 报告。
代码:affects_outputs
、loading_and_analysis
--[no]experimental_j2objc_header_map
默认值:“true”- 确定是否应在 J2ObjC 转译期间并行生成 J2ObjC 头文件映射。
--[no]experimental_j2objc_shorter_header_path
默认值:“false”-
是否使用更短的头文件路径进行生成(使用“_ios”而非“_j2objc”)。
代码:affects_outputs
--experimental_java_classpath=<off, javabuilder or bazel>
默认值:“javabuilder”- 为 Java 编译启用缩减的类路径。
--[no]experimental_limit_android_lint_to_android_constrained_java
默认值:“false”-
将 --experimental_run_android_lint_on_java_rules 限制为仅适用于与 Android 兼容的库。
代码:affects_outputs
--[no]experimental_run_android_lint_on_java_rules
默认值:“false”-
是否验证 java_* 源代码。
代码:affects_outputs
--[no]explicit_java_test_deps
默认值:“false”- 在 java_test 中明确指定对 JUnit 或 Hamcrest 的依赖项,而不是意外从 TestRunner 的依赖项中获取。目前仅适用于 bazel。
--host_java_launcher=<a build target label>
默认:请参阅说明- 构建期间执行的工具使用的 Java 启动器。
--host_javacopt=<a string>
累计多次使用- 在构建构建期间执行的工具时传递给 javac 的其他选项。
--host_jvmopt=<a string>
累计多次使用- 在构建期间执行的工具的构建过程中传递给 Java VM 的其他选项。这些选项将添加到每个 java_binary 目标的虚拟机启动选项中。
--[no]incompatible_exclusive_test_sandboxed
默认值:“false”-
如果为 true,系统将使用沙盒化策略运行专属测试。添加了“local”标记,以强制在本地运行专属测试
代码:incompatible_change
--[no]incompatible_strict_action_env
默认值:“false”-
如果为 true,则 Bazel 会使用 PATH 为静态值的环境,并且不会继承 LD_LIBRARY_PATH。如果您想从客户端继承特定环境变量,请使用 --action_env=ENV_VARIABLE,但请注意,这样做可能会阻止使用共享缓存时跨用户缓存。
代码:loading_and_analysis
、incompatible_change
--j2objc_translation_flags=<comma-separated list of options>
累计多次使用- 要传递给 J2ObjC 工具的其他选项。
--java_debug
-
导致 Java 测试的 Java 虚拟机在开始测试之前等待来自符合 JDWP 规范的调试程序(例如 jdb)的连接。隐含 -test_output=streamed。
展开为:
--test_arg=--wrapper_script_flag=--debug
--test_output=streamed
--test_strategy=exclusive
--test_timeout=9999
--nocache_test_results
--[no]java_deps
默认值:“true”- 为每个 Java 目标生成依赖项信息(目前为编译时间类路径)。
--[no]java_header_compilation
默认值:“true”- 直接从源代码编译 ijar。
--java_language_version=<a string>
默认值:“8”- Java 语言版本
--java_launcher=<a build target label>
默认:请参阅说明- 构建 Java 二进制文件时要使用的 Java 启动器。如果此标志设置为空字符串,则系统会使用 JDK 启动器。“launcher”属性会替换此标志。
--java_runtime_version=<a string>
默认值:“local_jdk”- Java 运行时版本
--javacopt=<a string>
累计多次使用- 要传递给 javac 的其他选项。
--jvmopt=<a string>
累计多次使用- 要传递给 Java VM 的其他选项。这些选项将添加到每个 java_binary 目标的虚拟机启动选项中。
--legacy_main_dex_list_generator=<a build target label>
默认:请参阅说明- 指定用于在编译旧版 multidex 时生成必须位于主 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_outputs
、loading_and_analysis
--proto_toolchain_for_cc=<a build target label>
默认值:“@bazel_tools//tools/proto:cc_toolchain”-
proto_lang_toolchain() 的标签,用于说明如何编译 C++ protos
代码段:affects_outputs
、loading_and_analysis
--proto_toolchain_for_j2objc=<a build target label>
默认值:“@bazel_tools//tools/j2objc:j2objc_proto_toolchain”-
proto_lang_toolchain() 的标签,用于说明如何编译 j2objc protos
标记:affects_outputs
、loading_and_analysis
--proto_toolchain_for_java=<a build target label>
默认值:“@bazel_tools//tools/proto:java_toolchain”-
proto_lang_toolchain() 的标签,用于说明如何编译 Java proto
代码段:affects_outputs
、loading_and_analysis
--proto_toolchain_for_javalite=<a build target label>
默认值:“@bazel_tools//tools/proto:javalite_toolchain”-
proto_lang_toolchain() 的标签,用于说明如何编译 JavaLite protos
标记:affects_outputs
、loading_and_analysis
--protocopt=<a string>
累计多次使用-
要传递给 protobuf 编译器的其他选项。
代码:affects_outputs
--[no]runs_per_test_detects_flakes
默认值:“false”- 如果为 true,则至少有一个运行/尝试通过且至少有一个运行/尝试失败的任何分片都会获得 FLAKY 状态。
--shell_executable=<a path>
默认:请参阅说明-
要供 Bazel 使用的 shell 可执行文件的绝对路径。如果未设置此变量,但在首次调用 Bazel(启动 Bazel 服务器)时设置了 BAZEL_SH 环境变量,则 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 or disabled>
默认值:“explicit”- 指定测试分片策略:如果存在“shard_count”构建属性,则使用“explicit”;否则不使用分片。“disabled”(已停用),表示永不使用测试分片。
--tool_java_language_version=<a string>
默认值:“8”- 用于执行构建期间所需工具的 Java 语言版本
--tool_java_runtime_version=<a string>
默认值:“remotejdk_11”- 在构建期间用于执行工具的 Java 运行时版本
--[no]use_ijars
默认值:“true”- 如果启用此选项,Java 编译将使用接口 jar。这会加快增量编译速度,但错误消息可能会有所不同。
构建选项
- 显示在命令之前并由客户端解析的选项:
--distdir=<a path>
累计多次使用-
在访问网络下载归档文件之前,可搜索归档文件的其他位置。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_hardlinks
默认值:“false”-
如果设置了此选项,代码库缓存在命中缓存时会硬链接文件,而不是进行复制。这是为了节省磁盘空间。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_urls_as_default_canonical_id
默认值:“false”-
如果为 true,则使用从代码库下载网址派生的字符串作为 canonical_id(如果未指定)。这会导致网址发生变化,从而导致重新下载,即使缓存中包含具有相同哈希值的下载内容也是如此。这可用于验证网址更改不会导致缓存掩盖损坏的代码库。
代码:loading_and_analysis
、experimental
--[no]experimental_repository_disable_download
默认值:“false”-
如果设置,则不允许下载外部代码库。
代码:experimental
--experimental_repository_downloader_retries=<an integer>
默认值:“0”-
下载错误的重试尝试次数上限。如果设置为 0,则会停用重试。
代码:experimental
--experimental_scale_timeouts=<a double>
默认值:“1.0”-
将 Starlark 代码库规则中的所有超时时间乘以此系数。这样,外部代码库就可以在比规则作者预期更慢的机器上运行,而无需更改源代码
代码:bazel_internal_configuration
、experimental
--http_timeout_scaling=<a double>
默认值:“1.0”-
按给定系数缩放与 http 下载相关的所有超时时间
代码:bazel_internal_configuration
--repository_cache=<a path>
默认:请参阅说明-
指定在提取外部代码库期间获取的下载值的缓存位置。将空字符串作为参数会请求停用缓存。
代码:bazel_internal_configuration
- 用于控制 build 执行的选项:
--[no]check_up_to_date
默认值:“false”-
请勿执行构建,只需检查其是否是最新的。如果所有目标都是最新的,则构建会成功完成。如果需要执行任何步骤,系统会报告错误,并且构建会失败。
代码:execution
--dynamic_local_execution_delay=<an integer>
默认值:“1000”-
如果在构建过程中远程执行速度至少比本地执行速度快一次,本地执行应延迟多少毫秒?
代码:execution
、host_machine_resource_optimizations
--dynamic_local_strategy=<a '[name=]value1[,..,valueN]' assignment>
累计多次使用-
要为给定缩写符号使用的本地策略(按顺序)。将“local”作为 mnemonic 传递会为未指定的 mnemonic 设置默认值。接受 [mnemonic=]local_strategy[,local_strategy,...]
代码:execution
、host_machine_resource_optimizations
--dynamic_remote_strategy=<a '[name=]value1[,..,valueN]' assignment>
累计多次使用-
要针对给定助记符使用的远程策略。将“remote”作为 mnemonic 传递会为未指定的 mnemonic 设置默认值。接受 [mnemonic=]remote_strategy[,remote_strategy,...]
代码:execution
、host_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 注入到该映像中。如果您的 build / 测试依赖于用户在容器内具有名称和主目录,则必须执行此操作。此设置默认处于开启状态,但如果自动图片自定义功能不适用于您的情况,或者您知道自己不需要该功能,则可以将其停用。
代码:execution
--[no]experimental_dynamic_exclude_tools
默认值:“true”-
设置后,构建为“for tool”的目标将不受动态执行的影响。此类目标极不可能以增量方式构建,因此不值得花费本地周期。
代码:execution
、host_machine_resource_optimizations
--experimental_dynamic_local_load_factor=<a double>
默认值:“0”-
控制将动态执行的多少负载放置在本地计算机上。此标志用于调整我们将在动态执行中并发调度的操作数量。它基于 Blaze 认为可用的 CPU 数量,该数量可以通过 --local_cpu_resources 标志进行控制。如果此标志为 0,则所有操作都会立即在本地调度。如果大于 0,则本地调度的操作数量受可用 CPU 数量的限制。如果小于 1,则在等待调度的操作数量较多时,负载因子会用于减少本地调度的操作数量。这会在干净 build 情况下减轻本地机器的负载,因为在这种情况下,本地机器的贡献不大。
代码:execution
、host_machine_resource_optimizations
--experimental_dynamic_slow_remote_time=<An immutable length of time.>
默认值:“0”-
如果大于 0,则表示动态运行的操作必须在本地执行之前在远程执行的时间,以避免远程超时。这可能会掩盖远程执行系统上的一些问题。请勿在不监控远程执行问题的情况下启用此功能。
代码:execution
、host_machine_resource_optimizations
--[no]experimental_enable_docker_sandbox
默认值:“false”-
启用基于 Docker 的沙盒化。如果未安装 Docker,此选项将无效。
代码:execution
--experimental_persistent_javac
-
启用实验性永久 Java 编译器。
展开为:
--strategy=Javac=worker
--strategy=JavaIjar=local
--strategy=JavaDeployJar=local
--strategy=JavaSourceJar=local
--strategy=Turbine=local
代码:execution
、host_machine_resource_optimizations
--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">
默认值:“0”-
如果为 0,则在操作完成后立即删除沙盒树(导致操作完成延迟)。如果大于零,则在异步线程池中执行此类三项的删除操作;该线程池在构建运行时大小为 1,在服务器空闲时会扩大到此标志指定的大小。
代码:host_machine_resource_optimizations
、execution
--experimental_sandboxfs_path=<a string>
默认值:“sandboxfs”-
当 --experimental_use_sandboxfs 为 true 时,要使用的 sandboxfs 二进制文件的路径。如果是裸名称,请使用 PATH 中找到的该名称的第一个二进制文件。
代码:host_machine_resource_optimizations
、execution
--[no]experimental_split_xml_generation
默认值:“true”-
如果设置此标志,并且测试操作未生成 test.xml 文件,则 Bazel 会使用单独的操作生成包含测试日志的虚构 test.xml 文件。否则,Bazel 会在测试操作中生成 test.xml。
代码:execution
--experimental_total_worker_memory_limit_mb=<an integer, or "HOST_RAM", optionally followed by [-|*]<float>.>
默认值:“0”-
如果此限制大于零,当所有工作器的内存总用量超过此限制时,系统可能会终止空闲工作器。
代码:execution
、host_machine_resource_optimizations
--[no]experimental_use_hermetic_linux_sandbox
默认值:“false”-
如果设置为 true,则不挂载根目录,只挂载 sandbox_add_mount_pair 提供的内容。输入文件将与沙盒硬链接,而不是通过符号链接到沙盒。如果操作输入文件位于与沙盒不同的文件系统上,则系统会改为复制输入文件。
代码:execution
--[no]experimental_use_sandboxfs
默认值:“false”-
使用 sandboxfs 创建操作的 execroot 目录,而不是构建符号链接树。如果为“yes”,则 --experimental_sandboxfs_path 提供的二进制文件必须有效且与受支持的 sandboxfs 版本相对应。如果为“auto”,则表示二进制文件可能缺失或不兼容。
代码:host_machine_resource_optimizations
、execution
--[no]experimental_use_windows_sandbox
默认值:“false”- 使用 Windows 沙盒运行操作。如果为“yes”,则 --experimental_windows_sandbox_path 提供的二进制文件必须有效且与受支持的 sandboxfs 版本相对应。如果为“auto”,则表示二进制文件可能缺失或不兼容。
--experimental_windows_sandbox_path=<a string>
默认值:“BazelSandbox.exe”- 当 --experimental_use_windows_sandbox 为 true 时,要使用的 Windows 沙盒二进制文件的路径。如果是裸名称,请使用 PATH 中找到的该名称的第一个二进制文件。
--[no]experimental_worker_as_resource
默认值:“false”-
如果启用,Worker 会作为资源从 ResourceManager 获取。
代码:execution
、host_machine_resource_optimizations
--[no]experimental_worker_cancellation
默认值:“false”-
如果启用,Bazel 可能会向支持它们的工作器发送取消请求。
代码:execution
--[no]experimental_worker_multiplex
默认值:“true”-
如果启用,支持实验性多路复用功能的工作器将使用该功能。
代码:execution
、host_machine_resource_optimizations
--[no]experimental_worker_multiplex_sandboxing
默认值:“false”-
如果启用,多路复用工作器将被沙盒化,每个工作请求使用单独的沙盒目录。只有具有“supports-multiplex-sandboxing”执行要求的 worker 才会被沙盒化。
代码:execution
--[no]experimental_worker_strict_flagfiles
默认值:“false”-
如果启用,则不遵循工作器规范的工作器的操作参数将导致错误。工作器参数必须只有一个 @flagfile 参数,且该参数必须是参数列表中的最后一个参数。
代码:execution
--genrule_strategy=<comma-separated list of options>
默认值:“”-
指定如何执行 genrule。此标志将逐步淘汰。请改用 --spawn_strategy=<value> 来控制所有操作,或使用 --strategy=Genrule=<value> 来仅控制 genrule。
代码:execution
--high_priority_workers=<a string>
累计多次使用-
要以高优先级运行的工作器的缩写。当高优先级工作器运行时,所有其他工作器都会受到节流。
代码:execution
--[no]incompatible_remote_dangling_symlinks
默认值:“true”-
如果将此属性设置为 true 且 --incompatible_remote_symlinks 也设置为 true,则允许在操作输出中使用悬空符号链接。
代码:execution
、incompatible_change
--[no]incompatible_remote_symlinks
默认值:“true”-
如果设置为 true,Bazel 会在远程缓存/执行协议中以这种方式表示操作输出中的符号链接。否则,系统会跟踪符号链接,并将其表示为文件或目录。如需了解详情,请参阅 #6631。
代码:execution
、incompatible_change
--[no]incompatible_sandbox_hermetic_tmp
默认值:“false”-
如果设置为 true,每个 Linux 沙盒都将拥有自己的专用空目录,该目录会作为 /tmp 进行挂载,而不是与主机文件系统共享 /tmp。使用 --sandbox_add_mount_pair=/tmp 可在所有沙盒中继续看到主机的 /tmp。
代码:execution
--[no]internal_spawn_scheduler
默认值:“false”-
占位符选项,以便我们在 Blaze 中判断是否启用了 spawn 调度程序。
代码:execution
、host_machine_resource_optimizations
--jobs=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5">
[-j
] 默认值:“auto”-
要运行的并发作业数。接受一个整数或关键字(“auto”“HOST_CPUS”“HOST_RAM”),可选地跟随运算 ([-|*]<float>),例如“auto”“HOST_CPUS*.5”。值必须介于 1 到 5000 之间。大于 2500 的值可能会导致内存问题。“auto”会根据主机资源计算合理的默认值。
代码:host_machine_resource_optimizations
、execution
--[no]keep_going
[-k
] 默认值:“false”-
在发生错误后尽可能继续。虽然无法分析失败的目标及其依赖项,但可以分析这些目标的其他前提条件。
代码:eagerness_to_exit
--loading_phase_threads=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5">
默认值:“auto”-
用于加载/分析阶段的并行线程数量。接受整数或关键字(“auto”“HOST_CPUS”“HOST_RAM”),可选地后跟运算 ([-|*]<float>),例如“auto”“HOST_CPUS*.5”。“auto”会根据主机资源设置合理的默认值。不得低于 1。
代码:bazel_internal_configuration
--[no]reuse_sandbox_directories
默认值:“false”-
如果设置为 true,沙盒化非 worker 执行使用的目录可能会被重复使用,以避免不必要的设置开销。
代码:host_machine_resource_optimizations
、execution
--sandbox_base=<a string>
默认值:“”-
让沙盒在此路径下创建沙盒目录。在 tmpfs 上指定路径(例如 /run/shm),如果 build / test 包含许多输入文件,则可能会大幅提升性能。注意:您需要有足够的 RAM 和 tmpfs 可用空间,才能存储运行操作生成的输出和中间文件。
代码:host_machine_resource_optimizations
、execution
--[no]sandbox_explicit_pseudoterminal
默认值:“false”-
明确启用为沙盒化操作创建伪终端。某些 Linux 发行版要求在沙盒中将进程的组 ID 设置为“tty”,才能使伪终端正常运行。如果这会导致问题,可以停用此标志,以便使用其他组。
代码:execution
--sandbox_tmpfs_path=<an absolute path>
累计多次使用-
对于沙盒化操作,在此绝对路径中挂载一个可写入的空目录(如果沙盒化实现支持,否则会被忽略)。
代码:host_machine_resource_optimizations
、execution
--spawn_strategy=<comma-separated list of options>
默认值:“”-
指定默认情况下如何执行 spawn 操作。接受以英文逗号分隔的策略列表,优先级从高到低。对于每个操作,Bazel 都会选择优先级最高且可以执行该操作的策略。默认值为“remote,worker,sandboxed,local”。如需了解详情,请参阅 https://blog.bazel.build/2019/06/19/list-strategy.html。
代码:execution
--strategy=<a '[name=]value1[,..,valueN]' assignment>
累计多次使用-
指定如何分发其他 spawn 操作的编译。接受以英文逗号分隔的策略列表,优先级从高到低。对于每个操作,Bazel 都会选择优先级最高且可以执行该操作的策略。默认值为“remote,worker,sandboxed,local”。此标志会替换由 --spawn_strategy 设置的值(以及 --genrule_strategy,如果与助记符 Genrule 一起使用)。如需了解详情,请参阅 https://blog.bazel.build/2019/06/19/list-strategy.html。
代码:execution
--strategy_regexp=<a '<RegexFilter>=value[,value]' assignment>
累计多次使用-
替换应用于执行与特定 regex_filter 匹配的说明的 spawn 操作的 spawn 策略。如需详细了解 regex_filter 匹配,请参阅 --per_file_copt。系统会使用与说明匹配的第一个 regex_filter。此选项会替换用于指定策略的其他标志。示例:--strategy_regexp=//foo.*\.cc,-//foo/bar=local 表示,如果操作的说明与 //foo.*.cc 匹配,但与 //foo/bar 不匹配,则使用本地策略运行操作。示例:--strategy_regexp='Compiling.*/bar=local --strategy_regexp=Compiling=sandboxed 将使用“local”策略运行“Compiling //foo/bar/baz”,但如果将顺序颠倒过来,则会使用“sandboxed”策略运行它。
代码:execution
--worker_extra_flag=<a 'name=value' assignment>
累计多次使用-
除了 --persistent_worker 之外,将传递给工作器进程的额外命令标志,按助记符键控(例如 --worker_extra_flag=Javac=--debug)。
代码:execution
、host_machine_resource_optimizations
--worker_max_instances=<[name=]value, where value is an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5">
累计多次使用-
如果您使用“worker”策略,可以启动多少个 worker 进程实例(例如永久性 Java 编译器)。可以指定为 [name=value],以便为每个 worker 缩写符号提供不同的值。接受一个整数或关键字(“auto”“HOST_CPUS”“HOST_RAM”),可选地跟随运算 ([-|*]<float>),例如“auto”“HOST_CPUS*.5”。“auto”会根据机器容量计算合理的默认值。“=value”用于为未指定的缩写符号设置默认值。
代码:execution
、host_machine_resource_optimizations
--worker_max_multiplex_instances=<[name=]value, where value is an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5">
累计多次使用-
如果您将“worker”策略与 --experimental_worker_multiplex 搭配使用,多路复用 worker 进程可以并行接收多少个 WorkRequest。可以指定为 [name=value],以便为每个 worker 缩写符号提供不同的值。接受一个整数或关键字(“auto”“HOST_CPUS”“HOST_RAM”),可选地跟随运算 ([-|*]<float>),例如“auto”“HOST_CPUS*.5”。“auto”会根据机器容量计算合理的默认值。“=value”用于为未指定的缩写符号设置默认值。
代码:execution
、host_machine_resource_optimizations
--[no]worker_quit_after_build
默认值:“false”-
如果启用,则所有工作器都会在构建完成后退出。
代码:execution
、host_machine_resource_optimizations
--[no]worker_sandboxing
默认值:“false”-
如果启用,工作器将在沙盒化环境中执行。
代码:execution
--[no]worker_verbose
默认值:“false”- 如果启用,则会在启动、关闭等操作 worker 时输出详细消息
- 用于配置用于执行操作的工具链的选项:
--[no]incompatible_disable_runtimes_filegroups
默认值:“false”-
已废弃的无操作。
代码:action_command_lines
、loading_and_analysis
、deprecated
、incompatible_change
--[no]incompatible_dont_emit_static_libgcc
默认值:“true”-
已废弃的无操作。
代码:action_command_lines
、loading_and_analysis
、deprecated
、incompatible_change
--[no]incompatible_linkopts_in_user_link_flags
默认值:“true”-
已废弃的无操作命令。
标记:action_command_lines
、loading_and_analysis
、deprecated
、incompatible_change
- 用于控制命令输出的选项:
--[no]build
默认值:“true”-
执行 build;这是常见行为。指定 --nobuild 会导致构建在执行构建操作之前停止,如果软件包加载和分析阶段成功完成,则返回 0;此模式对于测试这些阶段非常有用。
代码:execution
、affects_outputs
--[no]experimental_run_validations
默认值:“true”-
请改用 --run_validations。
代码:execution
、affects_outputs
--[no]experimental_use_validation_aspect
默认值:“false”-
是否使用切面运行验证操作(用于与测试并行)。
代码:execution
、affects_outputs
--output_groups=<comma-separated list of options>
累计多次使用-
逗号分隔的输出组名称列表,每个名称可以选择添加 + 或 - 前缀。前缀为 + 的组会添加到默认的输出组集,而前缀为 - 的组会从默认组集中移除。如果至少有一个组未添加前缀,则系统会忽略默认的一组输出组。例如,--output_groups=+foo,+bar 会构建默认集合、foo 和 bar 的联合,而 --output_groups=foo,bar 会替换默认集合,以便仅构建 foo 和 bar。
代码:execution
、affects_outputs
--[no]run_validations
默认值:“true”-
是否在构建过程中运行验证操作。请参阅 https://bazel.build/extending/rules#validation_actions
标记:execution
、affects_outputs
- 允许用户配置预期输出的选项,会影响其值,而不是其存在性:
--aspects=<comma-separated list of options>
累计多次使用- 要应用于顶级目标的方面(以英文逗号分隔)。在列表中,如果某个 aspect some_aspect 通过 required_aspect_providers 指定了必需的 aspect 提供程序,则 some_aspect 将在 aspect 列表中其之前提及的每个 aspect 之后运行,并且这些 aspect 的所宣传的提供程序满足 some_aspect 的必需 aspect 提供程序。此外,some_aspect 将在其所有必需的 aspect(由 requires 属性指定)运行完毕后运行。然后,some_aspect 将能够访问这些 aspect 提供程序的值。<bzl-file-label>%<aspect_name>,例如“//tools:my_def.bzl%my_aspect”,其中“my_aspect”是文件 tools/my_def.bzl 中的顶级值
--bep_maximum_open_remote_upload_files=<an integer>
默认值:“-1”-
BEP 工件上传期间允许的打开文件数上限。
代码:affects_outputs
--[no]experimental_convenience_symlinks
默认值:“normal”-
此标志用于控制便捷符号链接(构建后在工作区中显示的符号链接)的管理方式。可能的值:
normal(默认):系统会根据 build 创建或删除每种便捷符号链接。
clean:系统将无条件删除所有符号链接。
ignore:系统会保留符号链接。
log_only:生成日志消息,就像传递了“normal”一样,但实际上不会执行任何文件系统操作(对工具很有用)。
请注意,只有名称由 --symlink_prefix 的当前值生成的符号链接会受到影响;如果前缀发生变化,所有现有符号链接都将保持不变。
代码:affects_outputs
--[no]experimental_convenience_symlinks_bep_event
默认值:“false”-
此标志用于控制我们是否将 build eventConvenienceSymlinksIdentified 发布到 BuildEventProtocol。如果值为 true,BuildEventProtocol 将包含 convenienceSymlinksIdentified 条目,其中列出了在您的工作区中创建的所有便捷符号链接。如果为 false,则 BuildEventProtocol 中的 convenienceSymlinksIdentified 条目将为空。
代码:affects_outputs
--experimental_multi_cpu=<comma-separated list of options>
累计多次使用-
已弃用。无操作。
代码:affects_outputs
、experimental
--remote_download_minimal
-
不会将任何远程构建输出下载到本地机器。此标志是以下标志的快捷方式:--experimental_inmemory_jdeps_files、--experimental_inmemory_dotd_files、--experimental_action_cache_store_output_metadata 和 --remote_download_outputs=minimal。
展开为:
--nobuild_runfile_links
--experimental_inmemory_jdeps_files
--experimental_inmemory_dotd_files
--experimental_action_cache_store_output_metadata
--remote_download_outputs=minimal
代码:affects_outputs
--remote_download_outputs=<all, minimal or toplevel>
默认值:“all”-
如果设置为“最小”,则不会将任何远程 build 输出下载到本地计算机,本地操作所需的输出除外。如果设置为“toplevel”,则会像“minimal”一样,但它还会将顶级目标的输出下载到本地机器。如果网络带宽是瓶颈,这两种方法都可以显著缩短构建时间。
代码:affects_outputs
--remote_download_symlink_template=<a string>
默认值:“”-
请创建符号链接,而不是将远程构建输出下载到本地计算机。符号链接的目标可以采用模板字符串的形式指定。此模板字符串可能包含 {hash} 和 {size_bytes},分别会展开为对象的哈希值和大小(以字节为单位)。例如,这些符号链接可以指向一个 FUSE 文件系统,该文件系统会按需从 CAS 加载对象。
代码:affects_outputs
--remote_download_toplevel
-
仅将顶级目标的远程输出下载到本地计算机。此标志是以下标志的快捷方式:--experimental_inmemory_jdeps_files、--experimental_inmemory_dotd_files、--experimental_action_cache_store_output_metadata 和 --remote_download_outputs=toplevel。
展开为:
--experimental_inmemory_jdeps_files
--experimental_inmemory_dotd_files
--experimental_action_cache_store_output_metadata
--remote_download_outputs=toplevel
代码:affects_outputs
--symlink_prefix=<a string>
默认:请参阅说明-
在构建后创建的任何便捷符号链接之前附加的前缀。如果省略,默认值为 build 工具的名称后跟连字符。如果传递“/”,则系统不会创建任何符号链接,也不会发出任何警告。警告:适用于“/”的特殊功能即将被弃用;请改用 --experimental_convenience_symlinks=ignore。
代码:affects_outputs
- 影响 Bazel 强制执行有效 build 输入(规则定义、标志组合等)的严格程度的选项:
--[no]experimental_docker_privileged
默认值:“false”-
如果启用,则 Bazel 会在运行操作时将 --privileged 标志传递给“docker run”。您的 build 可能需要这样做,但这也可能会降低密封性。
代码:execution
--experimental_repository_hash_file=<a string>
默认值:“”-
如果不为空,则指定包含已解析值的文件,系统应根据该值验证代码库目录哈希
标记:affects_outputs
、experimental
--[no]experimental_sandboxfs_map_symlink_targets
默认值:“false”-
如果为 true,则将指定为操作输入的符号链接的目标映射到沙盒。此功能仅用于解决无法自行执行此操作的存在 bug 的规则,所有此类规则都修复后,此功能应被移除。
代码:host_machine_resource_optimizations
、execution
--experimental_verify_repository_rules=<a string>
累计多次使用-
如果应验证输出目录的哈希值的代码库规则列表,则通过 --experimental_repository_hash_file 指定文件。
代码:affects_outputs
、experimental
--[no]incompatible_legacy_local_fallback
默认值:“true”-
如果设为 true,则启用从沙盒策略到本地策略的旧版隐式回退。此标志最终将默认为 false,然后变为无操作。请改用 --strategy、--spawn_strategy 或 --dynamic_local_strategy 来配置回退。
代码:execution
、incompatible_change
--sandbox_add_mount_pair=<a single path or a 'source:target' pair>
累计多次使用-
添加了要挂载在沙盒中的其他路径对。
代码:execution
--sandbox_block_path=<a string>
累计多次使用-
对于沙盒化操作,请禁止访问此路径。
代码:execution
--[no]sandbox_default_allow_network
默认值:“true”- 默认允许操作访问网络;这可能不适用于所有沙盒实现。
--[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]experimental_allow_top_level_aspects_parameters
默认值:“true”-
无操作
标记:no_op
、deprecated
、experimental
--[no]incompatible_config_setting_private_default_visibility
默认值:“false”-
如果 incompatible_enforce_config_setting_visibility=false,则此操作不会执行任何操作。否则,如果此标志为 false,则任何没有明确可见性属性的 config_setting 均为 //visibility:public。如果此标志为 true,则 config_setting 将遵循与所有其他规则相同的可见性逻辑。请参阅 https://github.com/bazelbuild/bazel/issues/12933。
代码:loading_and_analysis
、incompatible_change
--[no]incompatible_enforce_config_setting_visibility
默认值:“true”-
如果为 true,则强制执行 config_setting 可见性限制。如果为 false,则每个 config_setting 对每个目标都是可见的。请参阅 https://github.com/bazelbuild/bazel/issues/12932。
标记:loading_and_analysis
、incompatible_change
- 用于控制测试环境或测试运行程序行为的选项:
--[no]check_tests_up_to_date
默认值:“false”-
请勿运行测试,只需检查测试是否是最新的。如果所有测试结果都是最新的,则测试会成功完成。如果需要构建或执行任何测试,系统会报告错误,并且测试会失败。此选项暗示 --check_up_to_date 行为。
代码:execution
--flaky_test_attempts=<a positive integer, the string "default", or test_regex@attempts. This flag may be passed more than once>
累计多次使用-
如果任何测试失败,系统最多会重试指定的次数。需要多次尝试才能通过的测试会在测试摘要中标记为“不稳定”。通常,指定的值只是一个整数或字符串“default”。如果为整数,则所有测试最多会运行 N 次。如果为“default”,则系统只会针对常规测试进行一次测试尝试,针对由规则明确标记为不稳定的测试(flaky=1 属性)进行三次测试尝试。备用语法:regex_filter@flaky_test_attempts。其中,flaky_test_attempts 如上所示,regex_filter 表示包含和排除正则表达式模式的列表(另请参阅 --runs_per_test)。示例:--flaky_test_attempts=//foo/.*,-//foo/bar/.*@3 会对 //foo/ 中的所有测试(除了 foo/bar 下的测试)进行三次去除不稳定性处理。此选项可以多次传递。最晚传递的匹配实参优先。如果没有任何匹配项,则行为与上述“默认”相同。
代码:execution
--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”-
停用后,任何未通过的测试都将导致整个 build 停止。默认情况下,系统会运行所有测试,即使其中有些测试未通过也是如此。
代码:execution
--test_strategy=<a string>
默认值:“”-
指定运行测试时要使用的策略。
代码:execution
--test_tmpdir=<a path>
默认:请参阅说明- 指定要供“bazel test”使用的基准临时目录。
- 与 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
--override_module=<an equals-separated mapping of module name to path>
累计多次使用- 使用本地目录替换模块。
--registry=<a string>
累计多次使用-
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在较早的注册表中查找模块,只有在较早的注册表中没有模块时,才会回退到较新的注册表。
标记:changes_inputs
- 影响日志记录详细程度、格式或位置的选项:
--[no]announce
默认值:“false”-
已弃用。无操作。
代码:affects_outputs
--[no]debug_spawn_scheduler
默认值:“false”--[no]experimental_bep_target_summary
默认值:“false”- 是否发布 TargetSummary 事件。
--[no]experimental_build_event_expand_filesets
默认值:“false”-
如果为 true,则在显示输出文件时在 BEP 中展开文件集。
代码:affects_outputs
--[no]experimental_build_event_fully_resolve_fileset_symlinks
默认值:“false”-
如果为 true,则在显示输出文件时,在 BEP 中完全解析相对文件集符号链接。需要使用 --experimental_build_event_expand_filesets。
代码:affects_outputs
--experimental_build_event_upload_max_retries=<an integer>
默认值:“4”-
Bazel 应重试上传 build 事件的次数上限。
代码: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_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_stream_log_file_uploads
默认值:“false”-
流式日志文件会直接上传到远程存储空间,而不是写入磁盘。
代码:affects_outputs
--explain=<a path>
默认:请参阅说明-
指示构建系统说明构建的每个已执行步骤。解释会写入指定的日志文件。
代码:affects_outputs
--[no]legacy_important_outputs
默认值:“true”-
使用此选项可抑制在 TargetComplete 事件中生成旧版 important_outputs 字段。若要将 Bazel 与 ResultStore 集成,必须使用 important_outputs。
代码:affects_outputs
--[no]materialize_param_files
默认值:“false”-
将中间参数文件写入输出树,即使使用远程操作执行也是如此。在调试操作时非常有用。--subcommands 和 --verbose_failures 会隐式地指明这一点。
代码:execution
--max_config_changes_to_show=<an integer>
默认值:“3”-
当因 build 选项发生变化而舍弃分析缓存时,最多会显示给定数量的已更改选项名称。如果给定数字为 -1,系统将显示所有已更改的选项。
代码:terminal_output
--max_test_output_bytes=<an integer>
默认值:“-1”-
指定当 --test_output 为“errors”或“all”时,每个测试日志的大小上限。这对于避免测试输出过于嘈杂而导致输出过载非常有用。测试标头包含在日志大小中。负值表示无限制。输出是全部或全无。
代码:test_runner
、terminal_output
、execution
--output_filter=<a valid Java regular expression>
默认:请参阅说明-
仅针对名称与所提供的正则表达式匹配的规则显示警告。
代码:affects_outputs
--progress_report_interval=<an integer in 0-3600 range>
默认值:“0”-
有关仍在运行的作业的报告之间的间隔秒数。默认值 0 表示系统会在 10 秒后输出第一个报告,然后在 30 秒后输出第二个报告,之后每分钟报告一次进度。启用 --curses 后,系统会每秒报告一次进度。
代码:affects_outputs
--remote_print_execution_messages=<failure, success or all>
默认值:“failure”-
选择何时输出远程执行消息。有效值包括“failure”(仅在失败时输出)、“success”(仅在成功时输出)和“all”(始终输出)。
代码:terminal_output
--[no]sandbox_debug
默认值:“false”-
为沙盒功能启用调试功能。这包括两点:首先,沙盒根目录内容在构建后保持不变(如果使用 sandboxfs,则文件系统会保持挂载状态);其次,在执行时会输出额外的调试信息。这有助于 Bazel 或 Starlark 规则的开发者排查因缺少输入文件等原因而导致的调试失败问题。
代码:terminal_output
--show_result=<an integer>
默认值:“1”-
显示构建结果。对于每个目标,请指明其是否已更新,如果已更新,请列出构建的输出文件。输出的文件是方便复制并粘贴到 shell 以便执行的字符串。此选项需要一个整数参数,该参数是目标数阈值,如果超过该阈值,系统将不会输出结果信息。因此,零会导致系统抑制消息,而 MAX_INT 会导致系统始终输出结果。默认值为 1。
代码:affects_outputs
--[no]subcommands
[-s
] 默认值:“false”-
显示构建期间执行的子命令。相关标志:--execution_log_json_file、--execution_log_binary_file(用于以工具友好的格式将子命令记录到文件)。
代码:terminal_output
--test_output=<summary, errors, all or streamed>
默认值:“summary”-
指定所需的输出模式。有效值包括“summary”(仅输出测试状态摘要)、“errors”(同时输出失败测试的测试日志)、“all”(输出所有测试的日志)和“streamed”(实时输出所有测试的日志,无论 --test_strategy 值如何,这都会强制在本地一次执行一项测试)。
代码:test_runner
、terminal_output
、execution
--test_summary=<short, terse, detailed, none or testcase>
默认值:“short”-
指定所需的测试摘要格式。有效值包括“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_downloader_config=<a string>
默认:请参阅说明- 指定用于配置远程下载器的文件。该文件由多行组成,每行都以指令(“allow”“block”或“rewrite”)开头,后跟主机名(对于“allow”和“block”)或两个模式(一个用于匹配,一个用于用作替换网址),回引用从 `$1` 开始。可以为同一网址提供多个“rewrite”指令,在这种情况下,系统会返回多个网址。
--[no]experimental_guard_against_concurrent_changes
默认值:“false”- 关闭此设置可在将操作的输入文件上传到远程缓存之前停用检查输入文件的 ctime 的功能。在某些情况下,Linux 内核可能会延迟写入文件,这可能会导致误报。
--experimental_remote_build_event_upload=<all or minimal>
默认值:“all”- 如果设置为“all”,BEP 引用的所有本地输出都会上传到远程缓存。如果设置为“minimal”,BEP 引用的本地输出不会上传到远程缓存,但对 BEP 使用方重要的文件(例如测试日志和时间配置文件)除外。file:// 方案用于本地文件的路径,bytestream:// 方案用于(已)上传文件的路径。默认值为“all”。
--[no]experimental_remote_cache_async
默认值:“false”- 如果为 true,远程缓存 I/O 将在后台进行,而不是在 spawn 过程中进行。
--[no]experimental_remote_cache_compression
默认值:“false”- 如果启用,则使用 zstd 压缩/解压缩缓存 blob。
--experimental_remote_capture_corrupted_outputs=<a path>
默认:请参阅说明- 指向要将损坏的输出捕获到的目录的路径。
--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_grpc_log=<a path>
默认:请参阅说明- 如果指定,则为用于记录 gRPC 调用相关详细信息的文件的路径。此日志由一系列序列化的 com.google.devtools.build.lib.remote.logging.RemoteExecutionLog.LogEntry protobuf 组成,其中每条消息的前缀都是一个 varint,表示下一条序列化 protobuf 消息的大小,如方法 LogEntry.writeDelimitedTo(OutputStream) 所执行。
--[no]experimental_remote_mark_tool_inputs
默认值:“false”- 如果设置为 true,Bazel 会将输入标记为远程执行器的工具输入。这可用于实现远程永久性工作器。
--[no]experimental_remote_merkle_tree_cache
默认值:“false”- 如果设置为 true,系统会对 Merkle 树计算进行 memoized,以提高远程缓存命中检查速度。缓存的内存占用由 --experimental_remote_merkle_tree_cache_size 控制。
--experimental_remote_merkle_tree_cache_size=<a long integer>
默认值:“1000”- 要缓存的 Merkle 树的数量,以提高远程缓存命中检查速度。即使缓存会根据 Java 对软引用的处理自动进行修剪,但如果设置过高,也可能会发生内存不足错误。如果设为 0,则缓存大小不受限制。最佳值因项目大小而异。默认值为 1000。
--[no]incompatible_remote_build_event_upload_respect_no_cache
默认值:“false”- 如果设置为 true,如果生成操作无法远程缓存,BEP 引用的输出将不会上传到远程缓存。
--[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”-
如果设置为 true,则 --noremote_upload_local_results 和 --noremote_accept_cached 不会应用于磁盘缓存。如果使用组合缓存:
--noremote_upload_local_results 会导致结果写入到磁盘缓存,但不会上传到远程缓存。
--noremote_accept_cached 会导致 Bazel 在磁盘缓存中查找结果,但不会在远程缓存中查找。
no-remote-exec 操作可能会命中磁盘缓存。如需了解详情,请参阅 #8216。
代码:incompatible_change
--[no]remote_accept_cached
默认值:“true”- 是否接受远程缓存的操作结果。
--remote_bytestream_uri_prefix=<a string>
默认:请参阅说明- 要写入 build 事件流的 bytestream:// URI 中使用的主机名和实例名称。使用代理执行 build 时可以设置此选项,这会导致 --remote_executor 和 --remote_instance_name 的值不再与远程执行服务的规范名称相对应。如果未设置,则默认为“${hostname}/${instance_name}”。
--remote_cache=<a string>
默认:请参阅说明- 缓存端点的 URI。支持的架构包括 http、https、grpc、grpcs(启用了 TLS 的 grpc)和 unix(本地 UNIX 套接字)。如果未提供架构,Bazel 将默认使用 grpcs。指定 grpc://、http:// 或 unix: 架构以停用 TLS。请参阅 https://bazel.build/remote/caching
--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_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_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_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 将计算所有远程下载内容的哈希总和,并丢弃与预期值不匹配的远程缓存值。
- 其他未归入其他类别的选项:
--auto_output_filter=<none, all, packages or subpackages>
默认值:“none”- 如果未指定 --output_filter,则系统会使用此选项的值自动创建过滤条件。允许的值包括“none”(不过滤任何内容 / 显示所有内容)、“all”(过滤所有内容 / 不显示任何内容)、“packages”(包含 Blaze 命令行中提及的软件包中的规则输出)和“subpackages”(与“packages”类似,但还包含子软件包)。对于“packages”和“subpackages”值,//java/foo 和 //javatests/foo 被视为一个软件包)”。
--[no]build_manual_tests
默认值:“false”- 强制构建标记为“manual”的测试目标。系统不会处理“手动”测试。此选项会强制构建(但不会执行)这些模块。
--build_tag_filters=<comma-separated list of options>
默认值:“”- 指定以逗号分隔的标记列表。每个代码都可以选择在前面加上“-”以指定要排除的代码。系统只会构建包含至少一个包含的代码且不包含任何排除的代码的目标。此选项不会影响使用“test”命令执行的一组测试;这些测试受测试过滤选项(例如“--test_tag_filters”)的约束
--[no]build_tests_only
默认值:“false”- 如果指定,系统将仅构建 *_test 和 test_suite 规则,并忽略命令行上指定的其他目标。默认情况下,系统会构建所有请求的文件。
--combined_report=<none or lcov>
默认值:“none”- 指定所需的累计覆盖率报告类型。目前仅支持 LCOV。
--[no]compile_one_dependency
默认值:“false”- 编译参数文件的单个依赖项。这对于在 IDE 中对源文件进行语法检查非常有用,例如,通过重新构建依赖于源文件的单个目标,以便在编辑/构建/测试周期中尽早检测错误。此参数会影响对所有非标志参数的解读方式;它们不是构建目标,而是源文件名。对于每个源文件名,系统都会构建依赖于它的任意目标。
--deleted_packages=<comma-separated list of package names>
默认值:“”- 一个用逗号分隔的软件包名称列表,构建系统会将这些软件包视为不存在,即使它们在软件包路径的某个位置可见也是如此。删除现有软件包“x”的子软件包“x/y”时,请使用此选项。例如,在客户端中删除 x/y/BUILD 后,如果 build 系统遇到仍由其他 package_path 条目提供的标签“//x:y/z”,则可能会发出警告。指定 --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 记录为分隔的 spawn proto 并写入此文件。日志会先无序写入,然后在调用结束时按稳定的顺序排序(可能会占用大量 CPU 和内存)。相关标志:--execution_log_json_file(有序文本 JSON 格式)、--experimental_execution_log_file(无序二进制 protobuf 格式)、--subcommands(用于在终端输出中显示子命令)。
--execution_log_json_file=<a path>
默认:请参阅说明- 根据 src/main/protobuf/spawn.proto,将已执行的 spawn 记录到此文件中,以便以 json 表示法表示分隔的 spawn proto。日志会先无序写入,然后在调用结束时按稳定的顺序排序(可能会占用大量 CPU 和内存)。相关标志:--execution_log_binary_file(有序二进制 protobuf 格式)、--experimental_execution_log_file(无序二进制 protobuf 格式)、--subcommands(用于在终端输出中显示子命令)。
--[no]expand_test_suites
默认值:“true”-
在分析之前,将 test_suite 目标展开为其组成测试。开启此标志(默认)后,系统会将否定目标模式应用于属于测试套件的测试,否则不会。在命令行中应用顶级方面时,停用此标志非常有用:这样,它们就可以分析 test_suite 目标。
代码:loading_and_analysis
--experimental_credential_helper=<An (unresolved) path to a credential helper for a scope.>
累计多次使用- 配置要用于检索所提供范围(网域)的凭据的凭据帮助程序。 凭据助手中的凭据优先于 <code>--google_default_credentials</code>、`--google_credentials` 或 <code>.netrc</code> 中的凭据。详情请参阅 https://github.com/bazelbuild/proposals/blob/main/designs/2022-06-07-bazel-credential-helpers.md。
--experimental_credential_helper_cache_duration=<An immutable length of time.>
默认值:“30m”- 配置凭据帮助程序中的凭据缓存时长。 使用其他值进行调用会调整现有条目的生命周期;传递零可清除缓存。无论此标志如何,clean 命令始终会清除缓存。
--experimental_credential_helper_timeout=<An immutable length of time.>
默认值:“5s”- 为 Credential Helper 配置超时。 如果凭据帮助程序未在此超时时间段内响应,则调用将失败。
--experimental_execution_log_file=<a path>
默认:请参阅说明- 根据 src/main/protobuf/spawn.proto,将已执行的 spawn 记录为分隔的 spawn proto 并写入此文件。此文件会按 spawn 的执行顺序写入。相关标志:--execution_log_binary_file(有序二进制 protobuf 格式)、--execution_log_json_file(有序文本 JSON 格式)、--subcommands(用于在终端输出中显示子命令)。
--[no]experimental_execution_log_spawn_metrics
默认值:“false”- 在已执行的 spawn 日志中添加 spawn 指标。
--experimental_extra_action_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths>
默认值:“”- 已废弃,取而代之的是 aspect。过滤要为其安排 extra_action 的一组目标。
--[no]experimental_extra_action_top_level_only
默认值:“false”- 已废弃,取而代之的是 aspect。仅为顶级目标安排 extra_actions。
--[no]experimental_prioritize_local_actions
默认值:“true”-
如果设置了此属性,则只能在本地运行的操作将获得获取资源的首个机会,动态运行的工作器将获得第二个机会,动态运行的独立操作将获得最后一个机会。
代码:execution
--experimental_spawn_scheduler
-
通过在本地和远程并行运行操作来启用动态执行。Bazel 会在本地和远程生成每项操作,并选择最先完成的操作。如果某个操作支持工作器,则本地操作将在永久性工作器模式下运行。如需为单个操作助记符启用动态执行,请改用 `--internal_spawn_scheduler` 和 `--strategy=<mnemonic>=dynamic` 标志。
展开为:
--internal_spawn_scheduler
--spawn_strategy=dynamic
--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 连接配置 keepalive pinging。如果设置此值,则在连接上没有执行读取操作这么长时间后,Bazel 会发送 ping,但前提是至少有一个待处理的 gRPC 调用。时间以秒为粒度;如果设置的值小于 1 秒,则会出错。默认情况下,系统会停用保持连接的 ping。您应先与服务所有者协调,然后再启用此设置。例如,如需将此标志的值设置为 30 秒,应按如下方式进行:--grpc_keepalive_time=30s
--grpc_keepalive_timeout=<An immutable length of time.>
默认值:“20s”- 为出站 gRPC 连接配置了 keepalive 超时。如果使用 --grpc_keepalive_time 启用了 keepalive ping,那么如果 Bazel 在此时间过后未收到 ping 回复,则会超时连接。时间以秒为粒度;如果设置的值小于 1 秒,则会出错。如果停用了保持连接的 ping,系统会忽略此设置。
--[no]ignore_unsupported_sandboxing
默认值:“false”- 当此系统不支持沙盒化执行时,不输出警告。
--[no]incompatible_dont_use_javasourceinfoprovider
默认值:“false”-
无操作
代码:incompatible_change
--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 核心数。
--local_ram_resources=<an integer, 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%。
--local_termination_grace_seconds=<an integer>
默认值:“15”- 在因超时而终止本地进程与强制关闭本地进程之间等待的时间。
--override_repository=<an equals-separated mapping of repository name to path>
累计多次使用- 使用本地目录替换代码库。
--package_path=<colon-separated list of options>
默认值:“%workspace%”- 以冒号分隔的软件包搜索位置列表。以“%workspace%”开头的元素相对于封闭的工作区。如果省略或为空,则默认值为“bazel info default-package-path”的输出。
--[no]show_loading_progress
默认值:“true”- 如果启用,会导致 Bazel 输出“Loading package:”消息。
--test_lang_filters=<comma-separated list of options>
默认值:“”- 指定以逗号分隔的测试语言列表。您可以选择在每种语言前面加上“-”以指定要排除的语言。系统只会找到使用指定语言编写的测试目标。为每种语言使用的名称应与 *_test 规则中的语言前缀相同,例如“cc”“java”“py”等。此选项会影响 --build_tests_only 行为和测试命令。
--test_size_filters=<comma-separated list of values: small, medium, large or enormous>
默认值:“”- 以逗号分隔列表的形式指定测试大小。您可以选择在每个尺寸前面加上“-”来指定要排除的尺寸。系统只会找到包含至少一种包含的尺寸且不包含任何排除的尺寸的测试目标。此选项会影响 --build_tests_only 行为和测试命令。
--test_tag_filters=<comma-separated list of options>
默认值:“”- 指定以逗号分隔的测试标记列表。每个代码都可以选择在前面加上“-”以指定要排除的代码。系统只会找到包含至少一个包含的代码且不包含任何排除的代码的测试目标。此选项会影响 --build_tests_only 行为和测试命令。
--test_timeout_filters=<comma-separated list of values: short, moderate, long or eternal>
默认值:“”- 指定以逗号分隔的测试超时列表。每个超时时间都可以选择在前面加上“-”以指定要排除的超时时间。系统只会找到包含至少一个包含的超时值且不包含任何排除的超时值的测试目标。此选项会影响 --build_tests_only 行为和测试命令。
--tls_certificate=<a string>
默认:请参阅说明- 指定用于对服务器证书进行签名的受信任 TLS 证书的路径。
--tls_client_certificate=<a string>
默认:请参阅说明- 指定要使用的 TLS 客户端证书;您还需要提供客户端密钥才能启用客户端身份验证。
--tls_client_key=<a string>
默认:请参阅说明- 指定要使用的 TLS 客户端密钥;您还需要提供客户端证书才能启用客户端身份验证。
--workspace_status_command=<path>
默认值:“”- 在构建开始时调用的命令,用于以键值对的形式提供有关工作区的状态信息。如需查看完整规范,请参阅用户手册。另请参阅 tools/buildstamp/get_workspace_status 以查看示例。
- 用于控制 build 执行的选项:
--[no]check_up_to_date
默认值:“false”-
请勿执行构建,只需检查其是否是最新的。如果所有目标都是最新的,则构建会成功完成。如果需要执行任何步骤,系统会报告错误,并且构建会失败。
代码:execution
--[no]experimental_inprocess_symlink_creation
默认值:“false”-
是否通过直接文件系统调用创建符号链接树
标记:loading_and_analysis
、execution
、experimental
--[no]experimental_remotable_source_manifests
默认值:“false”-
是否将来源清单操作设为可远程执行
标记:loading_and_analysis
、execution
、experimental
--[no]experimental_split_coverage_postprocessing
默认值:“false”-
如果为 true,则 Bazel 会在新 spawn 中为测试运行覆盖率后处理。
代码:execution
--[no]experimental_split_xml_generation
默认值:“true”-
如果设置此标志,并且测试操作未生成 test.xml 文件,则 Bazel 会使用单独的操作生成包含测试日志的虚构 test.xml 文件。否则,Bazel 会在测试操作中生成 test.xml。
代码:execution
--[no]experimental_strict_fileset_output
默认值:“false”-
如果启用此选项,文件集将将所有输出工件视为常规文件。它们不会遍历目录,也不会对符号链接敏感。
代码:execution
--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”-
要运行的并发作业数。接受一个整数或关键字(“auto”“HOST_CPUS”“HOST_RAM”),可选地跟随运算 ([-|*]<float>),例如“auto”“HOST_CPUS*.5”。值必须介于 1 到 5000 之间。大于 2500 的值可能会导致内存问题。“auto”会根据主机资源计算合理的默认值。
代码:host_machine_resource_optimizations
、execution
--[no]keep_going
[-k
] 默认值:“false”-
在发生错误后尽可能继续。虽然无法分析失败的目标及其依赖项,但可以分析这些目标的其他前提条件。
代码:eagerness_to_exit
--loading_phase_threads=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5">
默认值:“auto”-
用于加载/分析阶段的并行线程数量。接受整数或关键字(“auto”“HOST_CPUS”“HOST_RAM”),可选地后跟运算 ([-|*]<float>),例如“auto”“HOST_CPUS*.5”。“auto”会根据主机资源设置合理的默认值。不得低于 1。
代码:bazel_internal_configuration
--modify_execution_info=<regex=[+-]key,regex=[+-]key,...>
默认值:“”-
根据操作助记符,在操作的执行信息中添加或移除键。仅适用于支持执行信息的操作。许多常见操作都支持执行信息,例如 Genrule、CppCompile、Javac、StarlarkAction、TestRunner。指定多个值时,顺序很重要,因为许多正则表达式都可能适用于同一助记符。
语法:“regex=[+-]key,regex=[+-]key,...”
示例:'.*=+x,.*=-y,.*=+z' 会将“x”和“z”添加到所有操作的执行信息中,并从中移除“y”。
“Genrule=+requires-x”会将“requires-x”添加到所有 Genrule 操作的执行信息中。
'(?!Genrule).*=-requires-x' 会从所有非 Genrule 操作的执行信息中移除“requires-x”。
代码:execution
、affects_outputs
、loading_and_analysis
--persistent_android_dex_desugar
-
使用 worker 启用永久性 Android dex 和脱糖操作。
展开为:
--strategy=Desugar=worker
--strategy=DexBuilder=worker
代码:host_machine_resource_optimizations
、execution
--persistent_android_resource_processor
-
使用工作器启用永久性 Android 资源处理器。
展开为:
--internal_persistent_busybox_tools
--strategy=AaptPackage=worker
--strategy=AndroidResourceParser=worker
--strategy=AndroidResourceValidator=worker
--strategy=AndroidResourceCompiler=worker
--strategy=RClassGenerator=worker
--strategy=AndroidResourceLink=worker
--strategy=AndroidAapt2=worker
--strategy=AndroidAssetMerger=worker
--strategy=AndroidResourceMerger=worker
--strategy=AndroidCompiledResourceMerger=worker
--strategy=ManifestMerger=worker
--strategy=AndroidManifestMerger=worker
--strategy=Aapt2Optimize=worker
--strategy=AARGenerator=worker
代码:host_machine_resource_optimizations
、execution
--persistent_multiplex_android_dex_desugar
-
使用工作器启用永久的多路复用 Android dex 和脱糖操作。
展开为:
--persistent_android_dex_desugar
--modify_execution_info=Desugar=+supports-multiplex-workers
--modify_execution_info=DexBuilder=+supports-multiplex-workers
代码:host_machine_resource_optimizations
、execution
--persistent_multiplex_android_resource_processor
-
使用工作器启用永久性多路复用 Android 资源处理器。
展开为:
--persistent_android_resource_processor
--modify_execution_info=AaptPackage=+supports-multiplex-workers
--modify_execution_info=AndroidResourceParser=+supports-multiplex-workers
--modify_execution_info=AndroidResourceValidator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceCompiler=+supports-multiplex-workers
--modify_execution_info=RClassGenerator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceLink=+supports-multiplex-workers
--modify_execution_info=AndroidAapt2=+supports-multiplex-workers
--modify_execution_info=AndroidAssetMerger=+supports-multiplex-workers
--modify_execution_info=AndroidResourceMerger=+supports-multiplex-workers
--modify_execution_info=AndroidCompiledResourceMerger=+supports-multiplex-workers
--modify_execution_info=ManifestMerger=+supports-multiplex-workers
--modify_execution_info=AndroidManifestMerger=+supports-multiplex-workers
--modify_execution_info=Aapt2Optimize=+supports-multiplex-workers
--modify_execution_info=AARGenerator=+supports-multiplex-workers
代码:host_machine_resource_optimizations
、execution
--persistent_multiplex_android_tools
-
启用持久性和多路复用 Android 工具(dex 编译、脱糖、资源处理)。
展开为:
--persistent_multiplex_android_resource_processor
--persistent_multiplex_android_dex_desugar
代码:host_machine_resource_optimizations
、execution
--spawn_strategy=<comma-separated list of options>
默认值:“”-
指定默认情况下如何执行 spawn 操作。接受以英文逗号分隔的策略列表,优先级从高到低。对于每个操作,Bazel 都会选择优先级最高且可以执行该操作的策略。默认值为“remote,worker,sandboxed,local”。如需了解详情,请参阅 https://blog.bazel.build/2019/06/19/list-strategy.html。
代码:execution
--strategy=<a '[name=]value1[,..,valueN]' assignment>
累计多次使用-
指定如何分发其他 spawn 操作的编译。接受以英文逗号分隔的策略列表,优先级从高到低。对于每个操作,Bazel 都会选择优先级最高且可以执行该操作的策略。默认值为“remote,worker,sandboxed,local”。此标志会替换由 --spawn_strategy 设置的值(以及 --genrule_strategy,如果与助记符 Genrule 一起使用)。如需了解详情,请参阅 https://blog.bazel.build/2019/06/19/list-strategy.html。
代码:execution
--strategy_regexp=<a '<RegexFilter>=value[,value]' assignment>
累计多次使用-
替换应用于执行与特定 regex_filter 匹配的说明的 spawn 操作的 spawn 策略。如需详细了解 regex_filter 匹配,请参阅 --per_file_copt。系统会使用与说明匹配的第一个 regex_filter。此选项会替换用于指定策略的其他标志。示例:--strategy_regexp=//foo.*\.cc,-//foo/bar=local 表示,如果操作的说明与 //foo.*.cc 匹配,但与 //foo/bar 不匹配,则使用本地策略运行操作。示例:--strategy_regexp='Compiling.*/bar=local --strategy_regexp=Compiling=sandboxed 将使用“local”策略运行“Compiling //foo/bar/baz”,但如果将顺序颠倒过来,则会使用“sandboxed”策略运行它。
代码:execution
- 用于配置用于执行操作的工具链的选项:
--android_compiler=<a string>
默认:请参阅说明-
Android 目标编译器。
代码:affects_outputs
、loading_and_analysis
、loses_incremental_state
--android_crosstool_top=<a build target label>
默认值:“//external:android/crosstool”-
用于 Android build 的 C++ 编译器的位置。
代码:affects_outputs
、changes_inputs
、loading_and_analysis
、loses_incremental_state
--android_grte_top=<a label>
默认:请参阅说明-
Android 目标 grte_top。
代码:changes_inputs
、loading_and_analysis
、loses_incremental_state
--android_manifest_merger=<legacy, android or force_android>
默认值:“android”-
选择要用于 android_binary 规则的清单合并工具。用于帮助从旧版合并工具过渡到 Android 清单合并工具的标志。
代码:affects_outputs
、loading_and_analysis
、loses_incremental_state
--android_platforms=<a build target label>
默认值:“”-
设置 android_binary 目标使用的平台。如果指定了多个平台,则二进制文件是 fat APK,其中包含每个指定目标平台的原生二进制文件。
代码:changes_inputs
、loading_and_analysis
、loses_incremental_state
--android_sdk=<a build target label>
默认值:“@bazel_tools//tools/android:sdk”-
指定用于构建 Android 应用的 Android SDK/平台。
代码:changes_inputs
、loading_and_analysis
、loses_incremental_state
--apple_compiler=<a string>
默认:请参阅说明-
Apple 目标编译器。非常适合选择工具链的变体(例如 xcode-beta)。
代码:affects_outputs
、loading_and_analysis
、loses_incremental_state
--apple_crosstool_top=<a build target label>
默认值:"@bazel_tools//tools/cpp:toolchain"-
要在 Apple 和 Objc 规则及其依赖项中使用的交叉工具软件包的标签。
代码:loses_incremental_state
、changes_inputs
--apple_grte_top=<a build target label>
默认:请参阅说明-
Apple 目标平台 grte_top。
代码:changes_inputs
、loading_and_analysis
、loses_incremental_state
--cc_output_directory_tag=<a string>
默认值:“”-
指定要添加到配置目录的后缀。
代码:affects_outputs
、explicit_in_output_path
--compiler=<a string>
默认:请参阅说明-
用于编译目标的 C++ 编译器。
代码:loading_and_analysis
、execution
--coverage_output_generator=<a build target label>
默认值:“@bazel_tools//tools/test:lcov_merger”-
用于对原始覆盖率报告进行后处理的二进制文件的位置。此文件分组目前必须包含单个文件(二进制文件)。默认为“//tools/test:lcov_merger”。
代码:changes_inputs
、affects_outputs
、loading_and_analysis
--coverage_report_generator=<a build target label>
默认值:“@bazel_tools//tools/test:coverage_report_generator”-
用于生成覆盖率报告的二进制文件的位置。此文件分组目前必须包含单个文件(二进制文件)。默认为“//tools/test:coverage_report_generator”。
代码:changes_inputs
、affects_outputs
、loading_and_analysis
--coverage_support=<a build target label>
默认值:“@bazel_tools//tools/test:coverage_support”-
收集代码覆盖率的每个测试操作的输入所需的支持文件的位置。默认为“//tools/test:coverage_support”。
代码:changes_inputs
、affects_outputs
、loading_and_analysis
--crosstool_top=<a build target label>
默认值:"@bazel_tools//tools/cpp:toolchain"-
要用于编译 C++ 代码的跨平台工具包的标签。
代码:loading_and_analysis
、changes_inputs
、affects_outputs
--custom_malloc=<a build target label>
默认:请参阅说明-
指定自定义 malloc 实现。此设置会替换 build 规则中的 malloc 属性。
代码:changes_inputs
、affects_outputs
--experimental_add_exec_constraints_to_targets=<a '<RegexFilter>=<label1>[,<label2>,...]' assignment>
累计多次使用-
以英文逗号分隔的正则表达式列表,每个正则表达式可以选择附加 -(负表达式)前缀,并将 (=) 分配给以英文逗号分隔的约束条件值目标列表。如果目标与任何否定表达式都不匹配,但与至少一个肯定表达式匹配,则其工具链解析将像声明限制值为执行限制一样执行。示例://demo,-test=@platforms//cpus:x86_64 会将“x86_64”添加到 //demo 下的所有目标(名称包含“test”的目标除外)。
代码:loading_and_analysis
--[no]experimental_enable_objc_cc_deps
默认值:“true”- 允许 objc_* 规则依赖于 cc_library,并导致在 --ios_multi_cpu 中的任何值为“ios_<--ios_cpu>”时,将 --cpu 设置为“ios_<--ios_cpu>”来构建任何 objc 依赖项。
代码:loading_and_analysis
、incompatible_change
--[no]experimental_include_xcode_execution_requirements
默认值:“false”-
如果设置,则为每个 Xcode 操作添加“requires-xcode:{version}”执行要求。如果 xcode 版本使用连字符标签,请还添加“requires-xcode-label:{version_label}”执行要求。
代码:loses_incremental_state
、loading_and_analysis
、execution
--[no]experimental_prefer_mutual_xcode
默认值:“true”-
如果为 true,则使用本地和远程都提供的最新 Xcode。如果为 false,或者没有可供共用的版本,则使用通过 xcode-select 选择的本地 Xcode 版本。
代码:loses_incremental_state
--extra_execution_platforms=<comma-separated list of options>
累计多次使用-
可用作执行平台来运行操作的平台。平台可以通过确切目标或目标模式进行指定。这些平台会优先于通过 register_execution_platforms() 在 WORKSPACE 文件中声明的平台得到考虑。
代码段:execution
--extra_toolchains=<comma-separated list of options>
累计多次使用-
在工具链解析期间要考虑的工具链规则。工具链可以按确切目标指定,也可以作为目标模式指定。系统会先考虑这些工具链,然后再考虑通过 register_toolchains() 在 WORKSPACE 文件中声明的工具链。
代码段:affects_outputs
、changes_inputs
、loading_and_analysis
--grte_top=<a label>
默认:请参阅说明-
一个已签入的 libc 库的标签。默认值由交叉工具链选择,您几乎不需要替换它。
代码:action_command_lines
、affects_outputs
--host_compiler=<a string>
默认:请参阅说明-
用于主机编译的 C++ 编译器。如果未设置 --host_crosstool_top,系统会忽略它。
代码:loading_and_analysis
、execution
--host_crosstool_top=<a build target label>
默认:请参阅说明-
默认情况下,--crosstool_top 和 --compiler 选项也用于主机配置。如果提供了此标志,Bazel 会为给定的 crosstool_top 使用默认的 libc 和编译器。
代码:loading_and_analysis
、changes_inputs
、affects_outputs
--host_grte_top=<a label>
默认:请参阅说明-
如果指定,此设置将替换主机配置的 libc 顶级目录 (--grte_top)。
代码:action_command_lines
、affects_outputs
--host_platform=<a build target label>
默认值:“”-
描述主机系统的平台规则的标签。
代码:affects_outputs
、changes_inputs
、loading_and_analysis
--[no]incompatible_disable_expand_if_all_available_in_flag_set
默认值:“true”-
如果为 true,则 Bazel 不允许在 flag_sets 中指定 expand_if_all_available(如需了解迁移说明,请参阅 https://github.com/bazelbuild/bazel/issues/7008)。
代码:loading_and_analysis
、incompatible_change
--[no]incompatible_dont_enable_host_nonhost_crosstool_features
默认值:“true”-
如果为 true,Bazel 将不会在 c++ 工具链中启用“主机”和“非主机”功能(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7407)。
代码:loading_and_analysis
、incompatible_change
--[no]incompatible_enable_android_toolchain_resolution
默认值:“false”-
使用工具链解析为 Android 规则选择 Android SDK(Starlark 和原生)
代码段:loading_and_analysis
、incompatible_change
--[no]incompatible_enable_apple_toolchain_resolution
默认值:“false”-
使用工具链解析为 Apple 规则选择 Apple SDK(Starlark 和原生)
代码段:loading_and_analysis
、incompatible_change
--[no]incompatible_make_thinlto_command_lines_standalone
默认值:“true”-
如果为 true,则 Bazel 不会将 C++ 链接操作命令行重复用于 lto 编制索引命令行(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/6791)。
代码:loading_and_analysis
、incompatible_change
--[no]incompatible_remove_cpu_and_compiler_attributes_from_cc_toolchain
默认值:“true”-
如果为 true,则在设置 cc_toolchain.cpu 和 cc_toolchain.compiler 属性时,Bazel 会发出警告(如需了解迁移说明,请参阅 https://github.com/bazelbuild/bazel/issues/7075)。
代码:loading_and_analysis
、incompatible_change
--[no]incompatible_remove_legacy_whole_archive
默认值:“true”-
如果为 true,则 Bazel 不会默认将库依赖项作为整个归档文件进行关联(如需了解迁移说明,请参阅 https://github.com/bazelbuild/bazel/issues/7362)。
代码:loading_and_analysis
、incompatible_change
--[no]incompatible_require_ctx_in_configure_features
默认值:“true”-
如果为 true,则 Bazel 会要求在 cc_common.configure_features 中添加“ctx”参数(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7793)。
代码:loading_and_analysis
、incompatible_change
-
如果工具链支持,请使用接口共享对象。目前,所有 ELF 工具链都支持此设置。
代码:loading_and_analysis
、affects_outputs
、affects_outputs
--ios_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认:请参阅说明-
指定用于构建 iOS 应用的 iOS SDK 版本。如果未指定,则使用“xcode_version”中的默认 iOS SDK 版本。
代码:loses_incremental_state
--macos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认:请参阅说明-
指定用于构建 macOS 应用的 macOS SDK 版本。如果未指定,则使用“xcode_version”中的默认 macOS SDK 版本。
代码:loses_incremental_state
--minimum_os_version=<a string>
默认:请参阅说明-
编译目标的最低操作系统版本。
代码:loading_and_analysis
、affects_outputs
--platform_mappings=<a relative path>
默认值:“”-
映射文件的位置,该文件描述了在未设置任何平台时应使用哪个平台,或者在平台已存在时应设置哪些标志。必须相对于主工作区根目录。默认为“platform_mappings”(位于工作区根目录下的文件)。
代码:affects_outputs
、changes_inputs
、loading_and_analysis
--platforms=<a build target label>
默认值:“”-
描述当前命令的目标平台的平台规则的标签。
代码:affects_outputs
、changes_inputs
、loading_and_analysis
--python2_path=<a string>
默认:请参阅说明-
已废弃,无操作。通过 `--incompatible_use_python_toolchains` 停用。
标记:no_op
、deprecated
--python3_path=<a string>
默认:请参阅说明-
已废弃,无操作。通过 `--incompatible_use_python_toolchains` 停用。
标记:no_op
、deprecated
--python_path=<a string>
默认:请参阅说明-
用于在目标平台上运行 Python 目标的 Python 解释器的绝对路径。已废弃;已通过 --incompatible_use_python_toolchains 停用。
代码:loading_and_analysis
、affects_outputs
--python_top=<a build target label>
默认:请参阅说明-
py_runtime 的标签,表示用于在目标平台上运行 Python 目标的调用 Python 解释器。已废弃;已通过 --incompatible_use_python_toolchains 停用。
代码:loading_and_analysis
、affects_outputs
--target_platform_fallback=<a build target label>
默认值:“@local_config_platform//:host”-
平台规则的标签。如果未设置目标平台,并且没有平台映射与当前的一组标志匹配,则应使用此平台规则。
代码:affects_outputs
、changes_inputs
、loading_and_analysis
--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>
默认:请参阅说明-
如果指定,则针对相关 build 操作使用给定版本的 Xcode。如果未指定,则使用执行器的默认 Xcode 版本。
代码:loses_incremental_state
--xcode_version_config=<a build target label>
默认值:“@bazel_tools//tools/cpp:host_xcodes”-
用于在 build 配置中选择 Xcode 版本的 xcode_config 规则的标签。
标记:loses_incremental_state
、loading_and_analysis
- 用于控制命令输出的选项:
--[no]apple_enable_auto_dsym_dbg
默认值:“false”-
是否强制为 dbg build 生成调试符号 (.dSYM) 文件。
代码:affects_outputs
、action_command_lines
--[no]apple_generate_dsym
默认值:“false”-
是否生成调试符号 (.dSYM) 文件。
代码:affects_outputs
、action_command_lines
--[no]build
默认值:“true”-
执行 build;这是常见行为。指定 --nobuild 会导致构建在执行构建操作之前停止,如果软件包加载和分析阶段成功完成,则返回 0;此模式对于测试这些阶段非常有用。
代码:execution
、affects_outputs
--[no]build_runfile_links
默认值:“true”-
如果为 true,则为所有目标构建 runfile 符号链接森林。如果为 false,则尽可能仅写入清单。
代码:affects_outputs
--[no]build_runfile_manifests
默认值:“true”-
如果为 true,则为所有目标写入 runfile 清单。如果为 false,请省略。如果为 false,本地测试将无法运行。
代码:affects_outputs
--[no]build_test_dwp
默认值:“false”-
如果启用此选项,则在使用 fission 静态构建 C++ 测试时,系统还会自动构建测试二进制文件的 .dwp 文件。
代码:loading_and_analysis
、affects_outputs
--cc_proto_library_header_suffixes=<comma-separated list of options>
默认值:“.pb.h”-
设置 cc_proto_library 创建的头文件的前缀。
代码:affects_outputs
、loading_and_analysis
--cc_proto_library_source_suffixes=<comma-separated list of options>
默认值:“.pb.cc”-
设置 cc_proto_library 创建的源文件的前缀。
代码:affects_outputs
、loading_and_analysis
--[no]experimental_proto_descriptor_sets_include_source_info
默认值:“false”-
在 proto_library 中针对备选 Java API 版本运行额外操作。
代码:affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_proto_extra_actions
默认值:“false”-
在 proto_library 中针对备选 Java API 版本运行额外操作。
代码:affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_run_validations
默认值:“true”-
请改用 --run_validations。
代码:execution
、affects_outputs
--[no]experimental_save_feature_state
默认值:“false”-
将启用和请求的功能的状态保存为编译输出。
代码:affects_outputs
、experimental
--[no]experimental_use_validation_aspect
默认值:“false”-
是否使用切面运行验证操作(用于与测试并行)。
代码:execution
、affects_outputs
--fission=<a set of compilation modes>
默认值:“no”-
指定哪些编译模式会针对 C++ 编译和链接使用 fission。可以是 {'fastbuild', 'dbg', 'opt'} 的任意组合,也可以是特殊值“yes”(启用所有模式)和“no”(停用所有模式)。
代码:loading_and_analysis
、action_command_lines
、affects_outputs
--[no]incompatible_always_include_files_in_data
默认值:“true”-
如果为 true,原生规则会将数据依赖项的 <code>DefaultInfo.files</code> 添加到其 runfile,这与 Starlark 规则的建议行为一致 (https://bazel.build/extending/rules#runfiles_features_to_avoid)。
代码:affects_outputs
、incompatible_change
--[no]legacy_external_runfiles
默认值:“true”-
如果为 true,则在 .runfiles/wsname/external/repo 下(以及 .runfiles/repo 下)为外部代码库构建 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。
代码:execution
、affects_outputs
--[no]run_validations
默认值:“true”-
是否在构建过程中运行验证操作。请参阅 https://bazel.build/extending/rules#validation_actions
代码段:execution
、affects_outputs
--[no]save_temps
默认值:“false”-
如果设置,系统会保存 gcc 的临时输出。这些文件包括 .s 文件(汇编代码)、.i 文件(预处理的 C 语言)和 .ii 文件(预处理的 C++ 语言)。
标记:affects_outputs
- 允许用户配置预期输出的选项,会影响其值,而不是其存在性:
--action_env=<a 'name=value' assignment with an optional value part>
累计多次使用-
指定具有目标配置的操作可用的一组环境变量。变量可以按名称指定,在这种情况下,值将从调用环境中获取;也可以通过名称=值对指定,这种情况下,值的设置不受调用环境的影响。此选项可多次使用;对于为同一变量指定的选项,最新的选项会胜出,不同变量的选项会累加。
代码:action_command_lines
--android_cpu=<a string>
默认值:“armeabi-v7a”-
Android 目标 CPU。
代码:affects_outputs
、loading_and_analysis
、loses_incremental_state
--[no]android_databinding_use_androidx
默认值:“false”-
生成与 AndroidX 兼容的数据绑定文件。此属性仅适用于数据绑定 v2。
代码:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]android_databinding_use_v3_4_args
默认值:“false”-
使用带有 3.4.0 参数的 Android DataBinding v2
代码段:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--android_dynamic_mode=<off, default or fully>
默认值:“off”-
确定当 cc_binary 未明确创建共享库时,Android 规则的 C++ 依赖项是否会动态链接。“default”表示 bazel 将选择是否动态链接。“完全”表示所有库都将动态关联。“off”表示所有库都将以完全静态模式关联。
代码:affects_outputs
、loading_and_analysis
--android_manifest_merger_order=<alphabetical, alphabetical_by_configuration or dependency>
默认值:“alphabetical”-
设置传递给 Android 二进制文件的清单的合并顺序。ALPHABETICAL 表示清单按相对于 execroot 的路径排序。ALPHABETICAL_BY_CONFIGURATION 表示清单会按相对于输出目录中配置目录的路径进行排序。DEPENDENCY 表示清单按顺序排列,每个库的清单都位于其依赖项的清单之前。
代码:action_command_lines
、execution
--[no]android_resource_shrinking
默认值:“false”-
为使用 ProGuard 的 android_binary APK 启用资源缩减。
代码:affects_outputs
、loading_and_analysis
--apple_bitcode=<'mode' or 'platform=mode', where 'mode' is none, embedded_markers or embedded, and 'platform' is ios, watchos, tvos, macos or catalyst>
累计多次使用-
为定位到设备架构的编译步骤指定 Apple 位码模式。值采用“[platform=]mode”的格式,其中平台(必须为“ios”“macos”“tvos”或“watchos”)为可选项。如果提供,则位码模式将专门应用于该平台;如果省略,则应用于所有平台。模式必须为“none”“embedded_markers”或“embedded”。此选项可以多次提供。
代码:loses_incremental_state
--aspects=<comma-separated list of options>
累计多次使用- 要应用于顶级目标的方面(以英文逗号分隔)。在列表中,如果某个 aspect some_aspect 通过 required_aspect_providers 指定了必需的 aspect 提供程序,则 some_aspect 将在 aspect 列表中其之前提及的每个 aspect 之后运行,并且这些 aspect 的所宣传的提供程序满足 some_aspect 的必需 aspect 提供程序。此外,some_aspect 将在其所有必需的 aspect(由 requires 属性指定)运行完毕后运行。然后,some_aspect 将能够访问这些 aspect 提供程序的值。<bzl-file-label>%<aspect_name>,例如“//tools:my_def.bzl%my_aspect”,其中“my_aspect”是文件 tools/my_def.bzl 中的顶级值
--[no]build_python_zip
默认值:“auto”-
构建 Python 可执行 ZIP 文件;在 Windows 上处于开启状态,在其他平台上处于关闭状态
代码:affects_outputs
--catalyst_cpus=<comma-separated list of options>
累计多次使用-
要为其构建 Apple Catalyst 二进制文件的架构的逗号分隔列表。
代码:loses_incremental_state
、loading_and_analysis
--[no]collect_code_coverage
默认值:“false”-
如果指定,Bazel 将插桩代码(尽可能使用离线插桩),并在测试期间收集覆盖率信息。只有与 --instrumentation_filter 匹配的目标会受到影响。通常,不应直接指定此选项,而应改用“bazel coverage”命令。
代码:affects_outputs
--compilation_mode=<fastbuild, dbg or opt>
[-c
] 默认:“fastbuild”-
指定二进制文件的构建模式。值:“fastbuild”“dbg”“opt”。
代码:affects_outputs
、action_command_lines
、explicit_in_output_path
--conlyopt=<a string>
累计多次使用-
在编译 C 源文件时传递给 gcc 的额外选项。
代码:action_command_lines
、affects_outputs
--copt=<a string>
累计多次使用-
要传递给 gcc 的其他选项。
代码:action_command_lines
、affects_outputs
--cpu=<a string>
默认值:“”-
目标 CPU。
代码:changes_inputs
、affects_outputs
、explicit_in_output_path
--cs_fdo_absolute_path=<a string>
默认:请参阅说明-
使用 CSFDO 配置文件信息优化编译。指定包含配置文件(原始或编入索引的 LLVM 配置文件)的 ZIP 文件的绝对路径名称。
代码:affects_outputs
--cs_fdo_instrument=<a string>
默认:请参阅说明-
使用情境感知 FDO 插桩生成二进制文件。对于 Clang/LLVM 编译器,它还接受在运行时将原始配置文件转储到的目录名称。
代码:affects_outputs
--cs_fdo_profile=<a build target label>
默认:请参阅说明-
cs_fdo_profile,表示要用于优化的上下文感知型配置文件。
代码:affects_outputs
--cxxopt=<a string>
累计多次使用-
在编译 C++ 源文件时传递给 gcc 的其他选项。
代码:action_command_lines
、affects_outputs
--define=<a 'name=value' assignment>
累计多次使用- 每个 --define 选项都指定了 build 变量的赋值。
代码:changes_inputs
、affects_outputs
--dynamic_mode=<off, default or fully>
默认值:“default”-
确定是否将动态链接 C++ 二进制文件。“default”表示 Bazel 将选择是否动态链接。“完全”表示所有库都将动态关联。“off”表示所有库都将以完全静态模式关联。
代码:loading_and_analysis
、affects_outputs
--[no]enable_fdo_profile_absolute_path
默认值:“true”-
如果设置,使用 fdo_absolute_profile_path 将会引发错误。
代码:affects_outputs
--[no]enable_runfiles
默认值:“auto”-
启用 runfiles 符号链接树;默认情况下,在 Windows 和其他平台上处于关闭状态。
代码:affects_outputs
--experimental_action_listener=<a build target label>
累计多次使用- 已废弃,取而代之的是 aspect。使用 action_listener 将 extra_action 附加到现有 build 操作。
代码:execution
、experimental
--[no]experimental_android_compress_java_resources
默认值:“false”-
压缩 APK 中的 Java 资源
代码段:affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_android_databinding_v2
默认值:“false”-
使用 Android DataBinding v2
代码段:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]experimental_android_resource_shrinking
默认值:“false”-
为使用 ProGuard 的 android_binary APK 启用资源缩减。
代码:affects_outputs
、loading_and_analysis
--[no]experimental_android_rewrite_dexes_with_rex
默认值:“false”-
使用 rex 工具重写 dex 文件
代码段:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]experimental_convenience_symlinks
默认值:“normal”-
此标志用于控制便捷符号链接(构建后在工作区中显示的符号链接)的管理方式。可能的值:
normal(默认):系统会根据 build 创建或删除每种便捷符号链接。
clean:系统将无条件删除所有符号链接。
ignore:系统会保留符号链接。
log_only:生成日志消息,就像传递了“normal”一样,但实际上不会执行任何文件系统操作(对工具很有用)。
请注意,只有名称由 --symlink_prefix 的当前值生成的符号链接会受到影响;如果前缀发生变化,所有现有符号链接都将保持不变。
代码:affects_outputs
--[no]experimental_convenience_symlinks_bep_event
默认值:“false”-
此标志用于控制我们是否将 build eventConvenienceSymlinksIdentified 发布到 BuildEventProtocol。如果值为 true,BuildEventProtocol 将包含 convenienceSymlinksIdentified 条目,其中列出了在您的工作区中创建的所有便捷符号链接。如果为 false,则 BuildEventProtocol 中的 convenienceSymlinksIdentified 条目将为空。
代码:affects_outputs
--experimental_multi_cpu=<comma-separated list of options>
累计多次使用-
已弃用。无操作。
代码:affects_outputs
、experimental
--experimental_objc_fastbuild_options=<comma-separated list of options>
默认值:“-O0,-DDEBUG=1”-
将这些字符串用作 objc fastbuild 编译器选项。
代码:action_command_lines
--[no]experimental_omitfp
默认值:“false”-
如果为 true,则使用 libunwind 进行堆栈展开,并使用 -fomit-frame-pointer 和 -fasynchronous-unwind-tables 进行编译。
代码:action_command_lines
、affects_outputs
、experimental
--[no]experimental_platform_in_output_dir
默认值:“false”-
如果为 true,则输出目录名称中使用目标平台,而不是 CPU。
代码:affects_outputs
、experimental
--[no]experimental_use_llvm_covmap
默认值:“false”-
如果指定,在启用 collect_code_coverage 时,Bazel 将生成 llvm-cov 覆盖率映射信息,而不是 gcov。
代码:changes_inputs
、affects_outputs
、loading_and_analysis
、experimental
--fat_apk_cpu=<comma-separated list of options>
默认值:“armeabi-v7a”-
设置此选项可启用胖 APK,其中包含适用于所有指定目标架构的原生二进制文件,例如--fat_apk_cpu=x86,armeabi-v7a. 如果指定此标志,则系统会忽略 android_binary 规则的依赖项的 --android_cpu。
代码:affects_outputs
、loading_and_analysis
、loses_incremental_state
--[no]fat_apk_hwasan
默认值:“false”-
是否创建 HWASAN 分块。
代码:affects_outputs
、loading_and_analysis
、loses_incremental_state
--fdo_instrument=<a string>
默认:请参阅说明-
使用 FDO 插桩生成二进制文件。对于 Clang/LLVM 编译器,它还接受在运行时将原始配置文件转储到的目录名称。
代码:affects_outputs
--fdo_optimize=<a string>
默认:请参阅说明-
使用 FDO 配置文件信息优化编译。指定包含 .gcda 文件树、包含自动配置文件的 afdo 文件或 LLVM 配置文件的 ZIP 文件的名称。此标志还接受指定为标签的文件(例如 `//foo/bar:file.afdo` - 您可能需要向相应的软件包添加 `exports_files` 指令),以及指向 `fdo_profile` 目标的标签。此标志将被 `fdo_profile` 规则取代。
代码:affects_outputs
--fdo_prefetch_hints=<a build target label>
默认:请参阅说明-
使用缓存预取提示。
代码:affects_outputs
--fdo_profile=<a build target label>
默认:请参阅说明-
表示要用于优化的配置文件的 fdo_profile。
代码:affects_outputs
--features=<a string>
累计多次使用-
默认情况下,系统会为所有软件包启用或停用指定的功能。指定 -<feature> 会在全球范围内停用该功能。否定地图项始终会覆盖肯定地图项。此标志用于在不发布 Bazel 版本的情况下发布默认功能更改。
代码:changes_inputs
、affects_outputs
--[no]force_pic
默认值:“false”-
如果启用,所有 C++ 编译都会生成位置无关代码(“-fPIC”),链接会优先使用 PIC 预构建库而非非 PIC 库,并且链接会生成位置无关可执行文件(“-pie”)。
代码:loading_and_analysis
、affects_outputs
--host_action_env=<a 'name=value' assignment with an optional value part>
累计多次使用-
指定具有主机或执行配置的操作可用的一组环境变量。变量可以按名称指定,在这种情况下,值将从调用环境中获取;也可以通过名称=值对指定,这种情况下,值的设置不受调用环境的影响。此选项可多次使用;对于为同一变量指定的选项,最新的选项会胜出,不同变量的选项会累加。
代码:action_command_lines
--host_compilation_mode=<fastbuild, dbg or opt>
默认值:“opt”-
指定构建期间使用的工具将内置的模式。值:“fastbuild”“dbg”“opt”。
代码:affects_outputs
、action_command_lines
--host_conlyopt=<a string>
累计多次使用-
在为宿主工具编译 C 源文件时传递给 gcc 的额外选项。
代码:action_command_lines
、affects_outputs
--host_copt=<a string>
累计多次使用-
要传递给 gcc 以供宿主工具使用的其他选项。
代码:action_command_lines
、affects_outputs
--host_cpu=<a string>
默认值:“”-
主机 CPU。
代码:changes_inputs
、affects_outputs
--host_cxxopt=<a string>
累计多次使用-
要传递给 gcc 以供主机工具使用的其他选项。
代码:action_command_lines
、affects_outputs
--host_force_python=<PY2 or PY3>
默认:请参阅说明-
替换主机配置的 Python 版本。可以是“PY2”或“PY3”。
代码:loading_and_analysis
、affects_outputs
--host_linkopt=<a string>
累计多次使用-
在关联主机工具时传递给 gcc 的其他选项。
代码:action_command_lines
、affects_outputs
--host_macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认:请参阅说明-
主机目标的最低兼容 macOS 版本。如果未指定,则使用“macos_sdk_version”。
代码:loses_incremental_state
--host_per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options>
累计多次使用-
在主机或执行配置中编译特定文件时,可选择性地传递给 C/C++ 编译器的其他选项。此选项可以多次传递。语法:regex_filter@option_1,option_2,...,option_n。其中,regex_filter 表示包含和排除正则表达式模式的列表(另请参阅 --instrumentation_filter)。option_1 到 option_n 表示任意命令行选项。如果选项包含英文逗号,则必须用反斜杠括起来。选项可以包含 @。只有第一个 @ 用于拆分字符串。示例:--host_per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 会将 -O0 命令行选项添加到 //foo/ 中所有 cc 文件(除了 bar.cc)的 gcc 命令行。
代码:action_command_lines
、affects_outputs
--host_swiftcopt=<a string>
累计多次使用-
可传递给 swiftc 以供宿主工具使用的其他选项。
代码:action_command_lines
、affects_outputs
--[no]incompatible_avoid_conflict_dlls
默认值:“true”-
如果启用此功能,Windows 上由 cc_library 生成的所有 C++ 动态链接库 (DLL) 都将重命名为 name_{hash}.dll,其中 hash 是根据 RepositoryName 和 DLL 的软件包路径计算得出的。如果有一个软件包依赖于多个同名 cc_library(例如 //foo/bar1:utils 和 //foo/bar2:utils),此选项非常有用。
代码:loading_and_analysis
、affects_outputs
、incompatible_change
--[no]incompatible_merge_genfiles_directory
默认值:“true”-
如果为 true,则 genfiles 目录会折叠到 bin 目录中。
代码:affects_outputs
、incompatible_change
--[no]incompatible_use_platforms_repo_for_constraints
默认值:“true”-
如果为 true,系统会移除 @bazel_tools 中的约束条件设置。
代码:affects_outputs
、incompatible_change
--[no]instrument_test_targets
默认值:“false”-
启用覆盖率时,指定是否考虑插桩测试规则。设置后,将检测 --instrumentation_filter 包含的测试规则。 否则,测试规则始终会从覆盖率插桩中排除。
代码:affects_outputs
--instrumentation_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths>
默认:“-/javatests[/:],-/test/java[/:]”-
启用覆盖范围后,只有名称包含在指定的基于正则表达式的过滤器中的规则才会被检测。 系统会排除带有“-”前缀的规则。请注意,除非启用 --instrument_test_targets,否则系统只会插桩非测试规则。
代码:affects_outputs
--ios_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认:请参阅说明-
目标模拟器和设备的最低兼容 iOS 版本。如果未指定,则使用“ios_sdk_version”。
代码:loses_incremental_state
--ios_multi_cpus=<comma-separated list of options>
累计多次使用-
用于构建 ios_application 的架构的逗号分隔列表。结果是一个包含所有指定架构的通用二进制文件。
代码:loses_incremental_state
、loading_and_analysis
--[no]legacy_whole_archive
默认值:“true”-
已废弃,已被 --incompatible_remove_legacy_whole_archive 取代(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7362)。启用后,对于 linkshared=True 且 linkopts 中包含 linkstatic=True 或“-static”的 cc_binary 规则,请使用 --whole-archive。这只是为了向后兼容。更好的替代方案是在需要时使用 alwayslink=1。
代码:action_command_lines
、affects_outputs
、deprecated
--linkopt=<a string>
累计多次使用-
在链接时传递给 gcc 的其他选项。
代码:action_command_lines
、affects_outputs
--ltobackendopt=<a string>
累计多次使用-
用于传递到 LTO 后端步骤的其他选项(在 --features=thin_lto 下)。
代码:action_command_lines
、affects_outputs
--ltoindexopt=<a string>
累计多次使用-
传递给 LTO 索引编制步骤的其他选项(在 --features=thin_lto 下)。
代码:action_command_lines
、affects_outputs
--macos_cpus=<comma-separated list of options>
累计多次使用-
要为其构建 Apple macOS 二进制文件的架构的逗号分隔列表。
代码:loses_incremental_state
、loading_and_analysis
--macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认:请参阅说明-
目标平台的最低兼容 macOS 版本。如果未指定,则使用“macos_sdk_version”。
代码:loses_incremental_state
--[no]objc_debug_with_GLIBCXX
默认值:“false”-
如果已设置且编译模式设置为“dbg”,请定义 GLIBCXX_DEBUG、GLIBCXX_DEBUG_PEDANTIC 和 GLIBCPP_CONCEPT_CHECKS。
代码:action_command_lines
--[no]objc_enable_binary_stripping
默认值:“false”-
确定是否对已链接的二进制文件执行符号和死代码剥离。如果同时指定此标志和 --compilation_mode=opt,系统将执行二进制剥离。
代码:action_command_lines
--objccopt=<a string>
累计多次使用-
在编译 Objective-C/C++ 源文件时传递给 gcc 的其他选项。
代码:action_command_lines
--per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options>
累计多次使用-
在编译特定文件时,有选择地传递给 gcc 的其他选项。此选项可以多次传递。语法:regex_filter@option_1,option_2,...,option_n。其中,regex_filter 表示包含和排除正则表达式模式的列表(另请参阅 --instrumentation_filter)。option_1 到 option_n 表示任意命令行选项。如果选项包含英文逗号,则必须用反斜杠括起来。选项可以包含 @。只有第一个 @ 用于拆分字符串。示例:--per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 会将 -O0 命令行选项添加到 //foo/ 中所有 cc 文件(除了 bar.cc)的 gcc 命令行。
代码:action_command_lines
、affects_outputs
--per_file_ltobackendopt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options>
累计多次使用-
在编译某些后端对象时,用于选择性传递给 LTO 后端的其他选项(在 --features=thin_lto 下)。此选项可以多次传递。语法:regex_filter@option_1,option_2,...,option_n。其中,regex_filter 表示包含和排除正则表达式模式的列表。option_1 到 option_n 表示任意命令行选项。如果选项包含英文逗号,则必须用反斜杠括起来。选项可以包含 @。只有第一个 @ 用于拆分字符串。示例:--per_file_ltobackendopt=//foo/.*\.o,-//foo/bar\.o@-O0 会将 -O0 命令行选项添加到 //foo/ 中所有 o 文件(bar.o 除外)的 LTO 后端命令行。
代码段:action_command_lines
、affects_outputs
--platform_suffix=<a string>
默认:请参阅说明-
指定要添加到配置目录的后缀。
代码:loses_incremental_state
、affects_outputs
、loading_and_analysis
--propeller_optimize=<a build target label>
默认:请参阅说明-
使用 Propeller 配置文件信息优化 build 目标。Propeller 配置文件必须至少包含以下两个文件之一:cc 配置文件和 ld 配置文件。此标志接受 build 标签,该标签必须引用螺旋桨配置文件输入文件。例如,定义标签的 BUILD 文件:a/b/BUILD:propeller_optimize( name = "propeller_profile", cc_profile = "propeller_cc_profile.txt", ld_profile = "propeller_ld_profile.txt",) 您可能需要向相应的软件包添加 exports_files 指令,以便 Bazel 能够看到这些文件。该选项的使用方式必须为:--propeller_optimize=//a/b:propeller_profile
代码:action_command_lines
、affects_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
-
如果为 true,则包含相同功能的原生库将在不同目标之间共享
代码:loading_and_analysis
、affects_outputs
--[no]stamp
默认值:“false”-
使用日期、用户名、主机名、工作区信息等对二进制文件进行标记。
标记:affects_outputs
--strip=<always, sometimes or never>
默认值:“有时”-
指定是否要剥离二进制文件和共享库(使用“-Wl,--strip-debug”)。“sometimes”的默认值表示仅当 --compilation_mode=fastbuild 时才进行剥离。
代码:affects_outputs
--stripopt=<a string>
累计多次使用-
生成“<name>.stripped”二进制文件时要传递给 strip 的其他选项。
代码:action_command_lines
、affects_outputs
--swiftcopt=<a string>
累计多次使用-
要传递给 Swift 编译的其他选项。
代码:action_command_lines
--symlink_prefix=<a string>
默认:请参阅说明-
在构建后创建的任何便捷符号链接之前附加的前缀。如果省略,默认值为 build 工具的名称后跟连字符。如果传递“/”,则系统不会创建任何符号链接,也不会发出任何警告。警告:适用于“/”的特殊功能即将被弃用;请改用 --experimental_convenience_symlinks=ignore。
代码:affects_outputs
--tvos_cpus=<comma-separated list of options>
累计多次使用-
要构建 Apple tvOS 二进制文件的架构的逗号分隔列表。
代码:loses_incremental_state
、loading_and_analysis
--tvos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认:请参阅说明-
目标模拟器和设备的最低兼容 tvOS 版本。如果未指定,则使用“tvos_sdk_version”。
代码:loses_incremental_state
--watchos_cpus=<comma-separated list of options>
累计多次使用-
要构建 Apple watchOS 二进制文件的架构的逗号分隔列表。
代码:loses_incremental_state
、loading_and_analysis
--watchos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认:请参阅说明-
目标模拟器和设备的最低兼容 watchOS 版本。如果未指定,则使用“watchos_sdk_version”。
代码:loses_incremental_state
--xbinary_fdo=<a build target label>
默认:请参阅说明-
使用 XbinaryFDO 配置文件信息优化编译。指定默认交叉二进制配置文件的名称。当此选项与 --fdo_instrument/--fdo_optimize/--fdo_profile 一起使用时,这些选项始终会优先,就像从未指定 xbinary_fdo 一样。
代码:affects_outputs
- 影响 Bazel 强制执行有效 build 输入(规则定义、标志组合等)的严格程度的选项:
--auto_cpu_environment_group=<a build target label>
默认值:“”-
声明要用于自动将 cpu 值映射到 target_environment 值的 environment_group。
代码:changes_inputs
、loading_and_analysis
、experimental
--[no]check_licenses
默认值:“false”-
检查依赖项软件包强加的许可限制是否与正在构建的目标的发布模式冲突。默认情况下,系统不会检查许可。
代码:build_file_semantics
--[no]check_visibility
默认值:“true”-
如果停用,目标依赖项中的可见性错误会降级为警告。
代码:build_file_semantics
--[no]desugar_for_android
默认值:“true”-
在 dexing 之前是否要脱糖 Java 8 字节码。
代码:affects_outputs
、loading_and_analysis
、loses_incremental_state
--[no]desugar_java8_libs
默认值:“false”-
确定是否应在面向旧版设备的应用中添加受支持的 Java 8 库。
代码:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]enforce_constraints
默认值:“true”-
检查每个目标与哪些环境兼容,如果有任何目标的依赖项不支持相同的环境,则报告错误
代码:build_file_semantics
--[no]experimental_allow_android_library_deps_without_srcs
默认值:“false”- 标志,用于帮助从允许到禁止使用依赖项的无源代码 android_library 规则进行过渡。默认情况下,需要清理仓库才能推出此功能。
代码:eagerness_to_exit
、loading_and_analysis
--[no]experimental_check_desugar_deps
默认值:“true”-
确定是否在 Android 二进制级别仔细检查是否正确脱糖。
代码:eagerness_to_exit
、loading_and_analysis
、experimental
--experimental_import_deps_checking=<off, warning or error>
默认值:“OFF”-
启用后,检查 aar_import 的依赖项是否已完成。此强制执行可能会破坏 build,也可能只会导致警告。
代码:loading_and_analysis
--experimental_strict_java_deps=<off, warn, error, strict or default>
默认值:“default”-
如果为 true,则检查 Java 目标是否明确将所有直接使用的目标声明为依赖项。
代码:build_file_semantics
、eagerness_to_exit
--[no]incompatible_check_testonly_for_output_files
默认值:“false”-
如果启用,则通过查找生成规则的 testonly 来检查输出文件的先决条件目标的 testonly。这与可见性检查一致。
代码:build_file_semantics
、incompatible_change
--[no]incompatible_disable_native_android_rules
默认值:“false”-
如果启用,系统会停用直接使用原生 Android 规则的功能。请使用 https://github.com/bazelbuild/rules_android 中的 Starlark Android 规则
代码段:eagerness_to_exit
、incompatible_change
--[no]incompatible_disable_native_apple_binary_rule
默认值:“false”-
无操作。保留此处是为了向后兼容。
代码:eagerness_to_exit
、incompatible_change
--[no]incompatible_force_strict_header_check_from_starlark
默认值:“true”-
如果启用,请在 Starlark API 中设置严格的标头检查
标记:loading_and_analysis
、changes_inputs
、incompatible_change
--[no]incompatible_validate_top_level_header_inclusions
默认值:“true”-
如果为 true,Bazel 还会验证顶级目录头文件包含情况(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/10047)。
代码:loading_and_analysis
、incompatible_change
--[no]strict_filesets
默认值:“false”-
如果此选项处于启用状态,则系统会将跨越软件包边界的文件集报告为错误。停用 check_fileset_dependencies_recursively 后,此方法不起作用。
代码:build_file_semantics
、eagerness_to_exit
--strict_proto_deps=<off, warn, error, strict or default>
默认值:“error”-
除非设为 OFF,否则会检查 proto_library 目标是否明确将所有直接使用的目标声明为依赖项。
代码:build_file_semantics
、eagerness_to_exit
、incompatible_change
--strict_public_imports=<off, warn, error, strict or default>
默认值:“off”-
除非处于“OFF”状态,否则会检查 proto_library 目标是否明确将“import public”中使用的所有目标声明为导出。
代码:build_file_semantics
、eagerness_to_exit
、incompatible_change
--[no]strict_system_includes
默认值:“false”-
如果为 true,则还需要声明通过系统包含路径 (-isystem) 找到的头文件。
代码:loading_and_analysis
、eagerness_to_exit
--target_environment=<a build target label>
累计多次使用-
声明此 build 的目标环境。必须是指向“environment”规则的标签引用。如果指定了此属性,则所有顶级目标都必须与此环境兼容。
代码:changes_inputs
- 影响 build 签名输出的选项:
--apk_signing_method=<v1, v2, v1_v2 or v4>
默认值:“v1_v2”-
用于对 APK 进行签名的实现
代码段:action_command_lines
、affects_outputs
、loading_and_analysis
--[no]device_debug_entitlements
默认值:“true”-
如果已设置且编译模式不是“opt”,则 objc 应用在签名时会包含调试权限。
代码:changes_inputs
--ios_signing_cert_name=<a string>
默认:请参阅说明-
用于 iOS 签名的证书名称。如果未设置,则会回退为配置文件。可以是证书的钥匙串身份偏好设置,也可以是证书公用名的子字符串(根据 codesign 的手册页 [SIGNING 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_analysis
、incompatible_change
--[no]incompatible_disallow_legacy_py_provider
默认值:“true”-
无操作,即将被移除。
代码:loading_and_analysis
、incompatible_change
--[no]incompatible_enforce_config_setting_visibility
默认值:“true”-
如果为 true,则强制执行 config_setting 可见性限制。如果为 false,则每个 config_setting 对每个目标都是可见的。请参阅 https://github.com/bazelbuild/bazel/issues/12932。
标记:loading_and_analysis
、incompatible_change
- 用于控制测试环境或测试运行程序行为的选项:
--[no]allow_analysis_failures
默认值:“false”-
如果为 true,规则目标的分析失败会导致目标传播包含错误说明的 AnalysisFailureInfo 实例,而不是导致构建失败。
代码:loading_and_analysis
、experimental
--analysis_testing_deps_limit=<an integer>
默认值:“2000”-
通过具有 for_analysis_testing 配置转换的规则属性设置传递依赖项的数量上限。超出此限制将导致规则错误。
代码:loading_and_analysis
--[no]break_build_on_parallel_dex2oat_failure
默认值:“false”-
如果为 true,则 dex2oat 操作失败会导致 build 中断,而不是在测试运行时执行 dex2oat。
代码:loading_and_analysis
、experimental
--[no]check_tests_up_to_date
默认值:“false”-
请勿运行测试,只需检查测试是否是最新的。如果所有测试结果都是最新的,则测试会成功完成。如果需要构建或执行任何测试,系统会报告错误,并且测试会失败。此选项暗示 --check_up_to_date 行为。
代码:execution
--[no]experimental_android_use_parallel_dex2oat
默认值:“false”-
并行使用 dex2oat,可能会加快 android_test 的速度。
代码:loading_and_analysis
、host_machine_resource_optimizations
、experimental
--flaky_test_attempts=<a positive integer, the string "default", or test_regex@attempts. This flag may be passed more than once>
累计多次使用-
如果任何测试失败,系统最多会重试指定的次数。需要多次尝试才能通过的测试会在测试摘要中标记为“不稳定”。通常,指定的值只是一个整数或字符串“default”。如果为整数,则所有测试最多会运行 N 次。如果为“default”,则系统只会针对常规测试进行一次测试尝试,针对由规则明确标记为不稳定的测试(flaky=1 属性)进行三次测试尝试。备用语法:regex_filter@flaky_test_attempts。其中,flaky_test_attempts 如上所示,regex_filter 表示包含和排除正则表达式模式的列表(另请参阅 --runs_per_test)。示例:--flaky_test_attempts=//foo/.*,-//foo/bar/.*@3 会对 //foo/ 中的所有测试(除了 foo/bar 下的测试)进行三次去除不稳定性处理。此选项可以多次传递。最晚传递的匹配实参优先。如果没有任何匹配项,则行为与上述“默认”相同。
代码:execution
--[no]ios_memleaks
默认值:“false”-
启用在 ios_test 目标中检查内存泄露。
代码:action_command_lines
--ios_simulator_device=<a string>
默认:请参阅说明-
在模拟器中运行 iOS 应用时要模拟的设备,例如“iPhone 6”。您可以在将要运行模拟器的机器上运行“xcrun simctl list devicetypes”以获取设备列表。
代码:test_runner
--ios_simulator_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认:请参阅说明-
在运行或测试时,要在模拟器上运行的 iOS 版本。如果 ios_test 规则中指定了目标设备,则系统会忽略此属性。
代码:test_runner
--local_test_jobs=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5">
默认值:“auto”-
可并发运行的本地测试作业数上限。接受一个整数或关键字(“auto”“HOST_CPUS”“HOST_RAM”),可选地跟随运算 ([-|*]<float>),例如“auto”“HOST_CPUS*.5”。0 表示本地资源将限制并发运行的本地测试作业的数量。如果将此值设置为大于 --jobs 的值,则无效。
代码:execution
--runs_per_test=<a positive integer or test_regex@runs. This flag may be passed more than once>
累计多次使用- 指定运行每个测试的次数。如果其中任何一次尝试因任何原因而失败,则整个测试都将被视为失败。通常,指定的值只是一个整数。示例:--runs_per_test=3 将会运行所有测试 3 次。备选语法:regex_filter@runs_per_test。其中,runs_per_test 表示一个整数值,regex_filter 表示包含和排除正则表达式模式的列表(另请参阅 --instrumentation_filter)。示例:--runs_per_test=//foo/.*,-//foo/bar/.*@3 会运行 //foo/ 中的所有测试(foo/bar 下的测试除外)三次。此选项可以多次传递。最晚传递的匹配实参优先。如果没有任何匹配项,则仅运行一次测试。
--test_env=<a 'name=value' assignment with an optional value part>
累计多次使用-
指定要注入到测试运行程序环境中的其他环境变量。变量可以按名称指定(在这种情况下,其值将从 Bazel 客户端环境读取),也可以按名称-值对指定。您可以多次使用此选项来指定多个变量。仅供“bazel test”命令使用。
代码:test_runner
--[no]test_keep_going
默认值:“true”-
停用后,任何未通过的测试都将导致整个 build 停止。默认情况下,系统会运行所有测试,即使其中有些测试未通过也是如此。
代码: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”使用的基准临时目录。
--tvos_simulator_device=<a string>
默认:请参阅说明-
在模拟器中运行 tvOS 应用时要模拟的设备,例如“Apple TV 1080p”。您可以在将要运行模拟器的机器上运行“xcrun simctl list devicetypes”以获取设备列表。
代码:test_runner
--tvos_simulator_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认:请参阅说明-
运行或测试时要在模拟器上运行的 tvOS 版本。
代码:test_runner
--watchos_simulator_device=<a string>
默认:请参阅说明-
在模拟器中运行 watchOS 应用时要模拟的设备,例如“Apple Watch - 38 毫米”。您可以在将要运行模拟器的机器上运行“xcrun simctl list devicetypes”以获取设备列表。
代码:test_runner
--watchos_simulator_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认:请参阅说明-
运行或测试时要在模拟器上运行的 watchOS 版本。
代码:test_runner
--[no]zip_undeclared_test_outputs
默认值:“true”-
如果为 true,则未声明的测试输出将归档到 zip 文件中。
标记:test_runner
- 触发构建时间优化的选项:
--[no]collapse_duplicate_defines
默认值:“false”-
启用后,系统会在构建阶段提前移除多余的 --define。这样可以避免某些类型的等效 build 不必要地丢失分析缓存。
代码:loading_and_analysis
、loses_incremental_state
--[no]experimental_filter_library_jar_with_program_jar
默认值:“false”-
过滤 ProGuard ProgramJar,以移除 LibraryJar 中也存在的所有类。
代码:action_command_lines
--[no]experimental_inmemory_dotd_files
默认值:“true”-
如果启用,C++ .d 文件将直接从远程构建节点在内存中传递,而不是写入磁盘。
代码:loading_and_analysis
、execution
、affects_outputs
、experimental
--[no]experimental_inmemory_jdeps_files
默认值:“true”-
如果启用,从 Java 编译生成的依赖项 (.jdeps) 文件将直接从远程构建节点在内存中传递,而不是写入磁盘。
代码:loading_and_analysis
、execution
、affects_outputs
、experimental
--[no]experimental_objc_include_scanning
默认值:“false”-
是否要针对 Objective-C/C++ 执行包含扫描。
代码:loading_and_analysis
、execution
、changes_inputs
--[no]experimental_parse_headers_skipped_if_corresponding_srcs_found
默认值:“false”-
如果启用,当在同一目标中找到具有相同 basename 的源代码时,parse_headers 功能不会创建单独的头文件编译操作。
代码:loading_and_analysis
、affects_outputs
--[no]experimental_retain_test_configuration_across_testonly
默认值:“false”-
启用后,--trim_test_configuration 不会修剪标记为 testonly=1 的规则的测试配置。这是为了减少在非测试规则依赖于 cc_test 规则时出现的操作冲突问题。如果 --trim_test_configuration 为 false,则无效。
代码:loading_and_analysis
、loses_incremental_state
--[no]experimental_starlark_cc_import
默认值:“false”-
如果启用,则可以使用 Starlark 版本的 cc_import。
代码:loading_and_analysis
、experimental
--[no]experimental_unsupported_and_brittle_include_scanning
默认值:“false”-
确定是否通过解析输入文件中的 #include 行来缩小 C/C++ 编译的输入范围。这可以通过缩减编译输入树的大小来提高性能和增量性。不过,它也可能会破坏 build,因为包含扫描器未完全实现 C 预处理器语义。具体而言,它不理解动态 #include 指令,并会忽略预处理器条件逻辑。使用时需自行承担风险。与此举报相关的所有已提交问题都将关闭。
代码:loading_and_analysis
、execution
、changes_inputs
--[no]incremental_dexing
默认值:“true”- 会为每个 Jar 文件单独执行大部分 dex 处理工作。
代码:affects_outputs
、loading_and_analysis
、loses_incremental_state
--[no]objc_use_dotd_pruning
默认值:“true”-
如果设置,clang 发出的 .d 文件将用于修剪传入 objc 编译的输入集。
代码:changes_inputs
、loading_and_analysis
--[no]process_headers_in_dependencies
默认值:“false”-
构建目标 //a:a 时,处理 //a:a 依赖的所有目标中的头文件(如果为工具链启用了头文件处理)。
代码:execution
--[no]trim_test_configuration
默认值:“true”-
启用后,系统会在 build 的顶级下清除与测试相关的选项。当此标志处于启用状态时,测试无法构建为非测试规则的依赖项,但对测试相关选项所做的更改不会导致系统重新分析非测试规则。
代码:loading_and_analysis
、loses_incremental_state
--[no]use_singlejar_apkbuilder
默认值:“true”-
此选项已废弃。该参数现在已无效,很快就会被移除。
标记:loading_and_analysis
- 影响日志记录详细程度、格式或位置的选项:
--[no]announce
默认值:“false”-
已弃用。无操作。
代码:affects_outputs
--[no]experimental_bep_target_summary
默认值:“false”- 是否发布 TargetSummary 事件。
--[no]experimental_build_event_expand_filesets
默认值:“false”-
如果为 true,则在显示输出文件时在 BEP 中展开文件集。
代码:affects_outputs
--[no]experimental_build_event_fully_resolve_fileset_symlinks
默认值:“false”-
如果为 true,则在显示输出文件时,在 BEP 中完全解析相对文件集符号链接。需要使用 --experimental_build_event_expand_filesets。
代码:affects_outputs
--experimental_build_event_upload_max_retries=<an integer>
默认值:“4”-
Bazel 应重试上传 build 事件的次数上限。
代码: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_stream_log_file_uploads
默认值:“false”-
流式日志文件会直接上传到远程存储空间,而不是写入磁盘。
代码:affects_outputs
--explain=<a path>
默认:请参阅说明-
指示构建系统说明构建的每个已执行步骤。说明会写入指定的日志文件。
代码:affects_outputs
--[no]legacy_important_outputs
默认值:“true”-
使用此选项可抑制在 TargetComplete 事件中生成旧版 important_outputs 字段。若要将 Bazel 与 ResultStore 集成,必须使用 important_outputs。
代码:affects_outputs
--[no]materialize_param_files
默认值:“false”-
将中间参数文件写入输出树,即使使用远程操作执行也是如此。在调试操作时非常有用。--subcommands 和 --verbose_failures 会隐式地指明这一点。
代码:execution
--max_config_changes_to_show=<an integer>
默认值:“3”-
当因 build 选项发生变化而舍弃分析缓存时,最多会显示给定数量的已更改选项名称。如果给定数字为 -1,系统将显示所有已更改的选项。
代码:terminal_output
--max_test_output_bytes=<an integer>
默认值:“-1”-
指定当 --test_output 为“errors”或“all”时,每个测试日志的大小上限。这对于避免测试输出过于嘈杂而导致输出过载非常有用。测试标头包含在日志大小中。负值表示无限制。输出是全部或全无。
代码:test_runner
、terminal_output
、execution
--output_filter=<a valid Java regular expression>
默认:请参阅说明-
仅针对名称与所提供的正则表达式匹配的规则显示警告。
代码:affects_outputs
--progress_report_interval=<an integer in 0-3600 range>
默认值:“0”-
有关仍在运行的作业的报告之间的间隔秒数。默认值 0 表示系统会在 10 秒后输出第一个报告,然后在 30 秒后输出第二个报告,之后每分钟报告一次进度。启用 --curses 后,系统会每秒报告一次进度。
代码:affects_outputs
--show_result=<an integer>
默认值:“1”-
显示构建结果。对于每个目标,请指明其是否已更新,如果已更新,请列出构建的输出文件。输出的文件是方便复制并粘贴到 shell 以便执行的字符串。此选项需要一个整数参数,该参数是目标数阈值,如果超过该阈值,系统将不会输出结果信息。因此,零会导致系统抑制消息,而 MAX_INT 会导致系统始终输出结果。默认值为 1。
代码:affects_outputs
--[no]subcommands
[-s
] 默认值:“false”-
显示构建期间执行的子命令。相关标志:--execution_log_json_file、--execution_log_binary_file(用于以工具友好的格式将子命令记录到文件)。
代码:terminal_output
--test_output=<summary, errors, all or streamed>
默认值:“summary”-
指定所需的输出模式。有效值包括“summary”(仅输出测试状态摘要)、“errors”(同时输出失败测试的测试日志)、“all”(输出所有测试的日志)和“streamed”(实时输出所有测试的日志,无论 --test_strategy 值如何,这都会强制在本地一次执行一项测试)。
代码:test_runner
、terminal_output
、execution
--test_summary=<short, terse, detailed, none or testcase>
默认值:“short”-
指定所需的测试摘要格式。有效值包括“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”(默认值)时,只有当此标志设置为 true 时,才会被视为 false。请参阅 https://github.com/bazelbuild/bazel/issues/10076。
代码:affects_outputs
、incompatible_change
--[no]incompatible_py2_outputs_are_suffixed
默认值:“true”- 如果为 true,则在 Python 2 配置中构建的目标将显示在包含后缀“-py2”的输出根目录下,而针对 Python 3 构建的目标将显示在不含 Python 相关后缀的根目录下。这意味着 `bazel-bin` 便捷符号链接将指向 Python 3 目标,而不是 Python 2。如果您启用此选项,我们还建议您启用 `--incompatible_py3_is_default`。
代码段:affects_outputs
、incompatible_change
--[no]incompatible_py3_is_default
默认值:“true”-
如果为 true,则未设置 `python_version`(或 `default_python_version`)属性的 `py_binary` 和 `py_test` 目标将默认设为 PY3,而不是 PY2。如果您设置此标志,则建议您也设置 `--incompatible_py2_outputs_are_suffixed`。
代码:loading_and_analysis
、affects_outputs
、incompatible_change
--[no]incompatible_use_python_toolchains
默认值:“true”-
如果设置为 true,可执行的原生 Python 规则将使用 Python 工具链指定的 Python 运行时,而不是 --python_top 等旧版标志提供的运行时。
代码:loading_and_analysis
、incompatible_change
--python_version=<PY2 or PY3>
默认:请参阅说明-
Python 主要版本模式,即 `PY2` 或 `PY3`。请注意,此值会被 `py_binary` 和 `py_test` 目标替换(即使它们未明确指定版本),因此通常没有太多理由提供此标志。
代码:loading_and_analysis
、affects_outputs
、explicit_in_output_path
--target_pattern_file=<a string>
默认值:“”-
如果设置,build 将从此处指定的文件(而非命令行)读取模式。在此处同时指定文件和命令行模式是错误的。
代码:changes_inputs
- 其他未分类的选项:
--[no]build_manual_tests
默认值:“false”- 强制构建标记为“manual”的测试目标。系统不会处理“手动”测试。此选项会强制构建(但不会执行)这些模块。
--build_tag_filters=<comma-separated list of options>
默认值:“”- 指定以逗号分隔的标记列表。每个代码都可以选择在前面加上“-”以指定要排除的代码。系统只会构建包含至少一个包含的代码且不包含任何排除的代码的目标。此选项不会影响使用“test”命令执行的一组测试;这些测试受测试过滤选项(例如“--test_tag_filters”)的约束
--[no]build_tests_only
默认值:“false”- 如果指定,系统将仅构建 *_test 和 test_suite 规则,并忽略命令行上指定的其他目标。默认情况下,系统会构建所有请求的文件。
--[no]cache_test_results
[-t
] 默认值:“auto”- 如果设置为“auto”,则只有在以下情况下,Bazel 才会重新运行测试:(1) Bazel 检测到测试或其依赖项发生了变化,(2) 测试被标记为外部测试,(3) 使用 --runs_per_test 请求了多次测试运行,或(4) 测试之前失败。如果设为“yes”,则 Bazel 会缓存所有测试结果(标记为外部的测试除外)。如果设为“no”,则 Bazel 不会缓存任何测试结果。
--[no]compile_one_dependency
默认值:“false”- 编译参数文件的单个依赖项。这对于在 IDE 中对源文件进行语法检查非常有用,例如,通过重新构建依赖于源文件的单个目标,以便在编辑/构建/测试周期中尽早检测错误。此参数会影响对所有非标志参数的解读方式;它们不是构建目标,而是源文件名。对于每个源文件名,系统都会构建依赖于它的任意目标。
--deleted_packages=<comma-separated list of package names>
默认值:“”- 一个用逗号分隔的软件包名称列表,构建系统会将这些软件包视为不存在,即使它们在软件包路径的某个位置可见也是如此。删除现有软件包“x”的子软件包“x/y”时,请使用此选项。例如,在客户端中删除 x/y/BUILD 后,如果 build 系统遇到仍由其他 package_path 条目提供的标签“//x:y/z”,则可能会发出警告。指定 --deleted_packages x/y 可避免此问题。
--[no]discard_analysis_cache
默认值:“false”- 在分析阶段完成后立即舍弃分析缓存。可将内存用量减少约 10%,但会使进一步增量构建速度变慢。
--execution_log_binary_file=<a path>
默认:请参阅说明- 根据 src/main/protobuf/spawn.proto,将已执行的 spawn 记录为分隔的 spawn proto 并写入此文件。日志会先无序写入,然后在调用结束时按稳定的顺序排序(可能会占用大量 CPU 和内存)。相关标志:--execution_log_json_file(有序文本 JSON 格式)、--experimental_execution_log_file(无序二进制 protobuf 格式)、--subcommands(用于在终端输出中显示子命令)。
--execution_log_json_file=<a path>
默认:请参阅说明- 根据 src/main/protobuf/spawn.proto,将已执行的 spawn 记录到此文件中,以便以 json 表示法表示分隔的 spawn proto。日志会先无序写入,然后在调用结束时按稳定的顺序排序(可能会占用大量 CPU 和内存)。相关标志:--execution_log_binary_file(有序二进制 protobuf 格式)、--experimental_execution_log_file(无序二进制 protobuf 格式)、--subcommands(用于在终端输出中显示子命令)。
--[no]expand_test_suites
默认值:“true”-
在分析之前,将 test_suite 目标展开为其组成测试。开启此标志(默认)后,系统会将否定目标模式应用于属于测试套件的测试,否则不会。在命令行中应用顶级方面时,停用此标志非常有用:这样,它们就可以分析 test_suite 目标。
代码:loading_and_analysis
--[no]experimental_cancel_concurrent_tests
默认值:“false”-
如果为 true,则 Blaze 会在首次成功运行时取消并发运行的测试。此选项仅与 --runs_per_test_detects_flakes 结合使用时才有用。
代码:affects_outputs
、loading_and_analysis
--experimental_execution_log_file=<a path>
默认:请参阅说明- 根据 src/main/protobuf/spawn.proto,将已执行的 spawn 记录为分隔的 spawn proto 并写入此文件。此文件会按 spawn 的执行顺序写入。相关标志:--execution_log_binary_file(有序二进制 protobuf 格式)、--execution_log_json_file(有序文本 JSON 格式)、--subcommands(用于在终端输出中显示子命令)。
--[no]experimental_execution_log_spawn_metrics
默认值:“false”- 在已执行的 spawn 日志中添加 spawn 指标。
--experimental_extra_action_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths>
默认值:“”- 已废弃,取而代之的是 aspect。过滤要为其安排 extra_action 的一组目标。
--[no]experimental_extra_action_top_level_only
默认值:“false”- 已废弃,取而代之的是 aspect。仅为顶级目标安排 extra_actions。
--[no]experimental_fetch_all_coverage_outputs
默认值:“false”-
如果为 true,则 Bazel 会在运行覆盖率期间提取每个测试的整个覆盖率数据目录。
代码:affects_outputs
、loading_and_analysis
--[no]experimental_generate_llvm_lcov
默认值:“false”-
如果为 true,则 clang 的覆盖率将生成 LCOV 报告。
代码:affects_outputs
、loading_and_analysis
--[no]experimental_j2objc_header_map
默认值:“true”- 确定是否应在 J2ObjC 转译期间并行生成 J2ObjC 头文件映射。
--[no]experimental_j2objc_shorter_header_path
默认值:“false”-
是否使用更短的头文件路径进行生成(使用“_ios”而非“_j2objc”)。
代码:affects_outputs
--experimental_java_classpath=<off, javabuilder or bazel>
默认值:“javabuilder”- 为 Java 编译启用缩减的类路径。
--[no]experimental_limit_android_lint_to_android_constrained_java
默认值:“false”-
将 --experimental_run_android_lint_on_java_rules 限制为仅适用于与 Android 兼容的库。
代码:affects_outputs
--[no]experimental_prioritize_local_actions
默认值:“true”-
如果设置了此属性,则只能在本地运行的操作将获得获取资源的首个机会,动态运行的工作器将获得第二个机会,动态运行的独立操作将获得最后一个机会。
代码:execution
--[no]experimental_run_android_lint_on_java_rules
默认值:“false”-
是否验证 java_* 源代码。
代码:affects_outputs
--[no]explicit_java_test_deps
默认值:“false”- 在 java_test 中明确指定对 JUnit 或 Hamcrest 的依赖项,而不是意外从 TestRunner 的依赖项中获取。目前仅适用于 bazel。
--host_java_launcher=<a build target label>
默认:请参阅说明- 构建期间执行的工具使用的 Java 启动器。
--host_javacopt=<a string>
累计多次使用- 在构建构建期间执行的工具时传递给 javac 的其他选项。
--host_jvmopt=<a string>
累计多次使用- 在构建期间执行的工具的构建过程中传递给 Java VM 的其他选项。这些选项将添加到每个 java_binary 目标的虚拟机启动选项中。
--[no]incompatible_exclusive_test_sandboxed
默认值:“false”-
如果为 true,系统将使用沙盒化策略运行专属测试。添加了“local”标记,以强制在本地运行专属测试
代码:incompatible_change
--[no]incompatible_strict_action_env
默认值:“false”-
如果为 true,则 Bazel 会使用 PATH 为静态值的环境,并且不会继承 LD_LIBRARY_PATH。如果您想从客户端继承特定环境变量,请使用 --action_env=ENV_VARIABLE,但请注意,这样做可能会阻止使用共享缓存时跨用户缓存。
代码:loading_and_analysis
、incompatible_change
--j2objc_translation_flags=<comma-separated list of options>
累计多次使用- 要传递给 J2ObjC 工具的其他选项。
--java_debug
-
导致 Java 测试的 Java 虚拟机在开始测试之前等待来自符合 JDWP 规范的调试程序(例如 jdb)的连接。隐含 -test_output=streamed。
展开为:
--test_arg=--wrapper_script_flag=--debug
--test_output=streamed
--test_strategy=exclusive
--test_timeout=9999
--nocache_test_results
--[no]java_deps
默认值:“true”- 为每个 Java 目标生成依赖项信息(目前为编译时间类路径)。
--[no]java_header_compilation
默认值:“true”- 直接从源代码编译 ijar。
--java_language_version=<a string>
默认值:“8”- Java 语言版本
--java_launcher=<a build target label>
默认:请参阅说明- 构建 Java 二进制文件时要使用的 Java 启动器。如果此标志设置为空字符串,则系统会使用 JDK 启动器。“launcher”属性会替换此标志。
--java_runtime_version=<a string>
默认值:“local_jdk”- Java 运行时版本
--javacopt=<a string>
累计多次使用- 要传递给 javac 的其他选项。
--jvmopt=<a string>
累计多次使用- 要传递给 Java VM 的其他选项。这些选项将添加到每个 java_binary 目标的虚拟机启动选项中。
--legacy_main_dex_list_generator=<a build target label>
默认:请参阅说明- 指定用于在编译旧版 multidex 时生成必须位于主 dex 中的类列表的二进制文件。
--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 核心数。
--local_ram_resources=<an integer, 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%。
--local_termination_grace_seconds=<an integer>
默认值:“15”- 在因超时而终止本地进程与强制关闭本地进程之间等待的时间。
--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_outputs
、loading_and_analysis
--proto_toolchain_for_cc=<a build target label>
默认值:“@bazel_tools//tools/proto:cc_toolchain”-
proto_lang_toolchain() 的标签,用于说明如何编译 C++ protos
代码段:affects_outputs
、loading_and_analysis
--proto_toolchain_for_j2objc=<a build target label>
默认值:“@bazel_tools//tools/j2objc:j2objc_proto_toolchain”-
proto_lang_toolchain() 的标签,用于说明如何编译 j2objc protos
标记:affects_outputs
、loading_and_analysis
--proto_toolchain_for_java=<a build target label>
默认值:“@bazel_tools//tools/proto:java_toolchain”-
proto_lang_toolchain() 的标签,用于说明如何编译 Java protos
代码段:affects_outputs
、loading_and_analysis
--proto_toolchain_for_javalite=<a build target label>
默认值:“@bazel_tools//tools/proto:javalite_toolchain”-
proto_lang_toolchain() 的标签,用于说明如何编译 JavaLite protos
标记:affects_outputs
、loading_and_analysis
--protocopt=<a string>
累计多次使用-
要传递给 protobuf 编译器的其他选项。
代码:affects_outputs
--[no]runs_per_test_detects_flakes
默认值:“false”- 如果为 true,则至少有一个运行/尝试通过且至少有一个运行/尝试失败的任何分片都会获得 FLAKY 状态。
--shell_executable=<a path>
默认:请参阅说明-
要供 Bazel 使用的 shell 可执行文件的绝对路径。如果未设置此变量,但在首次调用 Bazel(启动 Bazel 服务器)时设置了 BAZEL_SH 环境变量,则 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 输出“Loading package:”消息。
--test_arg=<a string>
累计多次使用- 指定应传递给测试可执行文件的其他选项和参数。可以多次使用,以指定多个参数。如果执行多个测试,每个测试都会收到相同的参数。仅供“bazel test”命令使用。
--test_filter=<a string>
默认:请参阅说明- 指定要转发给测试框架的过滤器。用于限制运行的测试。请注意,这不会影响要构建的目标。
--test_lang_filters=<comma-separated list of options>
默认值:“”- 指定以逗号分隔的测试语言列表。您可以选择在每种语言前面加上“-”以指定要排除的语言。系统只会找到使用指定语言编写的测试目标。为每种语言使用的名称应与 *_test 规则中的语言前缀相同,例如“cc”“java”“py”等。此选项会影响 --build_tests_only 行为和测试命令。
--test_result_expiration=<an integer>
默认值:“-1”- 此选项已废弃,无效。
--[no]test_runner_fail_fast
默认值:“false”- 将失败快速选项转发给测试运行程序。测试运行程序应在首次失败后停止执行。
--test_sharding_strategy=<explicit or disabled>
默认值:“explicit”- 指定测试分片策略:如果存在“shard_count”构建属性,则使用“explicit”;否则不使用分片。“disabled”(已停用),表示永不使用测试分片。
--test_size_filters=<comma-separated list of values: small, medium, large or enormous>
默认值:“”- 以逗号分隔列表的形式指定测试大小。您可以选择在每个尺寸前面加上“-”来指定要排除的尺寸。系统只会找到包含至少一种包含的尺寸且不包含任何排除的尺寸的测试目标。此选项会影响 --build_tests_only 行为和测试命令。
--test_tag_filters=<comma-separated list of options>
默认值:“”- 指定以逗号分隔的测试标记列表。每个代码都可以选择在前面加上“-”以指定要排除的代码。系统只会找到包含至少一个包含的代码且不包含任何排除的代码的测试目标。此选项会影响 --build_tests_only 行为和测试命令。
--test_timeout_filters=<comma-separated list of values: short, moderate, long or eternal>
默认值:“”- 指定以逗号分隔的测试超时列表。每个超时时间都可以选择在前面加上“-”以指定要排除的超时时间。系统只会找到包含至少一个包含的超时值且不包含任何排除的超时值的测试目标。此选项会影响 --build_tests_only 行为和测试命令。
--tool_java_language_version=<a string>
默认值:“8”- 用于执行构建期间所需工具的 Java 语言版本
--tool_java_runtime_version=<a string>
默认值:“remotejdk_11”- 在构建期间用于执行工具的 Java 运行时版本
--[no]use_ijars
默认值:“true”- 如果启用此选项,Java 编译将使用接口 jar。这会加快增量编译速度,但错误消息可能会有所不同。
Canonicalize-flags 选项
继承 build 中的所有选项。
- 显示在命令之前并由客户端解析的选项:
--distdir=<a path>
累计多次使用-
在访问网络下载归档文件之前,可搜索归档文件的其他位置。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_hardlinks
默认值:“false”-
如果设置了此选项,代码库缓存在命中缓存时会硬链接文件,而不是进行复制。这是为了节省磁盘空间。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_urls_as_default_canonical_id
默认值:“false”-
如果为 true,则使用从代码库下载网址派生的字符串作为 canonical_id(如果未指定)。这会导致网址发生变化,从而导致重新下载,即使缓存中包含具有相同哈希值的下载内容也是如此。这可用于验证网址更改不会导致缓存掩盖损坏的代码库。
代码:loading_and_analysis
、experimental
--[no]experimental_repository_disable_download
默认值:“false”-
如果设置,则不允许下载外部代码库。
代码:experimental
--experimental_repository_downloader_retries=<an integer>
默认值:“0”-
下载错误的重试尝试次数上限。如果设置为 0,则会停用重试。
代码:experimental
--experimental_scale_timeouts=<a double>
默认值:“1.0”-
将 Starlark 代码库规则中的所有超时时间乘以此系数。这样,外部代码库就可以在比规则作者预期更慢的机器上运行,而无需更改源代码
代码:bazel_internal_configuration
、experimental
--http_timeout_scaling=<a double>
默认值:“1.0”-
按给定系数缩放与 http 下载相关的所有超时时间
代码:bazel_internal_configuration
--repository_cache=<a path>
默认:请参阅说明-
指定在提取外部代码库期间获取的下载值的缓存位置。将空字符串作为参数会请求停用缓存。
代码:bazel_internal_configuration
- 用于控制命令输出的选项:
--[no]canonicalize_policy
默认值:“false”-
在展开和过滤后输出规范政策。为保持输出清晰,如果此选项设置为 true,系统将不会显示规范化的命令参数。请注意,--for_command 指定的命令会影响过滤后的政策,如果未指定任何命令,默认命令为“build”。
代码:affects_outputs
、terminal_output
--[no]show_warnings
默认值:“false”-
将解析器警告输出到标准错误(例如,对于冲突的标志选项)。
代码段:affects_outputs
、terminal_output
- 影响 Bazel 强制执行有效 build 输入的严格程度的选项(规则定义、标志组合等):
--experimental_repository_hash_file=<a string>
默认值:“”-
如果不为空,则指定包含已解析值的文件,系统应根据该值验证代码库目录哈希
标记:affects_outputs
、experimental
--experimental_verify_repository_rules=<a string>
累计多次使用-
如果应验证输出目录的哈希的代码库规则列表,则通过 --experimental_repository_hash_file 指定文件。
标记:affects_outputs
、experimental
- 此选项会影响 Starlark 语言的语义或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API:
--[no]experimental_allow_top_level_aspects_parameters
默认值:“true”-
无操作
标记:no_op
、deprecated
、experimental
--[no]incompatible_config_setting_private_default_visibility
默认值:“false”-
如果 incompatible_enforce_config_setting_visibility=false,则此操作不会执行任何操作。否则,如果此标志为 false,则任何没有明确可见性属性的 config_setting 均为 //visibility:public。如果此标志为 true,则 config_setting 将遵循与所有其他规则相同的可见性逻辑。请参阅 https://github.com/bazelbuild/bazel/issues/12933。
代码:loading_and_analysis
、incompatible_change
--[no]incompatible_enforce_config_setting_visibility
默认值:“true”-
如果为 true,则强制执行 config_setting 可见性限制。如果为 false,则每个 config_setting 对每个目标都是可见的。请参阅 https://github.com/bazelbuild/bazel/issues/12932。
代码:loading_and_analysis
、incompatible_change
- 与 Bzlmod 输出和语义相关的选项:
--allow_yanked_versions=<a string>
累计多次使用-
以 `<module1>@<version1>,<module2>@<version2>` 的形式指定了模块版本,即使它们在其来源注册表中被声明为已被移除(如果它们不是来自 NonRegistryOverride),也允许在已解析的依赖项图中使用。否则,已移除的版本将导致解决方案失败。您还可以使用 `BZLMOD_ALLOW_YANKED_VERSIONS` 环境变量定义允许的已撤消版本。您可以使用关键字“all”(不推荐)停用此检查。
代码:loading_and_analysis
--check_bazel_compatibility=<error, warning or off>
默认值:“error”-
检查 Bazel 模块的 Bazel 版本兼容性。有效值包括 `error`(将其上报为分辨失败)、`off`(停用检查)或 `warning`(在检测到不匹配时输出警告)。
代码:loading_and_analysis
--check_direct_dependencies=<off, warning or error>
默认值:“警告”-
检查根模块中声明的直接 `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
--override_module=<an equals-separated mapping of module name to path>
累计多次使用- 使用本地目录替换模块。
--registry=<a string>
累计多次使用-
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在较早的注册表中查找模块,只有在较早的注册表中没有模块时,才会回退到较新的注册表。
标记:changes_inputs
- 影响日志记录详细程度、格式或位置的选项:
--[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_outputs
、terminal_output
--invocation_policy=<a string>
默认值:“”-
将调用政策应用于要规范化的选项。
代码:affects_outputs
、terminal_output
- 远程缓存和执行选项:
--experimental_downloader_config=<a string>
默认:请参阅说明- 指定用于配置远程下载器的文件。该文件由多行组成,每行都以指令(“allow”“block”或“rewrite”)开头,后跟主机名(对于“allow”和“block”)或两个模式(一个用于匹配,一个用于用作替换网址),回引用从 `$1` 开始。可以为同一网址提供多个“rewrite”指令,在这种情况下,系统会返回多个网址。
- 其他未归入其他类别的选项:
--deleted_packages=<comma-separated list of package names>
默认值:“”- 一个用逗号分隔的软件包名称列表,构建系统会将这些软件包视为不存在,即使它们在软件包路径的某个位置可见也是如此。删除现有软件包“x”的子软件包“x/y”时,请使用此选项。例如,在客户端中删除 x/y/BUILD 后,如果 build 系统遇到仍由其他 package_path 条目提供的标签“//x:y/z”,则可能会发出警告。指定 --deleted_packages x/y 可避免此问题。
--override_repository=<an equals-separated mapping of repository name to path>
累计多次使用- 使用本地目录替换代码库。
--package_path=<colon-separated list of options>
默认值:“%workspace%”- 以英文冒号分隔的软件包搜索位置列表。以“%workspace%”开头的元素相对于封闭的工作区。如果省略或为空,则默认值为“bazel info default-package-path”的输出。
--[no]show_loading_progress
默认值:“true”- 如果启用,会导致 Bazel 输出“Loading package:”消息。
清理选项
继承 build 中的所有选项。
- 显示在命令之前并由客户端解析的选项:
--distdir=<a path>
累计多次使用-
在访问网络下载归档文件之前,可搜索归档文件的其他位置。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_hardlinks
默认值:“false”-
如果设置了此选项,代码库缓存在命中缓存时会硬链接文件,而不是进行复制。这是为了节省磁盘空间。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_urls_as_default_canonical_id
默认值:“false”-
如果为 true,则使用从代码库下载网址派生的字符串作为 canonical_id(如果未指定)。这会导致网址发生变化,从而导致重新下载,即使缓存中包含具有相同哈希值的下载内容也是如此。这可用于验证网址更改不会导致缓存掩盖损坏的代码库。
代码:loading_and_analysis
、experimental
--[no]experimental_repository_disable_download
默认值:“false”-
如果设置,则不允许下载外部代码库。
代码:experimental
--experimental_repository_downloader_retries=<an integer>
默认值:“0”-
下载错误的重试尝试次数上限。如果设置为 0,则会停用重试。
代码:experimental
--experimental_scale_timeouts=<a double>
默认值:“1.0”-
将 Starlark 代码库规则中的所有超时时间乘以此系数。这样,外部代码库就可以在比规则作者预期更慢的机器上运行,而无需更改源代码
代码:bazel_internal_configuration
、experimental
--http_timeout_scaling=<a double>
默认值:“1.0”-
按给定系数缩放与 http 下载相关的所有超时时间
代码:bazel_internal_configuration
--repository_cache=<a path>
默认:请参阅说明-
指定在提取外部代码库期间获取的下载值的缓存位置。将空字符串作为参数会请求停用缓存。
代码:bazel_internal_configuration
- 用于控制命令输出的选项:
--[no]async
默认值:“false”-
如果为 true,则输出清理是异步的。此命令完成后,即使删除操作可能仍在后台继续,您也可以在同一客户端中安全地执行新命令。
代码:host_machine_resource_optimizations
--[no]expunge
默认值:“false”-
如果为 true,clean 会移除此 bazel 实例的整个工作树,其中包括所有由 bazel 创建的临时文件和 build 输出文件,并停止运行中的 bazel 服务器。
代码:host_machine_resource_optimizations
--expunge_async
-
如果指定,clean 会异步移除此 bazel 实例的整个工作树(包括所有由 bazel 创建的临时文件和构建输出文件),并停止正在运行的 bazel 服务器。此命令完成后,即使删除操作可能仍在后台继续,您也可以在同一客户端中安全地执行新命令。
展开为:
--expunge
--async
代码:host_machine_resource_optimizations
--[no]remove_all_convenience_symlinks
默认值:“false”-
如果为 true,则工作区中所有前缀为 symlink_prefix 的符号链接都会被删除。如果不使用此标志,系统只会清理带有预定义后缀的符号链接。
代码:affects_outputs
- 影响 Bazel 强制执行有效 build 输入(规则定义、标志组合等)的严格程度的选项:
--experimental_repository_hash_file=<a string>
默认值:“”-
如果不为空,则指定包含已解析值的文件,系统应根据该值验证代码库目录哈希
标记:affects_outputs
、experimental
--experimental_verify_repository_rules=<a string>
累计多次使用-
如果应验证输出目录的哈希的代码库规则列表,则通过 --experimental_repository_hash_file 指定文件。
标记:affects_outputs
、experimental
- 此选项会影响 Starlark 语言的语义或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API:
--[no]experimental_allow_top_level_aspects_parameters
默认值:“true”-
无操作
标记:no_op
、deprecated
、experimental
- 与 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
--override_module=<an equals-separated mapping of module name to path>
累计多次使用- 使用本地目录替换模块。
--registry=<a string>
累计多次使用-
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在较早的注册表中查找模块,只有在较早的注册表中没有模块时,才会回退到较新的注册表。
标记:changes_inputs
- 影响日志记录详细程度、格式或位置的选项:
--[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”指令,在这种情况下,系统会返回多个网址。
- 其他未归入其他类别的选项:
--override_repository=<an equals-separated mapping of repository name to path>
累计多次使用- 使用本地目录替换代码库。
配置选项
保修选项
继承 test 中的所有选项。
- 显示在命令之前并由客户端解析的选项:
--distdir=<a path>
累计多次使用-
在访问网络下载归档文件之前,可搜索归档文件的其他位置。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_hardlinks
默认值:“false”-
如果设置了此选项,代码库缓存在命中缓存时会硬链接文件,而不是进行复制。这是为了节省磁盘空间。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_urls_as_default_canonical_id
默认值:“false”-
如果为 true,则使用从代码库下载网址派生的字符串作为 canonical_id(如果未指定)。这会导致网址发生变化,从而导致重新下载,即使缓存中包含具有相同哈希值的下载内容也是如此。这可用于验证网址更改不会导致缓存掩盖损坏的代码库。
代码:loading_and_analysis
、experimental
--[no]experimental_repository_disable_download
默认值:“false”-
如果设置,则不允许下载外部代码库。
代码:experimental
--experimental_repository_downloader_retries=<an integer>
默认值:“0”-
下载错误的重试尝试次数上限。如果设置为 0,则会停用重试。
代码:experimental
--experimental_scale_timeouts=<a double>
默认值:“1.0”-
将 Starlark 代码库规则中的所有超时时间乘以此系数。这样,外部代码库就可以在比规则作者预期更慢的机器上运行,而无需更改源代码
代码:bazel_internal_configuration
、experimental
--http_timeout_scaling=<a double>
默认值:“1.0”-
按给定系数缩放与 http 下载相关的所有超时时间
代码:bazel_internal_configuration
--repository_cache=<a path>
默认:请参阅说明-
指定在提取外部代码库期间获取的下载值的缓存位置。将空字符串作为参数会请求停用缓存。
代码:bazel_internal_configuration
- 影响 Bazel 强制执行有效 build 输入(规则定义、标志组合等)的严格程度的选项:
--experimental_repository_hash_file=<a string>
默认值:“”-
如果不为空,则指定包含已解析值的文件,系统应根据该值验证代码库目录哈希
标记:affects_outputs
、experimental
--experimental_verify_repository_rules=<a string>
累计多次使用-
如果应验证输出目录的哈希的代码库规则列表,则通过 --experimental_repository_hash_file 指定文件。
标记:affects_outputs
、experimental
- 此选项会影响 Starlark 语言的语义或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API:
--[no]experimental_allow_top_level_aspects_parameters
默认值:“true”-
无操作
标记:no_op
、deprecated
、experimental
- 与 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
--override_module=<an equals-separated mapping of module name to path>
累计多次使用- 使用本地目录替换模块。
--registry=<a string>
累计多次使用-
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在较早的注册表中查找模块,只有在较早的注册表中没有模块时,才会回退到较新的注册表。
标记:changes_inputs
- 影响日志记录详细程度、格式或位置的选项:
--[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”指令,在这种情况下,系统会返回多个网址。
- 其他未归入其他类别的选项:
--override_repository=<an equals-separated mapping of repository name to path>
累计多次使用- 使用本地目录替换代码库。
Cquery 选项
继承 test 中的所有选项。
- 显示在命令之前并由客户端解析的选项:
--distdir=<a path>
累计多次使用-
在访问网络下载归档文件之前,可搜索归档文件的其他位置。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_hardlinks
默认值:“false”-
如果设置了此选项,代码库缓存在命中缓存时会硬链接文件,而不是进行复制。这是为了节省磁盘空间。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_urls_as_default_canonical_id
默认值:“false”-
如果为 true,则使用从代码库下载网址派生的字符串作为 canonical_id(如果未指定)。这会导致网址发生变化,从而导致重新下载,即使缓存中包含具有相同哈希值的下载内容也是如此。这可用于验证网址更改不会导致缓存掩盖损坏的代码库。
代码:loading_and_analysis
、experimental
--[no]experimental_repository_disable_download
默认值:“false”-
如果设置,则不允许下载外部代码库。
代码:experimental
--experimental_repository_downloader_retries=<an integer>
默认值:“0”-
下载错误的重试尝试次数上限。如果设置为 0,则会停用重试。
代码:experimental
--experimental_scale_timeouts=<a double>
默认值:“1.0”-
将 Starlark 代码库规则中的所有超时时间乘以此系数。这样,外部代码库就可以在比规则作者预期更慢的机器上运行,而无需更改源代码
代码:bazel_internal_configuration
、experimental
--http_timeout_scaling=<a double>
默认值:“1.0”-
按给定系数缩放与 http 下载相关的所有超时时间
代码:bazel_internal_configuration
--repository_cache=<a path>
默认:请参阅说明-
指定在提取外部代码库期间获取的下载值的缓存位置。将空字符串作为参数会请求停用缓存。
代码:bazel_internal_configuration
- 影响 Bazel 强制执行有效 build 输入(规则定义、标志组合等)的严格程度的选项:
--experimental_repository_hash_file=<a string>
默认值:“”-
如果不为空,则指定包含已解析值的文件,系统应根据该值验证代码库目录哈希
标记:affects_outputs
、experimental
--experimental_verify_repository_rules=<a string>
累计多次使用-
如果应验证输出目录的哈希的代码库规则列表,则通过 --experimental_repository_hash_file 指定文件。
标记:affects_outputs
、experimental
- 此选项会影响 Starlark 语言的语义或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API:
--[no]experimental_allow_top_level_aspects_parameters
默认值:“true”-
无操作
标记:no_op
、deprecated
、experimental
- 与查询输出和语义相关的选项:
--aspect_deps=<off, conservative or precise>
默认值:“保守”-
如何在输出格式为 {xml,proto,record} 之一时解析方面依赖项。“关闭”表示不解析任何方面依赖项;“保守”(默认)表示添加所有声明的方面依赖项,无论它们是否被赋予直接依赖项的规则类;“精确”表示仅添加可能处于活动状态的方面,具体取决于直接依赖项的规则类。请注意,精确模式需要加载其他软件包才能评估单个目标,因此速度比其他模式慢。另请注意,即使是精确模式也不完全精确:计算某个方面是否需要在分析阶段决定,而该阶段不会在“bazel query”期间运行。
代码:build_file_semantics
--[no]graph:factored
默认值:“true”-
如果为 true,则会以“分解”形式发出图,即将拓扑等效的节点合并在一起,并串联其标签。此选项仅适用于 --output=graph。
代码:terminal_output
--graph:node_limit=<an integer>
默认值:“512”-
输出中图表节点的标签字符串的最大长度。较长的标签将被截断;-1 表示不截断。此选项仅适用于 --output=graph。
代码:terminal_output
--[no]implicit_deps
默认值:“true”-
如果启用,隐式依赖项将包含在查询操作的依赖图中。隐式依赖项是指未在 BUILD 文件中明确指定,但由 Bazel 添加的依赖项。对于 cquery,此选项用于控制过滤已解析的工具链。
代码:build_file_semantics
--[no]include_aspects
默认值:“true”-
aquery、cquery:是否在输出中包含由方面生成的操作。query:无操作(始终遵循方面)。
代码:terminal_output
--[no]incompatible_display_source_file_location
默认值:“true”-
默认值为 true,用于显示源文件的目标。如果为 true,则在位置输出中显示源文件第 1 行的所在位置。此标志仅用于迁移目的。
代码:terminal_output
、incompatible_change
--[no]incompatible_package_group_includes_double_slash
默认值:“true”-
如果启用,则在输出 package_group 的 `packages` 属性时,不会省略前面的 `//`。
代码:terminal_output
、incompatible_change
--[no]infer_universe_scope
默认值:“false”- 如果已设置,并且未设置 --universe_scope,则 --universe_scope 的值将推断为查询表达式中的唯一目标模式列表。请注意,为使用全局范围函数(例如 `allrdeps`)的查询表达式推断出的 --universe_scope 值可能不是您想要的,因此只有在您知道自己在做什么的情况下,才应使用此选项。如需了解详情和示例,请参阅 https://bazel.build/query/language#sky-query。如果设置了 --universe_scope,则系统会忽略此选项的值。注意:此选项仅适用于“query”(即不适用于“cquery”)。
代码:loading_and_analysis
--[no]line_terminator_null
默认值:“false”-
确定每个格式是否以 \0(而非换行符)结尾。
代码:terminal_output
--[no]nodep_deps
默认值:“true”-
如果启用,查询操作所依赖的依赖项图中将包含“nodep”属性中的依赖项。“nodep”属性的一个常见示例是“visibility”。运行并解析 `info build-language` 的输出,了解 build 语言中的所有“nodep”属性。
代码:build_file_semantics
--output=<a string>
默认值:“label”-
cquery 结果应采用的输出格式。cquery 的允许值包括:label、label_kind、textproto、transitions、proto、jsonproto。如果您选择“转场效果”,则还必须指定 --transitions=(lite|full) 选项。
代码:terminal_output
--[no]proto:default_values
默认值:“true”-
如果为 true,则会包含在 BUILD 文件中未明确指定值的属性;否则,会忽略这些属性。此选项适用于 --output=proto
标记:terminal_output
--[no]proto:definition_stack
默认值:“false”-
填充 definition_stack proto 字段,该字段会为每个规则实例记录规则类定义时刻的 Starlark 调用堆栈。
代码:terminal_output
--[no]proto:flatten_selects
默认值:“true”-
如果启用,由 select() 创建的可配置属性会扁平化。对于列表类型,扁平化表示法是包含所选映射的每个值恰好一次的列表。标量类型会扁平化为 null。
代码:build_file_semantics
--[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
--[no]relative_locations
默认值:“false”-
如果为 true,xml 和 proto 输出中的 BUILD 文件的位置将是相对位置。默认情况下,位置输出是绝对路径,并且在不同机器之间不会保持一致。您可以将此选项设置为 true,以便在不同机器上获得一致的结果。
代码:terminal_output
--show_config_fragments=<off, direct or transitive>
默认值:“off”-
显示规则及其传递依赖项所需的配置 fragment。这对于评估可对配置的目标图表进行多大程度的修剪非常有用。
代码:affects_outputs
--starlark:expr=<a string>
默认值:“”-
一个 Starlark 表达式,用于在 cquery 的 --output=starlark 模式下设置每个已配置的目标的格式。配置的目标已绑定到“target”。如果未指定 --starlark:expr 和 --starlark:file,则此选项将默认为“str(target.label)”。同时指定 --starlark:expr 和 --starlark:file 是错误的。
代码:terminal_output
--starlark:file=<a string>
默认值:“”-
用于定义一个名为“format”且只有一个参数的 Starlark 函数的文件的名称。该函数会应用于每个配置的目标,以将其格式化为字符串。同时指定 --starlark:expr 和 --starlark:file 是错误的。如需了解详情,请参阅 --output=starlark 的帮助。
代码:terminal_output
--[no]tool_deps
默认值:“true”-
查询:如果停用,查询所依赖的“主机配置”或“执行”目标将不会包含在查询所操作的依赖项图中。“主机配置”依赖项边(例如,从任何“proto_library”规则到协议编译器的边)通常指向构建期间执行的工具,而不是同一“目标”程序的一部分。
Cquery:如果停用,则会滤除从发现此配置目标的顶级目标跨主机或执行转换的所有配置目标。也就是说,如果顶级目标位于目标配置中,则系统只会返回也位于目标配置中的已配置目标。如果顶级目标位于主机配置中,则系统只会返回主机配置的目标。此选项不会排除已解析的工具链。
代码:build_file_semantics
--transitions=<full, lite or none>
默认值:“none”-
cquery 将以何种格式输出转换信息。
代码:affects_outputs
--universe_scope=<comma-separated list of options>
默认值:“”-
一组以英文逗号分隔的目标模式(加色和减色)。查询可以在由指定目标的传递闭包定义的宇宙中执行。此选项适用于 query 和 cquery 命令。对于 cquery,此选项的输入是所有答案的构建目标,因此此选项可能会影响配置和转换。如果未指定此选项,则系统会假定顶级目标是从查询表达式解析出来的目标。注意:对于 cquery,如果无法使用顶级选项构建从查询表达式解析的目标,则不指定此选项可能会导致构建中断。
标记:loading_and_analysis
- 与 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
--override_module=<an equals-separated mapping of module name to path>
累计多次使用- 使用本地目录替换模块。
--registry=<a string>
累计多次使用-
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在较早的注册表中查找模块,只有在较早的注册表中没有模块时,才会回退到较新的注册表。
标记:changes_inputs
- 影响日志记录详细程度、格式或位置的选项:
--[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”指令,在这种情况下,系统会返回多个网址。
- 其他未归入其他类别的选项:
--override_repository=<an equals-separated mapping of repository name to path>
累计多次使用- 使用本地目录替换代码库。
- 用于控制 build 执行的选项:
--[no]experimental_inprocess_symlink_creation
默认值:“false”-
是否通过直接文件系统调用创建符号链接树
标记:loading_and_analysis
、execution
、experimental
--[no]experimental_remotable_source_manifests
默认值:“false”-
是否将来源清单操作设为可远程执行
标记:loading_and_analysis
、execution
、experimental
--[no]experimental_split_coverage_postprocessing
默认值:“false”-
如果为 true,则 Bazel 会在新 spawn 中为测试运行覆盖率后处理。
代码:execution
--[no]experimental_strict_fileset_output
默认值:“false”-
如果启用此选项,文件集将将所有输出工件视为常规文件。它们不会遍历目录,也不会对符号链接敏感。
代码:execution
--modify_execution_info=<regex=[+-]key,regex=[+-]key,...>
默认值:“”-
根据操作助记符,在操作的执行信息中添加或移除键。仅适用于支持执行信息的操作。许多常见操作都支持执行信息,例如 Genrule、CppCompile、Javac、StarlarkAction、TestRunner。指定多个值时,顺序很重要,因为许多正则表达式都可能适用于同一助记符。
语法:“regex=[+-]key,regex=[+-]key,...”
示例:'.*=+x,.*=-y,.*=+z' 会将“x”和“z”添加到所有操作的执行信息中,并从中移除“y”。
“Genrule=+requires-x”会将“requires-x”添加到所有 Genrule 操作的执行信息中。
'(?!Genrule).*=-requires-x' 会从所有非 Genrule 操作的执行信息中移除“requires-x”。
代码:execution
、affects_outputs
、loading_and_analysis
--persistent_android_dex_desugar
-
使用 worker 启用永久性 Android dex 和脱糖操作。
展开为:
--strategy=Desugar=worker
--strategy=DexBuilder=worker
代码:host_machine_resource_optimizations
、execution
--persistent_android_resource_processor
-
使用工作器启用永久性 Android 资源处理器。
展开为:
--internal_persistent_busybox_tools
--strategy=AaptPackage=worker
--strategy=AndroidResourceParser=worker
--strategy=AndroidResourceValidator=worker
--strategy=AndroidResourceCompiler=worker
--strategy=RClassGenerator=worker
--strategy=AndroidResourceLink=worker
--strategy=AndroidAapt2=worker
--strategy=AndroidAssetMerger=worker
--strategy=AndroidResourceMerger=worker
--strategy=AndroidCompiledResourceMerger=worker
--strategy=ManifestMerger=worker
--strategy=AndroidManifestMerger=worker
--strategy=Aapt2Optimize=worker
--strategy=AARGenerator=worker
代码:host_machine_resource_optimizations
、execution
--persistent_multiplex_android_dex_desugar
-
使用工作器启用永久的多路复用 Android dex 和脱糖操作。
展开为:
--persistent_android_dex_desugar
--modify_execution_info=Desugar=+supports-multiplex-workers
--modify_execution_info=DexBuilder=+supports-multiplex-workers
代码:host_machine_resource_optimizations
、execution
--persistent_multiplex_android_resource_processor
-
使用工作器启用永久性多路复用 Android 资源处理器。
展开为:
--persistent_android_resource_processor
--modify_execution_info=AaptPackage=+supports-multiplex-workers
--modify_execution_info=AndroidResourceParser=+supports-multiplex-workers
--modify_execution_info=AndroidResourceValidator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceCompiler=+supports-multiplex-workers
--modify_execution_info=RClassGenerator=+supports-multiplex-workers
--modify_execution_info=AndroidResourceLink=+supports-multiplex-workers
--modify_execution_info=AndroidAapt2=+supports-multiplex-workers
--modify_execution_info=AndroidAssetMerger=+supports-multiplex-workers
--modify_execution_info=AndroidResourceMerger=+supports-multiplex-workers
--modify_execution_info=AndroidCompiledResourceMerger=+supports-multiplex-workers
--modify_execution_info=ManifestMerger=+supports-multiplex-workers
--modify_execution_info=AndroidManifestMerger=+supports-multiplex-workers
--modify_execution_info=Aapt2Optimize=+supports-multiplex-workers
--modify_execution_info=AARGenerator=+supports-multiplex-workers
代码:host_machine_resource_optimizations
、execution
--persistent_multiplex_android_tools
-
启用持久性和多路复用 Android 工具(dex 编译、脱糖、资源处理)。
展开为:
--persistent_multiplex_android_resource_processor
--persistent_multiplex_android_dex_desugar
代码:host_machine_resource_optimizations
、execution
- 用于配置用于执行操作的工具链的选项:
--android_compiler=<a string>
默认:请参阅说明-
Android 目标编译器。
代码:affects_outputs
、loading_and_analysis
、loses_incremental_state
--android_crosstool_top=<a build target label>
默认值:“//external:android/crosstool”-
用于 Android build 的 C++ 编译器的位置。
代码:affects_outputs
、changes_inputs
、loading_and_analysis
、loses_incremental_state
--android_grte_top=<a label>
默认:请参阅说明-
Android 目标 grte_top。
代码:changes_inputs
、loading_and_analysis
、loses_incremental_state
--android_manifest_merger=<legacy, android or force_android>
默认值:“android”-
选择要用于 android_binary 规则的清单合并工具。用于帮助从旧版合并工具过渡到 Android 清单合并工具的标志。
代码:affects_outputs
、loading_and_analysis
、loses_incremental_state
--android_platforms=<a build target label>
默认值:“”-
设置 android_binary 目标使用的平台。如果指定了多个平台,则二进制文件是 fat APK,其中包含每个指定目标平台的原生二进制文件。
代码:changes_inputs
、loading_and_analysis
、loses_incremental_state
--android_sdk=<a build target label>
默认值:“@bazel_tools//tools/android:sdk”-
指定用于构建 Android 应用的 Android SDK/平台。
代码:changes_inputs
、loading_and_analysis
、loses_incremental_state
--apple_compiler=<a string>
默认:请参阅说明-
Apple 目标编译器。非常适合选择工具链的变体(例如 xcode-beta)。
代码:affects_outputs
、loading_and_analysis
、loses_incremental_state
--apple_crosstool_top=<a build target label>
默认值:"@bazel_tools//tools/cpp:toolchain"-
要在 Apple 和 Objc 规则及其依赖项中使用的交叉工具软件包的标签。
代码:loses_incremental_state
、changes_inputs
--apple_grte_top=<a build target label>
默认:请参阅说明-
Apple 目标平台 grte_top。
代码:changes_inputs
、loading_and_analysis
、loses_incremental_state
--cc_output_directory_tag=<a string>
默认值:“”-
指定要添加到配置目录的后缀。
代码:affects_outputs
、explicit_in_output_path
--compiler=<a string>
默认:请参阅说明-
用于编译目标的 C++ 编译器。
代码:loading_and_analysis
、execution
--coverage_output_generator=<a build target label>
默认值:“@bazel_tools//tools/test:lcov_merger”-
用于对原始覆盖率报告进行后处理的二进制文件的位置。此文件分组目前必须包含单个文件(二进制文件)。默认为“//tools/test:lcov_merger”。
代码:changes_inputs
、affects_outputs
、loading_and_analysis
--coverage_report_generator=<a build target label>
默认值:“@bazel_tools//tools/test:coverage_report_generator”-
用于生成覆盖率报告的二进制文件的位置。此文件分组目前必须包含单个文件(二进制文件)。默认为“//tools/test:coverage_report_generator”。
代码:changes_inputs
、affects_outputs
、loading_and_analysis
--coverage_support=<a build target label>
默认值:“@bazel_tools//tools/test:coverage_support”-
收集代码覆盖率的每个测试操作的输入所需的支持文件的位置。默认为“//tools/test:coverage_support”。
代码:changes_inputs
、affects_outputs
、loading_and_analysis
--crosstool_top=<a build target label>
默认值:"@bazel_tools//tools/cpp:toolchain"-
要用于编译 C++ 代码的跨平台工具包的标签。
代码:loading_and_analysis
、changes_inputs
、affects_outputs
--custom_malloc=<a build target label>
默认:请参阅说明-
指定自定义 malloc 实现。此设置会替换 build 规则中的 malloc 属性。
代码:changes_inputs
、affects_outputs
--experimental_add_exec_constraints_to_targets=<a '<RegexFilter>=<label1>[,<label2>,...]' assignment>
累计多次使用-
以英文逗号分隔的正则表达式列表,每个正则表达式可选择附加 -(负表达式)前缀,并与以英文逗号分隔的约束条件值目标列表进行 (=) 运算。如果目标与任何否定表达式都不匹配,但与至少一个肯定表达式匹配,则其工具链解析将像声明限制值为执行限制一样执行。示例://demo,-test=@platforms//cpus:x86_64 会将“x86_64”添加到 //demo 下的所有目标(名称包含“test”的目标除外)。
代码:loading_and_analysis
--[no]experimental_enable_objc_cc_deps
默认值:“true”- 允许 objc_* 规则依赖于 cc_library,并导致在 --ios_multi_cpu 中的任何值为“ios_<--ios_cpu>”时,将 --cpu 设置为“ios_<--ios_cpu>”来构建任何 objc 依赖项。
代码:loading_and_analysis
、incompatible_change
--[no]experimental_include_xcode_execution_requirements
默认值:“false”-
如果设置,则为每个 Xcode 操作添加“requires-xcode:{version}”执行要求。如果 xcode 版本使用连字符标签,请还添加“requires-xcode-label:{version_label}”执行要求。
代码:loses_incremental_state
、loading_and_analysis
、execution
--[no]experimental_prefer_mutual_xcode
默认值:“true”-
如果为 true,则使用本地和远程都提供的最新 Xcode。如果为 false,或者没有可供共用的版本,则使用通过 xcode-select 选择的本地 Xcode 版本。
代码:loses_incremental_state
--extra_execution_platforms=<comma-separated list of options>
累计多次使用-
可用作执行平台来运行操作的平台。平台可以通过确切目标或目标模式进行指定。这些平台会优先于通过 register_execution_platforms() 在 WORKSPACE 文件中声明的平台得到考虑。
代码段:execution
--extra_toolchains=<comma-separated list of options>
累计多次使用-
在工具链解析期间要考虑的工具链规则。工具链可以按确切目标指定,也可以作为目标模式指定。系统会先考虑这些工具链,然后再考虑通过 register_toolchains() 在 WORKSPACE 文件中声明的工具链。
代码段:affects_outputs
、changes_inputs
、loading_and_analysis
--grte_top=<a label>
默认:请参阅说明-
一个已签入的 libc 库的标签。默认值由交叉工具链选择,您几乎不需要替换它。
代码:action_command_lines
、affects_outputs
--host_compiler=<a string>
默认:请参阅说明-
用于主机编译的 C++ 编译器。如果未设置 --host_crosstool_top,系统会忽略它。
代码:loading_and_analysis
、execution
--host_crosstool_top=<a build target label>
默认:请参阅说明-
默认情况下,--crosstool_top 和 --compiler 选项也用于主机配置。如果提供了此标志,Bazel 会为给定的 crosstool_top 使用默认的 libc 和编译器。
代码:loading_and_analysis
、changes_inputs
、affects_outputs
--host_grte_top=<a label>
默认:请参阅说明-
如果指定,此设置将替换主机配置的 libc 顶级目录 (--grte_top)。
代码:action_command_lines
、affects_outputs
--host_platform=<a build target label>
默认值:“”-
描述主机系统的平台规则的标签。
代码:affects_outputs
、changes_inputs
、loading_and_analysis
--[no]incompatible_disable_expand_if_all_available_in_flag_set
默认值:“true”-
如果为 true,则 Bazel 不允许在 flag_sets 中指定 expand_if_all_available(如需了解迁移说明,请参阅 https://github.com/bazelbuild/bazel/issues/7008)。
代码:loading_and_analysis
、incompatible_change
--[no]incompatible_dont_enable_host_nonhost_crosstool_features
默认值:“true”-
如果为 true,Bazel 将不会在 c++ 工具链中启用“主机”和“非主机”功能(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7407)。
代码:loading_and_analysis
、incompatible_change
--[no]incompatible_enable_android_toolchain_resolution
默认值:“false”-
使用工具链解析为 Android 规则选择 Android SDK(Starlark 和原生)
代码段:loading_and_analysis
、incompatible_change
--[no]incompatible_enable_apple_toolchain_resolution
默认值:“false”-
使用工具链解析为 Apple 规则选择 Apple SDK(Starlark 和原生)
代码段:loading_and_analysis
、incompatible_change
--[no]incompatible_make_thinlto_command_lines_standalone
默认值:“true”-
如果为 true,则 Bazel 不会将 C++ 链接操作命令行重复用于 lto 编制索引命令行(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/6791)。
代码:loading_and_analysis
、incompatible_change
--[no]incompatible_remove_cpu_and_compiler_attributes_from_cc_toolchain
默认值:“true”-
如果为 true,则在设置 cc_toolchain.cpu 和 cc_toolchain.compiler 属性时,Bazel 会发出警告(如需了解迁移说明,请参阅 https://github.com/bazelbuild/bazel/issues/7075)。
代码:loading_and_analysis
、incompatible_change
--[no]incompatible_remove_legacy_whole_archive
默认值:“true”-
如果为 true,则 Bazel 不会默认将库依赖项作为整个归档文件进行关联(如需了解迁移说明,请参阅 https://github.com/bazelbuild/bazel/issues/7362)。
代码:loading_and_analysis
、incompatible_change
--[no]incompatible_require_ctx_in_configure_features
默认值:“true”-
如果为 true,则 Bazel 会要求在 cc_common.configure_features 中添加“ctx”参数(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7793)。
代码:loading_and_analysis
、incompatible_change
-
如果工具链支持,请使用接口共享对象。目前,所有 ELF 工具链都支持此设置。
代码:loading_and_analysis
、affects_outputs
、affects_outputs
--ios_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认:请参阅说明-
指定用于构建 iOS 应用的 iOS SDK 版本。如果未指定,则使用“xcode_version”中的默认 iOS SDK 版本。
代码:loses_incremental_state
--macos_sdk_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认:请参阅说明-
指定用于构建 macOS 应用的 macOS SDK 版本。如果未指定,则使用“xcode_version”中的默认 macOS SDK 版本。
代码:loses_incremental_state
--minimum_os_version=<a string>
默认:请参阅说明-
编译目标的最低操作系统版本。
代码:loading_and_analysis
、affects_outputs
--platform_mappings=<a relative path>
默认值:“”-
映射文件的位置,该文件描述了在未设置任何平台时应使用哪个平台,或者在平台已存在时应设置哪些标志。必须相对于主工作区根目录。默认为“platform_mappings”(位于工作区根目录下的文件)。
代码:affects_outputs
、changes_inputs
、loading_and_analysis
--platforms=<a build target label>
默认值:“”-
描述当前命令的目标平台的平台规则的标签。
代码:affects_outputs
、changes_inputs
、loading_and_analysis
--python2_path=<a string>
默认:请参阅说明-
已废弃,无操作。通过 `--incompatible_use_python_toolchains` 停用。
标记:no_op
、deprecated
--python3_path=<a string>
默认:请参阅说明-
已废弃,无操作。通过 `--incompatible_use_python_toolchains` 停用。
标记:no_op
、deprecated
--python_path=<a string>
默认:请参阅说明-
用于在目标平台上运行 Python 目标的 Python 解释器的绝对路径。已废弃;已通过 --incompatible_use_python_toolchains 停用。
代码:loading_and_analysis
、affects_outputs
--python_top=<a build target label>
默认:请参阅说明-
py_runtime 的标签,表示用于在目标平台上运行 Python 目标的调用 Python 解释器。已废弃;已通过 --incompatible_use_python_toolchains 停用。
代码:loading_and_analysis
、affects_outputs
--target_platform_fallback=<a build target label>
默认值:“@local_config_platform//:host”-
平台规则的标签。如果未设置目标平台,并且没有平台映射与当前的一组标志匹配,则应使用此平台规则。
代码:affects_outputs
、changes_inputs
、loading_and_analysis
--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_state
、loading_and_analysis
- 用于控制命令输出的选项:
--[no]apple_enable_auto_dsym_dbg
默认值:“false”-
是否强制为 dbg build 生成调试符号 (.dSYM) 文件。
代码:affects_outputs
、action_command_lines
--[no]apple_generate_dsym
默认值:“false”-
是否生成调试符号 (.dSYM) 文件。
代码:affects_outputs
、action_command_lines
--[no]build_runfile_links
默认值:“true”-
如果为 true,则为所有目标构建 runfile 符号链接森林。如果为 false,则尽可能仅写入清单。
代码:affects_outputs
--[no]build_runfile_manifests
默认值:“true”-
如果为 true,则为所有目标写入 runfile 清单。如果为 false,请省略。如果为 false,本地测试将无法运行。
代码:affects_outputs
--[no]build_test_dwp
默认值:“false”-
如果启用此选项,则在使用 fission 静态构建 C++ 测试时,系统还会自动构建测试二进制文件的 .dwp 文件。
代码:loading_and_analysis
、affects_outputs
--cc_proto_library_header_suffixes=<comma-separated list of options>
默认值:“.pb.h”-
设置 cc_proto_library 创建的头文件的前缀。
代码:affects_outputs
、loading_and_analysis
--cc_proto_library_source_suffixes=<comma-separated list of options>
默认值:“.pb.cc”-
设置 cc_proto_library 创建的源文件的前缀。
代码:affects_outputs
、loading_and_analysis
--[no]experimental_proto_descriptor_sets_include_source_info
默认值:“false”-
在 proto_library 中针对备选 Java API 版本运行额外操作。
代码:affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_proto_extra_actions
默认值:“false”-
在 proto_library 中针对备选 Java API 版本运行额外操作。
代码:affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_save_feature_state
默认值:“false”-
将启用和请求的功能的状态保存为编译输出。
代码:affects_outputs
、experimental
--fission=<a set of compilation modes>
默认值:“no”-
指定哪些编译模式会针对 C++ 编译和链接使用 fission。可以是 {'fastbuild', 'dbg', 'opt'} 的任意组合,也可以是特殊值“yes”(启用所有模式)和“no”(停用所有模式)。
代码:loading_and_analysis
、action_command_lines
、affects_outputs
--[no]incompatible_always_include_files_in_data
默认值:“true”-
如果为 true,原生规则会将数据依赖项的 <code>DefaultInfo.files</code> 添加到其 runfile,这与 Starlark 规则的建议行为一致 (https://bazel.build/extending/rules#runfiles_features_to_avoid)。
代码:affects_outputs
、incompatible_change
--[no]legacy_external_runfiles
默认值:“true”-
如果为 true,则在 .runfiles/wsname/external/repo 下(以及 .runfiles/repo 下)为外部代码库构建 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_outputs
、loading_and_analysis
、loses_incremental_state
--[no]android_databinding_use_androidx
默认值:“false”-
生成与 AndroidX 兼容的数据绑定文件。此属性仅适用于数据绑定 v2。
代码:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]android_databinding_use_v3_4_args
默认值:“false”-
使用带有 3.4.0 参数的 Android DataBinding v2
代码段:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--android_dynamic_mode=<off, default or fully>
默认值:“off”-
确定当 cc_binary 未明确创建共享库时,Android 规则的 C++ 依赖项是否会动态链接。“default”表示 bazel 将选择是否动态链接。“完全”表示所有库都将动态关联。“off”表示所有库都将以完全静态模式关联。
代码:affects_outputs
、loading_and_analysis
--android_manifest_merger_order=<alphabetical, alphabetical_by_configuration or dependency>
默认值:“alphabetical”-
设置传递给 Android 二进制文件的清单的合并顺序。ALPHABETICAL 表示清单按相对于 execroot 的路径排序。ALPHABETICAL_BY_CONFIGURATION 表示清单会按相对于输出目录中配置目录的路径进行排序。DEPENDENCY 表示清单按顺序排列,每个库的清单都位于其依赖项的清单之前。
代码:action_command_lines
、execution
--[no]android_resource_shrinking
默认值:“false”-
为使用 ProGuard 的 android_binary APK 启用资源缩减。
代码:affects_outputs
、loading_and_analysis
--apple_bitcode=<'mode' or 'platform=mode', where 'mode' is none, embedded_markers or embedded, and 'platform' is ios, watchos, tvos, macos or catalyst>
累计多次使用-
为定位到设备架构的编译步骤指定 Apple 位码模式。值采用“[platform=]mode”的格式,其中平台(必须为“ios”“macos”“tvos”或“watchos”)为可选项。如果提供,则位码模式将专门应用于该平台;如果省略,则应用于所有平台。模式必须为“none”“embedded_markers”或“embedded”。此选项可以多次提供。
代码:loses_incremental_state
--[no]build_python_zip
默认值:“auto”-
构建 Python 可执行 ZIP 文件;在 Windows 上处于开启状态,在其他平台上处于关闭状态
代码:affects_outputs
--catalyst_cpus=<comma-separated list of options>
累计多次使用-
要为其构建 Apple Catalyst 二进制文件的架构的逗号分隔列表。
代码:loses_incremental_state
、loading_and_analysis
--[no]collect_code_coverage
默认值:“false”-
如果指定,Bazel 将插桩代码(尽可能使用离线插桩),并在测试期间收集覆盖率信息。只有与 --instrumentation_filter 匹配的目标会受到影响。通常,不应直接指定此选项,而应改用“bazel coverage”命令。
代码:affects_outputs
--compilation_mode=<fastbuild, dbg or opt>
[-c
] 默认:“fastbuild”-
指定二进制文件的构建模式。值:“fastbuild”“dbg”“opt”。
代码:affects_outputs
、action_command_lines
、explicit_in_output_path
--conlyopt=<a string>
累计多次使用-
在编译 C 源文件时传递给 gcc 的额外选项。
代码:action_command_lines
、affects_outputs
--copt=<a string>
累计多次使用-
要传递给 gcc 的其他选项。
代码:action_command_lines
、affects_outputs
--cpu=<a string>
默认值:“”-
目标 CPU。
代码:changes_inputs
、affects_outputs
、explicit_in_output_path
--cs_fdo_absolute_path=<a string>
默认:请参阅说明-
使用 CSFDO 配置文件信息优化编译。指定包含配置文件(原始或编入索引的 LLVM 配置文件)的 ZIP 文件的绝对路径名称。
代码:affects_outputs
--cs_fdo_instrument=<a string>
默认:请参阅说明-
使用情境感知 FDO 插桩生成二进制文件。对于 Clang/LLVM 编译器,它还接受在运行时将原始配置文件转储到的目录名称。
代码:affects_outputs
--cs_fdo_profile=<a build target label>
默认:请参阅说明-
cs_fdo_profile,表示要用于优化的上下文感知型配置文件。
代码:affects_outputs
--cxxopt=<a string>
累计多次使用-
在编译 C++ 源文件时传递给 gcc 的其他选项。
代码:action_command_lines
、affects_outputs
--define=<a 'name=value' assignment>
累计多次使用- 每个 --define 选项都指定了 build 变量的赋值。
代码:changes_inputs
、affects_outputs
--dynamic_mode=<off, default or fully>
默认值:“default”-
确定是否将动态链接 C++ 二进制文件。“default”表示 Bazel 将选择是否动态链接。“完全”表示所有库都将动态关联。“off”表示所有库都将以完全静态模式关联。
代码:loading_and_analysis
、affects_outputs
--[no]enable_fdo_profile_absolute_path
默认值:“true”-
如果设置,使用 fdo_absolute_profile_path 将会引发错误。
代码:affects_outputs
--[no]enable_runfiles
默认值:“auto”-
启用 runfiles 符号链接树;默认情况下,在 Windows 和其他平台上处于关闭状态。
代码:affects_outputs
--experimental_action_listener=<a build target label>
累计多次使用- 已废弃,取而代之的是 aspect。使用 action_listener 将 extra_action 附加到现有 build 操作。
代码:execution
、experimental
--[no]experimental_android_compress_java_resources
默认值:“false”-
压缩 APK 中的 Java 资源
代码段:affects_outputs
、loading_and_analysis
、experimental
--[no]experimental_android_databinding_v2
默认值:“false”-
使用 Android DataBinding v2
代码段:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]experimental_android_resource_shrinking
默认值:“false”-
为使用 ProGuard 的 android_binary APK 启用资源缩减。
代码:affects_outputs
、loading_and_analysis
--[no]experimental_android_rewrite_dexes_with_rex
默认值:“false”-
使用 rex 工具重写 dex 文件
代码段:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--experimental_objc_fastbuild_options=<comma-separated list of options>
默认值:“-O0,-DDEBUG=1”-
将这些字符串用作 objc fastbuild 编译器选项。
代码:action_command_lines
--[no]experimental_omitfp
默认值:“false”-
如果为 true,则使用 libunwind 进行堆栈展开,并使用 -fomit-frame-pointer 和 -fasynchronous-unwind-tables 进行编译。
代码:action_command_lines
、affects_outputs
、experimental
--[no]experimental_platform_in_output_dir
默认值:“false”-
如果为 true,则输出目录名称中使用目标平台,而不是 CPU。
代码:affects_outputs
、experimental
--[no]experimental_use_llvm_covmap
默认值:“false”-
如果指定,在启用 collect_code_coverage 时,Bazel 将生成 llvm-cov 覆盖率映射信息,而不是 gcov。
代码:changes_inputs
、affects_outputs
、loading_and_analysis
、experimental
--fat_apk_cpu=<comma-separated list of options>
默认值:“armeabi-v7a”-
设置此选项可启用胖 APK,其中包含适用于所有指定目标架构的原生二进制文件,例如--fat_apk_cpu=x86,armeabi-v7a. 如果指定此标志,则系统会忽略 android_binary 规则的依赖项的 --android_cpu。
代码:affects_outputs
、loading_and_analysis
、loses_incremental_state
--[no]fat_apk_hwasan
默认值:“false”-
是否创建 HWASAN 分块。
代码:affects_outputs
、loading_and_analysis
、loses_incremental_state
--fdo_instrument=<a string>
默认:请参阅说明-
使用 FDO 插桩生成二进制文件。对于 Clang/LLVM 编译器,它还接受在运行时将原始配置文件转储到的目录名称。
代码:affects_outputs
--fdo_optimize=<a string>
默认:请参阅说明-
使用 FDO 配置文件信息优化编译。指定包含 .gcda 文件树、包含自动配置文件的 afdo 文件或 LLVM 配置文件的 ZIP 文件的名称。此标志还接受指定为标签的文件(例如 `//foo/bar:file.afdo` - 您可能需要向相应的软件包添加 `exports_files` 指令),以及指向 `fdo_profile` 目标的标签。此标志将被 `fdo_profile` 规则取代。
代码:affects_outputs
--fdo_prefetch_hints=<a build target label>
默认:请参阅说明-
使用缓存预取提示。
代码:affects_outputs
--fdo_profile=<a build target label>
默认:请参阅说明-
表示要用于优化的配置文件的 fdo_profile。
代码:affects_outputs
--features=<a string>
累计多次使用-
默认情况下,系统会为所有软件包启用或停用指定的功能。指定 -<feature> 会在全球范围内停用该功能。否定地图项始终会覆盖肯定地图项。此标志用于在不发布 Bazel 版本的情况下发布默认功能更改。
代码:changes_inputs
、affects_outputs
--[no]force_pic
默认值:“false”-
如果启用,所有 C++ 编译都会生成位置无关代码(“-fPIC”),链接会优先使用 PIC 预构建库而非非 PIC 库,并且链接会生成位置无关可执行文件(“-pie”)。
代码:loading_and_analysis
、affects_outputs
--host_action_env=<a 'name=value' assignment with an optional value part>
累计多次使用-
指定具有主机或执行配置的操作可用的一组环境变量。变量可以按名称指定,在这种情况下,值将从调用环境中获取;也可以通过名称=值对指定,这种情况下,值的设置不受调用环境的影响。此选项可多次使用;对于为同一变量指定的选项,最新的选项会胜出,不同变量的选项会累加。
代码:action_command_lines
--host_compilation_mode=<fastbuild, dbg or opt>
默认值:“opt”-
指定构建期间使用的工具将采用的模式。值:“fastbuild”“dbg”“opt”。
代码:affects_outputs
、action_command_lines
--host_conlyopt=<a string>
累计多次使用-
在为宿主工具编译 C 源文件时传递给 gcc 的额外选项。
代码:action_command_lines
、affects_outputs
--host_copt=<a string>
累计多次使用-
要传递给 gcc 以供宿主工具使用的其他选项。
代码:action_command_lines
、affects_outputs
--host_cpu=<a string>
默认值:“”-
主机 CPU。
代码:changes_inputs
、affects_outputs
--host_cxxopt=<a string>
累计多次使用-
要传递给 gcc 以供宿主工具使用的其他选项。
代码:action_command_lines
、affects_outputs
--host_force_python=<PY2 or PY3>
默认:请参阅说明-
替换主机配置的 Python 版本。可以是“PY2”或“PY3”。
代码:loading_and_analysis
、affects_outputs
--host_linkopt=<a string>
累计多次使用-
在关联主机工具时传递给 gcc 的其他选项。
代码:action_command_lines
、affects_outputs
--host_macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认:请参阅说明-
主机目标的最低兼容 macOS 版本。如果未指定,则使用“macos_sdk_version”。
代码:loses_incremental_state
--host_per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options>
累计多次使用-
在主机或执行配置中编译特定文件时,可选择性地传递给 C/C++ 编译器的其他选项。此选项可以多次传递。语法:regex_filter@option_1,option_2,...,option_n。其中,regex_filter 表示包含和排除正则表达式模式的列表(另请参阅 --instrumentation_filter)。option_1 到 option_n 表示任意命令行选项。如果选项包含英文逗号,则必须用反斜杠括起来。选项可以包含 @。只有第一个 @ 用于拆分字符串。示例:--host_per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 会将 -O0 命令行选项添加到 //foo/ 中所有 cc 文件(除了 bar.cc)的 gcc 命令行。
代码:action_command_lines
、affects_outputs
--host_swiftcopt=<a string>
累计多次使用-
可传递给 swiftc 以供宿主工具使用的其他选项。
代码:action_command_lines
、affects_outputs
--[no]incompatible_avoid_conflict_dlls
默认值:“true”-
如果启用此功能,Windows 上由 cc_library 生成的所有 C++ 动态链接库 (DLL) 都将重命名为 name_{hash}.dll,其中 hash 是根据 RepositoryName 和 DLL 的软件包路径计算得出的。如果有一个软件包依赖于多个同名 cc_library(例如 //foo/bar1:utils 和 //foo/bar2:utils),此选项非常有用。
代码:loading_and_analysis
、affects_outputs
、incompatible_change
--[no]incompatible_merge_genfiles_directory
默认值:“true”-
如果为 true,则 genfiles 目录会折叠到 bin 目录中。
代码:affects_outputs
、incompatible_change
--[no]incompatible_use_platforms_repo_for_constraints
默认值:“true”-
如果为 true,系统会移除 @bazel_tools 中的约束条件设置。
代码:affects_outputs
、incompatible_change
--[no]instrument_test_targets
默认值:“false”-
启用覆盖率时,指定是否考虑插桩测试规则。设置后,将检测 --instrumentation_filter 包含的测试规则。 否则,测试规则始终会从覆盖率插桩中排除。
代码:affects_outputs
--instrumentation_filter=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths>
默认:“-/javatests[/:],-/test/java[/:]”-
启用覆盖范围后,只有名称包含在指定的基于正则表达式的过滤器中的规则才会被检测。 系统会排除带有“-”前缀的规则。请注意,除非启用 --instrument_test_targets,否则系统只会插桩非测试规则。
代码:affects_outputs
--ios_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认:请参阅说明-
目标模拟器和设备的最低兼容 iOS 版本。如果未指定,则使用“ios_sdk_version”。
代码:loses_incremental_state
--ios_multi_cpus=<comma-separated list of options>
累计多次使用-
用于构建 ios_application 的架构的逗号分隔列表。结果是一个包含所有指定架构的通用二进制文件。
代码:loses_incremental_state
、loading_and_analysis
--[no]legacy_whole_archive
默认值:“true”-
已废弃,已被 --incompatible_remove_legacy_whole_archive 取代(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/7362)。启用后,对于 linkshared=True 且 linkopts 中包含 linkstatic=True 或“-static”的 cc_binary 规则,请使用 --whole-archive。这只是为了向后兼容。更好的替代方案是在需要时使用 alwayslink=1。
代码:action_command_lines
、affects_outputs
、deprecated
--linkopt=<a string>
累计多次使用-
在链接时传递给 gcc 的其他选项。
代码:action_command_lines
、affects_outputs
--ltobackendopt=<a string>
累计多次使用-
用于传递到 LTO 后端步骤的其他选项(在 --features=thin_lto 下)。
代码:action_command_lines
、affects_outputs
--ltoindexopt=<a string>
累计多次使用-
传递给 LTO 索引编制步骤的其他选项(在 --features=thin_lto 下)。
代码:action_command_lines
、affects_outputs
--macos_cpus=<comma-separated list of options>
累计多次使用-
要为其构建 Apple macOS 二进制文件的架构的逗号分隔列表。
代码:loses_incremental_state
、loading_and_analysis
--macos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认:请参阅说明-
目标平台的最低兼容 macOS 版本。如果未指定,则使用“macos_sdk_version”。
代码:loses_incremental_state
--[no]objc_debug_with_GLIBCXX
默认值:“false”-
如果已设置且编译模式设置为“dbg”,请定义 GLIBCXX_DEBUG、GLIBCXX_DEBUG_PEDANTIC 和 GLIBCPP_CONCEPT_CHECKS。
代码:action_command_lines
--[no]objc_enable_binary_stripping
默认值:“false”-
确定是否对已链接的二进制文件执行符号和死代码剥离。如果同时指定此标志和 --compilation_mode=opt,系统将执行二进制剥离。
代码:action_command_lines
--objccopt=<a string>
累计多次使用-
在编译 Objective-C/C++ 源文件时传递给 gcc 的其他选项。
代码:action_command_lines
--per_file_copt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options>
累计多次使用-
在编译特定文件时,有选择地传递给 gcc 的其他选项。此选项可以多次传递。语法:regex_filter@option_1,option_2,...,option_n。其中,regex_filter 表示包含和排除正则表达式模式的列表(另请参阅 --instrumentation_filter)。option_1 到 option_n 表示任意命令行选项。如果选项包含英文逗号,则必须用反斜杠括起来。选项可以包含 @。只有第一个 @ 用于拆分字符串。示例:--per_file_copt=//foo/.*\.cc,-//foo/bar\.cc@-O0 会将 -O0 命令行选项添加到 //foo/ 中所有 cc 文件(除了 bar.cc)的 gcc 命令行。
代码:action_command_lines
、affects_outputs
--per_file_ltobackendopt=<a comma-separated list of regex expressions with prefix '-' specifying excluded paths followed by an @ and a comma separated list of options>
累计多次使用-
在编译某些后端对象时,用于选择性传递给 LTO 后端的其他选项(在 --features=thin_lto 下)。此选项可以多次传递。语法:regex_filter@option_1,option_2,...,option_n。其中,regex_filter 表示包含和排除正则表达式模式的列表。option_1 到 option_n 表示任意命令行选项。如果选项包含英文逗号,则必须用反斜杠括起来。选项可以包含 @。只有第一个 @ 用于拆分字符串。示例:--per_file_ltobackendopt=//foo/.*\.o,-//foo/bar\.o@-O0 会将 -O0 命令行选项添加到 //foo/ 中所有 o 文件(bar.o 除外)的 LTO 后端命令行。
代码段:action_command_lines
、affects_outputs
--platform_suffix=<a string>
默认:请参阅说明-
指定要添加到配置目录的后缀。
代码:loses_incremental_state
、affects_outputs
、loading_and_analysis
--propeller_optimize=<a build target label>
默认:请参阅说明-
使用 Propeller 配置文件信息优化 build 目标。Propeller 配置文件必须至少包含以下两个文件之一:cc 配置文件和 ld 配置文件。此标志接受 build 标签,该标签必须引用螺旋桨配置文件输入文件。例如,定义标签的 BUILD 文件:a/b/BUILD:propeller_optimize( name = "propeller_profile", cc_profile = "propeller_cc_profile.txt", ld_profile = "propeller_ld_profile.txt",) 您可能需要向相应的软件包添加 exports_files 指令,以便 Bazel 能够看到这些文件。该选项的使用方式必须为:--propeller_optimize=//a/b:propeller_profile
代码:action_command_lines
、affects_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
-
如果为 true,则包含相同功能的原生库将在不同目标之间共享
代码:loading_and_analysis
、affects_outputs
--[no]stamp
默认值:“false”-
使用日期、用户名、主机名、工作区信息等对二进制文件进行标记。
标记:affects_outputs
--strip=<always, sometimes or never>
默认值:“有时”-
指定是否要剥离二进制文件和共享库(使用“-Wl,--strip-debug”)。“sometimes”的默认值表示仅当 --compilation_mode=fastbuild 时才进行剥离。
代码:affects_outputs
--stripopt=<a string>
累计多次使用-
生成“<name>.stripped”二进制文件时要传递给 strip 的其他选项。
代码:action_command_lines
、affects_outputs
--swiftcopt=<a string>
累计多次使用-
要传递给 Swift 编译的其他选项。
代码:action_command_lines
--tvos_cpus=<comma-separated list of options>
累计多次使用-
要构建 Apple tvOS 二进制文件的架构的逗号分隔列表。
代码:loses_incremental_state
、loading_and_analysis
--tvos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认:请参阅说明-
目标模拟器和设备的最低兼容 tvOS 版本。如果未指定,则使用“tvos_sdk_version”。
代码:loses_incremental_state
--watchos_cpus=<comma-separated list of options>
累计多次使用-
要构建 Apple watchOS 二进制文件的架构的逗号分隔列表。
代码:loses_incremental_state
、loading_and_analysis
--watchos_minimum_os=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认:请参阅说明-
目标模拟器和设备的最低兼容 watchOS 版本。如果未指定,则使用“watchos_sdk_version”。
代码:loses_incremental_state
--xbinary_fdo=<a build target label>
默认:请参阅说明-
使用 XbinaryFDO 配置文件信息优化编译。指定默认交叉二进制配置文件的名称。当此选项与 --fdo_instrument/--fdo_optimize/--fdo_profile 一起使用时,这些选项始终会优先,就像从未指定 xbinary_fdo 一样。
代码:affects_outputs
- 影响 Bazel 强制执行有效 build 输入(规则定义、标志组合等)的严格程度的选项:
--auto_cpu_environment_group=<a build target label>
默认值:“”-
声明要用于自动将 cpu 值映射到 target_environment 值的 environment_group。
代码:changes_inputs
、loading_and_analysis
、experimental
--[no]check_licenses
默认值:“false”-
检查依赖项软件包强加的许可限制是否与正在构建的目标的发布模式冲突。默认情况下,系统不会检查许可。
代码:build_file_semantics
--[no]check_visibility
默认值:“true”-
如果停用,目标依赖项中的可见性错误会降级为警告。
代码:build_file_semantics
--[no]desugar_for_android
默认值:“true”-
在 dexing 之前是否要脱糖 Java 8 字节码。
代码:affects_outputs
、loading_and_analysis
、loses_incremental_state
--[no]desugar_java8_libs
默认值:“false”-
确定是否应在面向旧版设备的应用中添加受支持的 Java 8 库。
代码:affects_outputs
、loading_and_analysis
、loses_incremental_state
、experimental
--[no]enforce_constraints
默认值:“true”-
检查每个目标与哪些环境兼容,如果有任何目标的依赖项不支持相同的环境,则报告错误
代码:build_file_semantics
--[no]experimental_allow_android_library_deps_without_srcs
默认值:“false”- 标志,用于帮助从允许到禁止使用依赖项的无源代码 android_library 规则进行过渡。默认情况下,需要清理仓库才能推出此功能。
代码:eagerness_to_exit
、loading_and_analysis
--[no]experimental_check_desugar_deps
默认值:“true”-
确定是否在 Android 二进制级别仔细检查是否正确脱糖。
代码:eagerness_to_exit
、loading_and_analysis
、experimental
--experimental_import_deps_checking=<off, warning or error>
默认值:“OFF”-
启用后,检查 aar_import 的依赖项是否已完成。此强制执行可能会破坏 build,也可能只会导致警告。
代码:loading_and_analysis
--experimental_strict_java_deps=<off, warn, error, strict or default>
默认值:“default”-
如果为 true,则检查 Java 目标是否明确将所有直接使用的目标声明为依赖项。
代码:build_file_semantics
、eagerness_to_exit
--[no]incompatible_check_testonly_for_output_files
默认值:“false”-
如果启用,则通过查找生成规则的 testonly 来检查输出文件的先决条件目标的 testonly。这与可见性检查一致。
代码:build_file_semantics
、incompatible_change
--[no]incompatible_disable_native_android_rules
默认值:“false”-
如果启用,系统会停用直接使用原生 Android 规则的功能。请使用 https://github.com/bazelbuild/rules_android 中的 Starlark Android 规则
代码段:eagerness_to_exit
、incompatible_change
--[no]incompatible_disable_native_apple_binary_rule
默认值:“false”-
无操作。保留此处是为了向后兼容。
代码:eagerness_to_exit
、incompatible_change
--[no]incompatible_force_strict_header_check_from_starlark
默认值:“true”-
如果启用,请在 Starlark API 中设置严格的标头检查
标记:loading_and_analysis
、changes_inputs
、incompatible_change
--[no]incompatible_validate_top_level_header_inclusions
默认值:“true”-
如果为 true,Bazel 还会验证顶级目录头文件包含情况(如需了解详情,请参阅 https://github.com/bazelbuild/bazel/issues/10047)。
代码:loading_and_analysis
、incompatible_change
--[no]strict_filesets
默认值:“false”-
如果此选项处于启用状态,则系统会将跨越软件包边界的文件集报告为错误。停用 check_fileset_dependencies_recursively 后,此方法不起作用。
代码:build_file_semantics
、eagerness_to_exit
--strict_proto_deps=<off, warn, error, strict or default>
默认值:“error”-
除非设为 OFF,否则会检查 proto_library 目标是否明确将所有直接使用的目标声明为依赖项。
代码:build_file_semantics
、eagerness_to_exit
、incompatible_change
--strict_public_imports=<off, warn, error, strict or default>
默认值:“off”-
除非处于“OFF”状态,否则会检查 proto_library 目标是否明确将“import public”中使用的所有目标声明为导出。
代码:build_file_semantics
、eagerness_to_exit
、incompatible_change
--[no]strict_system_includes
默认值:“false”-
如果为 true,则还需要声明通过系统包含路径 (-isystem) 找到的头文件。
代码:loading_and_analysis
、eagerness_to_exit
--target_environment=<a build target label>
累计多次使用-
声明此 build 的目标环境。必须是指向“environment”规则的标签引用。如果指定了此属性,则所有顶级目标都必须与此环境兼容。
代码:changes_inputs
- 影响 build 签名输出的选项:
--apk_signing_method=<v1, v2, v1_v2 or v4>
默认值:“v1_v2”-
用于对 APK 进行签名的实现
代码段:action_command_lines
、affects_outputs
、loading_and_analysis
--[no]device_debug_entitlements
默认值:“true”-
如果已设置且编译模式不是“opt”,则 objc 应用在签名时会包含调试权限。
代码:changes_inputs
--ios_signing_cert_name=<a string>
默认:请参阅说明-
用于 iOS 签名的证书名称。如果未设置,则会回退为配置文件。可以是证书的钥匙串身份偏好设置,也可以是证书公用名的子字符串(根据 codesign 的手册页 [SIGNING IDENTITIES])。
标记:action_command_lines
- 此选项会影响 Starlark 语言的语义或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API。
--[no]incompatible_disallow_legacy_py_provider
默认值:“true”-
无操作,即将被移除。
标记:loading_and_analysis
、incompatible_change
- 用于控制测试环境或测试运行程序行为的选项:
--[no]allow_analysis_failures
默认值:“false”-
如果为 true,规则目标的分析失败会导致目标传播包含错误说明的 AnalysisFailureInfo 实例,而不是导致构建失败。
代码:loading_and_analysis
、experimental
--analysis_testing_deps_limit=<an integer>
默认值:“2000”-
通过具有 for_analysis_testing 配置转换的规则属性设置传递依赖项的数量上限。超出此限制将导致规则错误。
代码:loading_and_analysis
--[no]break_build_on_parallel_dex2oat_failure
默认值:“false”-
如果为 true,则 dex2oat 操作失败会导致 build 中断,而不是在测试运行时执行 dex2oat。
代码:loading_and_analysis
、experimental
--[no]experimental_android_use_parallel_dex2oat
默认值:“false”-
并行使用 dex2oat,可能会加快 android_test 的速度。
代码:loading_and_analysis
、host_machine_resource_optimizations
、experimental
--[no]ios_memleaks
默认值:“false”-
启用在 ios_test 目标中检查内存泄露。
代码:action_command_lines
--ios_simulator_device=<a string>
默认:请参阅说明-
在模拟器中运行 iOS 应用时要模拟的设备,例如“iPhone 6”。您可以在将要运行模拟器的机器上运行“xcrun simctl list devicetypes”以获取设备列表。
代码:test_runner
--ios_simulator_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认:请参阅说明-
在运行或测试时,要在模拟器上运行的 iOS 版本。如果 ios_test 规则中指定了目标设备,则系统会忽略此属性。
代码:test_runner
--runs_per_test=<a positive integer or test_regex@runs. This flag may be passed more than once>
累计多次使用- 指定运行每个测试的次数。如果其中任何一次尝试因任何原因而失败,则整个测试都将被视为失败。通常,指定的值只是一个整数。示例:--runs_per_test=3 将会运行所有测试 3 次。备选语法:regex_filter@runs_per_test。其中,runs_per_test 表示一个整数值,regex_filter 表示包含和排除正则表达式模式的列表(另请参阅 --instrumentation_filter)。示例:--runs_per_test=//foo/.*,-//foo/bar/.*@3 会运行 //foo/ 中的所有测试(foo/bar 下的测试除外)三次。此选项可以多次传递。最晚传递的匹配实参优先。如果没有任何匹配项,则仅运行一次测试。
--test_env=<a 'name=value' assignment with an optional value part>
累计多次使用-
指定要注入到测试运行程序环境中的其他环境变量。变量可以按名称指定(在这种情况下,其值将从 Bazel 客户端环境读取),也可以按名称-值对指定。您可以多次使用此选项来指定多个变量。仅供“bazel test”命令使用。
代码:test_runner
--test_timeout=<a single integer or comma-separated list of 4 integers>
默认值:“-1”- 替换测试超时的默认测试超时值(以秒为单位)。如果指定单个正整数值,则该值会替换所有类别。如果指定了 4 个以英文逗号分隔的整数,它们将替换短时、中等、长时和永久(按此顺序)的超时设置。无论采用哪种形式,值为 -1 都表示 Blaze 应针对该类别使用其默认超时设置。
--tvos_simulator_device=<a string>
默认:请参阅说明-
在模拟器中运行 tvOS 应用时要模拟的设备,例如“Apple TV 1080p”。您可以在将要运行模拟器的机器上运行“xcrun simctl list devicetypes”以获取设备列表。
代码:test_runner
--tvos_simulator_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认:请参阅说明-
运行或测试时要在模拟器上运行的 tvOS 版本。
代码:test_runner
--watchos_simulator_device=<a string>
默认:请参阅说明-
在模拟器中运行 watchOS 应用时要模拟的设备,例如“Apple Watch - 38 毫米”。您可以在将要运行模拟器的机器上运行“xcrun simctl list devicetypes”以获取设备列表。
代码:test_runner
--watchos_simulator_version=<a dotted version (for example '2.3' or '3.3alpha2.4')>
默认:请参阅说明-
运行或测试时要在模拟器上运行的 watchOS 版本。
代码:test_runner
--[no]zip_undeclared_test_outputs
默认值:“true”-
如果为 true,则未声明的测试输出将归档到 zip 文件中。
代码:test_runner
- 与查询输出和语义相关的选项:
--aspect_deps=<off, conservative or precise>
默认值:“保守”-
如何在输出格式为 {xml,proto,record} 之一时解析方面依赖项。“关闭”表示不解析任何方面依赖项;“保守”(默认)表示添加所有声明的方面依赖项,无论它们是否被赋予直接依赖项的规则类;“精确”表示仅添加可能处于活动状态的方面,具体取决于直接依赖项的规则类。请注意,精确模式需要加载其他软件包才能评估单个目标,因此速度比其他模式慢。另请注意,即使是精确模式也不完全精确:计算某个方面是否需要在分析阶段决定,而该阶段不会在“bazel query”期间运行。
代码:build_file_semantics
--[no]graph:factored
默认值:“true”-
如果为 true,则会以“分解”形式发出图,即将拓扑等效的节点合并在一起,并串联其标签。此选项仅适用于 --output=graph。
代码:terminal_output
--graph:node_limit=<an integer>
默认值:“512”-
输出中图表节点的标签字符串的最大长度。较长的标签将被截断;-1 表示不截断。此选项仅适用于 --output=graph。
代码:terminal_output
--[no]implicit_deps
默认值:“true”-
如果启用,隐式依赖项将包含在查询操作的依赖图中。隐式依赖项是指未在 BUILD 文件中明确指定,但由 Bazel 添加的依赖项。对于 cquery,此选项用于控制过滤已解析的工具链。
代码:build_file_semantics
--[no]include_aspects
默认值:“true”-
aquery、cquery:是否在输出中包含由方面生成的操作。query:无操作(始终遵循方面)。
代码:terminal_output
--[no]incompatible_display_source_file_location
默认值:“true”-
默认值为 true,用于显示源文件的目标。如果为 true,则在位置输出中显示源文件第 1 行的所在位置。此标志仅用于迁移目的。
代码:terminal_output
、incompatible_change
--[no]incompatible_package_group_includes_double_slash
默认值:“true”-
如果启用,则在输出 package_group 的 `packages` 属性时,不会省略开头的 `//`。
代码:terminal_output
、incompatible_change
--[no]infer_universe_scope
默认值:“false”- 如果已设置,并且未设置 --universe_scope,则 --universe_scope 的值将推断为查询表达式中的唯一目标模式列表。请注意,为使用全局范围函数(例如 `allrdeps`)的查询表达式推断出的 --universe_scope 值可能不是您想要的,因此只有在您知道自己在做什么的情况下,才应使用此选项。如需了解详情和示例,请参阅 https://bazel.build/query/language#sky-query。如果设置了 --universe_scope,则系统会忽略此选项的值。注意:此选项仅适用于“query”(即不适用于“cquery”)。
代码:loading_and_analysis
--[no]line_terminator_null
默认值:“false”-
确定每个格式是否以 \0(而非换行符)结尾。
代码:terminal_output
--[no]nodep_deps
默认值:“true”-
如果启用,查询操作所依赖的依赖项图中将包含“nodep”属性中的依赖项。“nodep”属性的一个常见示例是“visibility”。运行并解析 `info build-language` 的输出,了解 build 语言中的所有“nodep”属性。
代码:build_file_semantics
--output=<a string>
默认值:“label”-
cquery 结果应采用的输出格式。cquery 的允许值包括:label、label_kind、textproto、transitions、proto、jsonproto。如果您选择“转场效果”,则还必须指定 --transitions=(lite|full) 选项。
代码:terminal_output
--[no]proto:default_values
默认值:“true”-
如果为 true,则会包含在 BUILD 文件中未明确指定值的属性;否则,会忽略这些属性。此选项适用于 --output=proto
标记:terminal_output
--[no]proto:definition_stack
默认值:“false”-
填充 definition_stack proto 字段,该字段会为每个规则实例记录规则类定义时刻的 Starlark 调用堆栈。
代码:terminal_output
--[no]proto:flatten_selects
默认值:“true”-
如果启用,由 select() 创建的可配置属性会扁平化。对于列表类型,扁平化表示法是包含所选映射的每个值恰好一次的列表。标量类型会扁平化为 null。
代码:build_file_semantics
--[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
--[no]relative_locations
默认值:“false”-
如果为 true,xml 和 proto 输出中的 BUILD 文件的位置将是相对位置。默认情况下,位置输出是绝对路径,并且在不同机器之间不会保持一致。您可以将此选项设置为 true,以便在不同机器上获得一致的结果。
代码:terminal_output
--show_config_fragments=<off, direct or transitive>
默认值:“off”-
显示规则及其传递依赖项所需的配置 fragment。这对于评估可对配置的目标图表进行多大程度的修剪非常有用。
代码:affects_outputs
--starlark:expr=<a string>
默认值:“”-
一个 Starlark 表达式,用于在 cquery 的 --output=starlark 模式下设置每个已配置的目标的格式。配置的目标已绑定到“target”。如果未指定 --starlark:expr 和 --starlark:file,则此选项将默认为“str(target.label)”。同时指定 --starlark:expr 和 --starlark:file 是错误的。
代码:terminal_output
--starlark:file=<a string>
默认值:“”-
用于定义一个名为“format”且只有一个参数的 Starlark 函数的文件的名称。该函数会应用于每个配置的目标,以将其格式化为字符串。同时指定 --starlark:expr 和 --starlark:file 是错误的。如需了解详情,请参阅 --output=starlark 的帮助。
代码:terminal_output
--[no]tool_deps
默认值:“true”-
查询:如果停用,查询所依赖的“主机配置”或“执行”目标将不会包含在查询所操作的依赖项图中。“主机配置”依赖项边(例如,从任何“proto_library”规则到协议编译器的边)通常指向构建期间执行的工具,而不是同一“目标”程序的一部分。
Cquery:如果停用,则会滤除从发现此配置目标的顶级目标跨主机或执行转换的所有配置目标。也就是说,如果顶级目标位于目标配置中,则系统只会返回也位于目标配置中的已配置目标。如果顶级目标位于主机配置中,则系统只会返回主机配置的目标。此选项不会排除已解析的工具链。
代码:build_file_semantics
--transitions=<full, lite or none>
默认值:“none”-
cquery 将以何种格式输出转换信息。
代码:affects_outputs
--universe_scope=<comma-separated list of options>
默认值:“”-
一组以英文逗号分隔的目标模式(加色和减色)。查询可以在由指定目标的传递闭包定义的宇宙中执行。此选项适用于 query 和 cquery 命令。对于 cquery,此选项的输入是所有答案的构建目标,因此此选项可能会影响配置和转换。如果未指定此选项,则系统会假定顶级目标是从查询表达式解析出来的目标。注意:对于 cquery,如果无法使用顶级选项构建从查询表达式解析的目标,则不指定此选项可能会导致构建中断。
代码段:loading_and_analysis
- 触发构建时间优化的选项:
--[no]collapse_duplicate_defines
默认值:“false”-
启用后,系统会在构建阶段提前移除多余的 --define。这样可以避免某些类型的等效 build 不必要地丢失分析缓存。
代码:loading_and_analysis
、loses_incremental_state
--[no]experimental_filter_library_jar_with_program_jar
默认值:“false”-
过滤 ProGuard ProgramJar,以移除 LibraryJar 中也存在的所有类。
代码:action_command_lines
--[no]experimental_inmemory_dotd_files
默认值:“true”-
如果启用,C++ .d 文件将直接从远程构建节点在内存中传递,而不是写入磁盘。
代码:loading_and_analysis
、execution
、affects_outputs
、experimental
--[no]experimental_inmemory_jdeps_files
默认值:“true”-
如果启用,从 Java 编译生成的依赖项 (.jdeps) 文件将直接从远程构建节点在内存中传递,而不是写入磁盘。
代码:loading_and_analysis
、execution
、affects_outputs
、experimental
--[no]experimental_objc_include_scanning
默认值:“false”-
是否要为 Objective-C/C++ 执行包含扫描。
代码:loading_and_analysis
、execution
、changes_inputs
--[no]experimental_parse_headers_skipped_if_corresponding_srcs_found
默认值:“false”-
如果启用,当在同一目标中找到具有相同 basename 的源代码时,parse_headers 功能不会创建单独的头文件编译操作。
代码:loading_and_analysis
、affects_outputs
--[no]experimental_retain_test_configuration_across_testonly
默认值:“false”-
启用后,--trim_test_configuration 不会修剪标记为 testonly=1 的规则的测试配置。这是为了减少在非测试规则依赖于 cc_test 规则时出现的操作冲突问题。如果 --trim_test_configuration 为 false,则无效。
代码:loading_and_analysis
、loses_incremental_state
--[no]experimental_starlark_cc_import
默认值:“false”-
如果启用,则可以使用 Starlark 版本的 cc_import。
代码:loading_and_analysis
、experimental
--[no]experimental_unsupported_and_brittle_include_scanning
默认值:“false”-
确定是否通过解析输入文件中的 #include 行来缩小 C/C++ 编译的输入范围。这可以通过缩减编译输入树的大小来提高性能和增量性。不过,它也可能会破坏 build,因为包含扫描器未完全实现 C 预处理器语义。具体而言,它不理解动态 #include 指令,并会忽略预处理器条件逻辑。使用时需自行承担风险。与此举报相关的所有已提交问题都将关闭。
代码:loading_and_analysis
、execution
、changes_inputs
--[no]incremental_dexing
默认值:“true”- 会为每个 Jar 文件单独执行大部分 dex 处理工作。
代码:affects_outputs
、loading_and_analysis
、loses_incremental_state
--[no]objc_use_dotd_pruning
默认值:“true”-
如果设置,clang 发出的 .d 文件将用于修剪传入 objc 编译的输入集。
代码:changes_inputs
、loading_and_analysis
--[no]process_headers_in_dependencies
默认值:“false”-
构建目标 //a:a 时,处理 //a:a 依赖的所有目标中的头文件(如果为工具链启用了头文件处理)。
代码:execution
--[no]trim_test_configuration
默认值:“true”-
启用后,系统会在 build 的顶级下清除与测试相关的选项。当此标志处于启用状态时,测试无法构建为非测试规则的依赖项,但对测试相关选项所做的更改不会导致系统重新分析非测试规则。
代码:loading_and_analysis
、loses_incremental_state
--[no]use_singlejar_apkbuilder
默认值:“true”-
此选项已废弃。该参数现在已无效,很快就会被移除。
标记:loading_and_analysis
- 影响日志记录详细程度、格式或位置的选项:
--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”(默认值)时,只有当此标志设置为 true 时,才会被视为 false。请参阅 https://github.com/bazelbuild/bazel/issues/10076。
代码:affects_outputs
、incompatible_change
--[no]incompatible_py2_outputs_are_suffixed
默认值:“true”- 如果为 true,则在 Python 2 配置中构建的目标将显示在包含后缀“-py2”的输出根目录下,而针对 Python 3 构建的目标将显示在不含 Python 相关后缀的根目录下。这意味着 `bazel-bin` 便捷符号链接将指向 Python 3 目标,而不是 Python 2。如果您启用此选项,我们还建议您启用 `--incompatible_py3_is_default`。
代码段:affects_outputs
、incompatible_change
--[no]incompatible_py3_is_default
默认值:“true”-
如果为 true,则未设置 `python_version`(或 `default_python_version`)属性的 `py_binary` 和 `py_test` 目标将默认设为 PY3,而不是 PY2。如果您设置此标志,则建议您也设置 `--incompatible_py2_outputs_are_suffixed`。
代码:loading_and_analysis
、affects_outputs
、incompatible_change
--[no]incompatible_use_python_toolchains
默认值:“true”-
如果设置为 true,可执行的原生 Python 规则将使用 Python 工具链指定的 Python 运行时,而不是 --python_top 等旧版标志提供的运行时。
代码:loading_and_analysis
、incompatible_change
--python_version=<PY2 or PY3>
默认:请参阅说明-
Python 主要版本模式,即 `PY2` 或 `PY3`。请注意,此值会被 `py_binary` 和 `py_test` 目标替换(即使它们未明确指定版本),因此通常没有太多理由提供此标志。
代码:loading_and_analysis
、affects_outputs
、explicit_in_output_path
- 不属于其他类别的其他选项:
--[no]cache_test_results
[-t
] 默认值:“auto”- 如果设置为“auto”,则只有在以下情况下,Bazel 才会重新运行测试:(1) Bazel 检测到测试或其依赖项发生了变化,(2) 测试被标记为外部测试,(3) 使用 --runs_per_test 请求了多次测试运行,或(4) 测试之前失败。如果设为“yes”,则 Bazel 会缓存所有测试结果(标记为外部的测试除外)。如果设为“no”,则 Bazel 不会缓存任何测试结果。
--[no]experimental_cancel_concurrent_tests
默认值:“false”-
如果为 true,则 Blaze 会在首次成功运行时取消并发运行的测试。此选项仅与 --runs_per_test_detects_flakes 结合使用时才有用。
代码:affects_outputs
、loading_and_analysis
--[no]experimental_fetch_all_coverage_outputs
默认值:“false”-
如果为 true,则 Bazel 会在运行覆盖率期间提取每个测试的整个覆盖率数据目录。
代码:affects_outputs
、loading_and_analysis
--[no]experimental_generate_llvm_lcov
默认值:“false”-
如果为 true,则 clang 的覆盖率将生成 LCOV 报告。
代码:affects_outputs
、loading_and_analysis
--[no]experimental_j2objc_header_map
默认值:“true”- 确定是否应在 J2ObjC 转译期间并行生成 J2ObjC 头文件映射。
--[no]experimental_j2objc_shorter_header_path
默认值:“false”-
是否使用更短的头文件路径进行生成(使用“_ios”而非“_j2objc”)。
代码:affects_outputs
--experimental_java_classpath=<off, javabuilder or bazel>
默认值:“javabuilder”- 为 Java 编译启用缩减的类路径。
--[no]experimental_limit_android_lint_to_android_constrained_java
默认值:“false”-
将 --experimental_run_android_lint_on_java_rules 限制为仅适用于与 Android 兼容的库。
代码:affects_outputs
--[no]experimental_run_android_lint_on_java_rules
默认值:“false”-
是否验证 java_* 源代码。
代码:affects_outputs
--[no]explicit_java_test_deps
默认值:“false”- 在 java_test 中明确指定对 JUnit 或 Hamcrest 的依赖项,而不是意外从 TestRunner 的依赖项中获取。目前仅适用于 bazel。
--host_java_launcher=<a build target label>
默认:请参阅说明- 构建期间执行的工具使用的 Java 启动器。
--host_javacopt=<a string>
累计多次使用- 在构建构建期间执行的工具时传递给 javac 的其他选项。
--host_jvmopt=<a string>
累计多次使用- 在构建期间执行的工具的构建过程中传递给 Java VM 的其他选项。这些选项将添加到每个 java_binary 目标的虚拟机启动选项中。
--[no]incompatible_exclusive_test_sandboxed
默认值:“false”-
如果为 true,系统将使用沙盒化策略运行专属测试。添加了“local”标记,以强制在本地运行专属测试
代码:incompatible_change
--[no]incompatible_strict_action_env
默认值:“false”-
如果为 true,则 Bazel 会使用 PATH 为静态值的环境,并且不会继承 LD_LIBRARY_PATH。如果您想从客户端继承特定环境变量,请使用 --action_env=ENV_VARIABLE,但请注意,这样做可能会阻止使用共享缓存时跨用户缓存。
代码:loading_and_analysis
、incompatible_change
--j2objc_translation_flags=<comma-separated list of options>
累计多次使用- 要传递给 J2ObjC 工具的其他选项。
--java_debug
-
导致 Java 测试的 Java 虚拟机在开始测试之前等待来自符合 JDWP 规范的调试程序(例如 jdb)的连接。隐含 -test_output=streamed。
展开为:
--test_arg=--wrapper_script_flag=--debug
--test_output=streamed
--test_strategy=exclusive
--test_timeout=9999
--nocache_test_results
--[no]java_deps
默认值:“true”- 为每个 Java 目标生成依赖项信息(目前为编译时间类路径)。
--[no]java_header_compilation
默认值:“true”- 直接从源代码编译 ijar。
--java_language_version=<a string>
默认值:“8”- Java 语言版本
--java_launcher=<a build target label>
默认:请参阅说明- 构建 Java 二进制文件时要使用的 Java 启动器。如果此标志设置为空字符串,则系统会使用 JDK 启动器。“launcher”属性会替换此标志。
--java_runtime_version=<a string>
默认值:“local_jdk”- Java 运行时版本
--javacopt=<a string>
累计多次使用- 要传递给 javac 的其他选项。
--jvmopt=<a string>
累计多次使用- 要传递给 Java VM 的其他选项。这些选项将添加到每个 java_binary 目标的虚拟机启动选项中。
--legacy_main_dex_list_generator=<a build target label>
默认:请参阅说明- 指定用于在编译旧版 multidex 时生成必须位于主 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_outputs
、loading_and_analysis
--proto_toolchain_for_cc=<a build target label>
默认值:“@bazel_tools//tools/proto:cc_toolchain”-
proto_lang_toolchain() 的标签,用于说明如何编译 C++ protos
代码段:affects_outputs
、loading_and_analysis
--proto_toolchain_for_j2objc=<a build target label>
默认值:“@bazel_tools//tools/j2objc:j2objc_proto_toolchain”-
proto_lang_toolchain() 的标签,用于说明如何编译 j2objc protos
标记:affects_outputs
、loading_and_analysis
--proto_toolchain_for_java=<a build target label>
默认值:“@bazel_tools//tools/proto:java_toolchain”-
proto_lang_toolchain() 的标签,用于说明如何编译 Java protos
代码段:affects_outputs
、loading_and_analysis
--proto_toolchain_for_javalite=<a build target label>
默认值:“@bazel_tools//tools/proto:javalite_toolchain”-
proto_lang_toolchain() 的标签,用于说明如何编译 JavaLite protos
标记:affects_outputs
、loading_and_analysis
--protocopt=<a string>
累计多次使用-
要传递给 protobuf 编译器的其他选项。
代码:affects_outputs
--[no]runs_per_test_detects_flakes
默认值:“false”- 如果为 true,则至少有一个运行/尝试通过且至少有一个运行/尝试失败的任何分片都会获得 FLAKY 状态。
--shell_executable=<a path>
默认:请参阅说明-
要供 Bazel 使用的 shell 可执行文件的绝对路径。如果未设置此变量,但在首次调用 Bazel(启动 Bazel 服务器)时设置了 BAZEL_SH 环境变量,则 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 or disabled>
默认值:“explicit”- 指定测试分片策略:如果存在“shard_count”构建属性,则使用“explicit”;否则不使用分片。“disabled”(已停用),表示永不使用测试分片。
--tool_java_language_version=<a string>
默认值:“8”- 用于执行构建期间所需工具的 Java 语言版本
--tool_java_runtime_version=<a string>
默认值:“remotejdk_11”- 在构建期间用于执行工具的 Java 运行时版本
--[no]use_ijars
默认值:“true”- 如果启用此选项,Java 编译将使用接口 jar。这会加快增量编译速度,但错误消息可能会有所不同。
转储选项
- 显示在命令之前并由客户端解析的选项:
--distdir=<a path>
累计多次使用-
在访问网络下载归档文件之前,可搜索归档文件的其他位置。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_hardlinks
默认值:“false”-
如果设置了此选项,代码库缓存在命中缓存时会硬链接文件,而不是进行复制。这是为了节省磁盘空间。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_urls_as_default_canonical_id
默认值:“false”-
如果为 true,则使用从代码库下载网址派生的字符串作为 canonical_id(如果未指定)。这会导致网址发生变化,从而导致重新下载,即使缓存中包含具有相同哈希值的下载内容也是如此。这可用于验证网址更改不会导致缓存掩盖损坏的代码库。
代码:loading_and_analysis
、experimental
--[no]experimental_repository_disable_download
默认值:“false”-
如果设置,则不允许下载外部代码库。
代码:experimental
--experimental_repository_downloader_retries=<an integer>
默认值:“0”-
下载错误的重试尝试次数上限。如果设置为 0,则会停用重试。
代码:experimental
--experimental_scale_timeouts=<a double>
默认值:“1.0”-
将 Starlark 代码库规则中的所有超时时间乘以此系数。这样,外部代码库就可以在比规则作者预期更慢的机器上运行,而无需更改源代码
代码:bazel_internal_configuration
、experimental
--http_timeout_scaling=<a double>
默认值:“1.0”-
按给定系数缩放与 http 下载相关的所有超时时间
代码:bazel_internal_configuration
--repository_cache=<a path>
默认:请参阅说明-
指定在提取外部代码库期间获取的下载值的缓存位置。将空字符串作为参数会请求停用缓存。
代码:bazel_internal_configuration
- 用于控制命令输出的选项:
--[no]action_cache
默认值:“false”-
转储操作缓存内容。
代码:bazel_monitoring
--[no]packages
默认值:“false”-
转储软件包缓存内容。
代码:bazel_monitoring
--[no]rule_classes
默认值:“false”-
转储规则类。
代码:bazel_monitoring
--[no]rules
默认值:“false”- dump 规则,包括计数和内存用量(如果跟踪内存)。
代码:bazel_monitoring
--skyframe=<off, summary, count, deps or rdeps>
默认值:“off”-
转储 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
- 影响 Bazel 强制执行有效 build 输入(规则定义、标志组合等)的严格程度的选项:
--experimental_repository_hash_file=<a string>
默认值:“”-
如果不为空,则指定包含已解析值的文件,系统应根据该值验证代码库目录哈希
标记:affects_outputs
、experimental
--experimental_verify_repository_rules=<a string>
累计多次使用-
如果应验证输出目录的哈希的代码库规则列表,则通过 --experimental_repository_hash_file 指定文件。
标记:affects_outputs
、experimental
- 此选项会影响 Starlark 语言的语义或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API:
--[no]experimental_allow_top_level_aspects_parameters
默认值:“true”-
无操作
标记:no_op
、deprecated
、experimental
- 与 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
--override_module=<an equals-separated mapping of module name to path>
累计多次使用- 使用本地目录替换模块。
--registry=<a string>
累计多次使用-
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在较早的注册表中查找模块,只有在较早的注册表中没有模块时,才会回退到较新的注册表。
标记:changes_inputs
- 影响日志记录详细程度、格式或位置的选项:
--[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”指令,在这种情况下,系统会返回多个网址。
- 其他未归入其他类别的选项:
--override_repository=<an equals-separated mapping of repository name to path>
累计多次使用- 使用本地目录替换代码库。
提取选项
- 显示在命令之前并由客户端解析的选项:
--distdir=<a path>
累计多次使用-
在访问网络下载归档文件之前,可搜索归档文件的其他位置。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_hardlinks
默认值:“false”-
如果设置了此选项,代码库缓存在命中缓存时会硬链接文件,而不是进行复制。这是为了节省磁盘空间。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_urls_as_default_canonical_id
默认值:“false”-
如果为 true,则使用从代码库下载网址派生的字符串作为 canonical_id(如果未指定)。这会导致网址发生变化,从而导致重新下载,即使缓存中包含具有相同哈希值的下载内容也是如此。这可用于验证网址更改不会导致缓存掩盖损坏的代码库。
代码:loading_and_analysis
、experimental
--[no]experimental_repository_disable_download
默认值:“false”-
如果设置,则不允许下载外部代码库。
代码:experimental
--experimental_repository_downloader_retries=<an integer>
默认值:“0”-
下载错误的重试尝试次数上限。如果设置为 0,则会停用重试。
代码:experimental
--experimental_scale_timeouts=<a double>
默认值:“1.0”-
将 Starlark 代码库规则中的所有超时时间乘以此系数。这样,外部代码库就可以在比规则作者预期更慢的机器上运行,而无需更改源代码
代码段:bazel_internal_configuration
、experimental
--http_timeout_scaling=<a double>
默认值:“1.0”-
按给定系数缩放与 http 下载相关的所有超时时间
代码:bazel_internal_configuration
--repository_cache=<a path>
默认:请参阅说明-
指定在提取外部代码库期间获取的下载值的缓存位置。将空字符串作为参数会请求停用缓存。
代码:bazel_internal_configuration
- 用于控制 build 执行的选项:
--[no]incompatible_remote_dangling_symlinks
默认值:“true”-
如果将此属性设置为 true 且 --incompatible_remote_symlinks 也设置为 true,则允许在操作输出中使用悬空符号链接。
代码:execution
、incompatible_change
--[no]incompatible_remote_symlinks
默认值:“true”-
如果设置为 true,Bazel 会在远程缓存/执行协议中以这种方式表示操作输出中的符号链接。否则,系统会跟踪符号链接,并将其表示为文件或目录。如需了解详情,请参阅 #6631。
代码:execution
、incompatible_change
--[no]keep_going
[-k
] 默认值:“false”-
在发生错误后尽可能继续。虽然无法分析失败的目标及其依赖项,但可以分析这些目标的其他前提条件。
代码:eagerness_to_exit
--loading_phase_threads=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5">
默认值:“auto”-
用于加载/分析阶段的并行线程数量。接受整数或关键字(“auto”“HOST_CPUS”“HOST_RAM”),可选地后跟运算 ([-|*]<float>),例如“auto”“HOST_CPUS*.5”。“auto”会根据主机资源设置合理的默认值。不得低于 1。
代码:bazel_internal_configuration
- 允许用户配置预期输出的选项,会影响其值,而不是其存在性:
--bep_maximum_open_remote_upload_files=<an integer>
默认值:“-1”-
BEP 工件上传期间允许的打开文件数上限。
代码:affects_outputs
--remote_download_minimal
-
不会将任何远程构建输出下载到本地机器。此标志是以下标志的快捷方式:--experimental_inmemory_jdeps_files、--experimental_inmemory_dotd_files、--experimental_action_cache_store_output_metadata 和 --remote_download_outputs=minimal。
展开为:
--nobuild_runfile_links
--experimental_inmemory_jdeps_files
--experimental_inmemory_dotd_files
--experimental_action_cache_store_output_metadata
--remote_download_outputs=minimal
代码:affects_outputs
--remote_download_outputs=<all, minimal or toplevel>
默认值:“all”-
如果设置为“最小”,则不会将任何远程 build 输出下载到本地计算机,本地操作所需的输出除外。如果设置为“toplevel”,则会像“minimal”一样,但它还会将顶级目标的输出下载到本地机器。如果网络带宽是瓶颈,这两种方法都可以显著缩短构建时间。
代码:affects_outputs
--remote_download_symlink_template=<a string>
默认值:“”-
请创建符号链接,而不是将远程构建输出下载到本地计算机。符号链接的目标可以采用模板字符串的形式指定。此模板字符串可能包含 {hash} 和 {size_bytes},分别会展开为对象的哈希值和大小(以字节为单位)。例如,这些符号链接可以指向一个 FUSE 文件系统,该文件系统会按需从 CAS 加载对象。
代码:affects_outputs
--remote_download_toplevel
-
仅将顶级目标的远程输出下载到本地计算机。此标志是以下标志的快捷方式:--experimental_inmemory_jdeps_files、--experimental_inmemory_dotd_files、--experimental_action_cache_store_output_metadata 和 --remote_download_outputs=toplevel。
展开为:
--experimental_inmemory_jdeps_files
--experimental_inmemory_dotd_files
--experimental_action_cache_store_output_metadata
--remote_download_outputs=toplevel
代码:affects_outputs
- 影响 Bazel 强制执行有效 build 输入(规则定义、标志组合等)的严格程度的选项:
--experimental_repository_hash_file=<a string>
默认值:“”-
如果不为空,则指定包含已解析值的文件,系统应根据该值验证代码库目录哈希
标记:affects_outputs
、experimental
--experimental_verify_repository_rules=<a string>
累计多次使用-
如果应验证输出目录的哈希的代码库规则列表,则通过 --experimental_repository_hash_file 指定文件。
标记:affects_outputs
、experimental
- 此选项会影响 Starlark 语言的语义或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API:
--[no]experimental_allow_top_level_aspects_parameters
默认值:“true”-
无操作
标记:no_op
、deprecated
、experimental
--[no]incompatible_config_setting_private_default_visibility
默认值:“false”-
如果 incompatible_enforce_config_setting_visibility=false,则此操作不会执行任何操作。否则,如果此标志为 false,则任何没有明确可见性属性的 config_setting 均为 //visibility:public。如果此标志为 true,则 config_setting 将遵循与所有其他规则相同的可见性逻辑。请参阅 https://github.com/bazelbuild/bazel/issues/12933。
代码:loading_and_analysis
、incompatible_change
--[no]incompatible_enforce_config_setting_visibility
默认值:“true”-
如果为 true,则强制执行 config_setting 可见性限制。如果为 false,则每个 config_setting 对每个目标都是可见的。请参阅 https://github.com/bazelbuild/bazel/issues/12932。
代码:loading_and_analysis
、incompatible_change
- 与 Bzlmod 输出和语义相关的选项:
--allow_yanked_versions=<a string>
累计多次使用-
以 `<module1>@<version1>,<module2>@<version2>` 的形式指定了模块版本,即使它们在其来源注册表中被声明为已被移除(如果它们不是来自 NonRegistryOverride),也允许在已解析的依赖项图中使用。否则,已移除的版本将导致解决方案失败。您还可以使用 `BZLMOD_ALLOW_YANKED_VERSIONS` 环境变量定义允许的已撤消版本。您可以使用关键字“all”(不推荐)停用此检查。
代码:loading_and_analysis
--check_bazel_compatibility=<error, warning or off>
默认值:“error”-
检查 Bazel 模块的 Bazel 版本兼容性。有效值包括 `error`(将其上报为分辨失败)、`off`(停用检查)或 `warning`(在检测到不匹配时输出警告)。
代码:loading_and_analysis
--check_direct_dependencies=<off, warning or error>
默认值:“警告”-
检查根模块中声明的直接 `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
--override_module=<an equals-separated mapping of module name to path>
累计多次使用- 使用本地目录替换模块。
--registry=<a string>
累计多次使用-
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在较早的注册表中查找模块,只有在较早的注册表中没有模块时,才会回退到较新的注册表。
标记:changes_inputs
- 影响日志记录详细程度、格式或位置的选项:
--[no]experimental_record_metrics_for_all_mnemonics
默认值:“false”- 默认情况下,操作类型的数量限制为执行操作次数最多的 20 个助记符。设置此选项将为所有助记符写入统计信息。
--experimental_repository_resolved_file=<a string>
默认值:“”-
如果不为空,则写入包含已执行的所有 Starlark 代码库规则的已解析信息的 Starlark 值。
代码:affects_outputs
--remote_print_execution_messages=<failure, success or all>
默认值:“failure”-
选择何时输出远程执行消息。有效值包括“failure”(仅在失败时输出)、“success”(仅在成功时输出)和“all”(始终输出)。
标记:terminal_output
- 用于指定或更改 Bazel 命令的通用输入(不属于其他类别)的选项:
--experimental_resolved_file_instead_of_workspace=<a string>
默认值:“”-
如果不为空,则读取指定的已解析文件,而不是 WORKSPACE 文件
标记:changes_inputs
- 远程缓存和执行选项:
--experimental_downloader_config=<a string>
默认:请参阅说明- 指定用于配置远程下载器的文件。该文件由多行组成,每行都以指令(“allow”“block”或“rewrite”)开头,后跟主机名(对于“allow”和“block”)或两个模式(一个用于匹配,一个用于用作替换网址),回引用从 `$1` 开始。可以为同一网址提供多个“rewrite”指令,在这种情况下,系统会返回多个网址。
--[no]experimental_guard_against_concurrent_changes
默认值:“false”- 关闭此设置可在将操作的输入文件上传到远程缓存之前停用检查输入文件的 ctime 的功能。在某些情况下,Linux 内核可能会延迟写入文件,这可能会导致误报。
--experimental_remote_build_event_upload=<all or minimal>
默认值:“all”- 如果设置为“all”,BEP 引用的所有本地输出都会上传到远程缓存。如果设置为“minimal”,BEP 引用的本地输出不会上传到远程缓存,但对 BEP 使用方重要的文件(例如测试日志和时间配置文件)除外。file:// 方案用于本地文件的路径,bytestream:// 方案用于(已)上传文件的路径。默认值为“all”。
--[no]experimental_remote_cache_async
默认值:“false”- 如果为 true,远程缓存 I/O 将在后台进行,而不是在 spawn 过程中进行。
--[no]experimental_remote_cache_compression
默认值:“false”- 如果启用,则使用 zstd 压缩/解压缩缓存 blob。
--experimental_remote_capture_corrupted_outputs=<a path>
默认:请参阅说明- 指向要将损坏的输出捕获到的目录的路径。
--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_grpc_log=<a path>
默认:请参阅说明- 如果指定,则为用于记录 gRPC 调用相关详细信息的文件的路径。此日志由一系列序列化的 com.google.devtools.build.lib.remote.logging.RemoteExecutionLog.LogEntry protobuf 组成,其中每条消息的前缀都是一个 varint,表示下一条序列化 protobuf 消息的大小,如方法 LogEntry.writeDelimitedTo(OutputStream) 所执行。
--[no]experimental_remote_mark_tool_inputs
默认值:“false”- 如果设置为 true,Bazel 会将输入标记为远程执行器的工具输入。这可用于实现远程永久性工作器。
--[no]experimental_remote_merkle_tree_cache
默认值:“false”- 如果设置为 true,系统会对 Merkle 树计算进行 memoized,以提高远程缓存命中检查速度。缓存的内存占用由 --experimental_remote_merkle_tree_cache_size 控制。
--experimental_remote_merkle_tree_cache_size=<a long integer>
默认值:“1000”- 要缓存的 Merkle 树的数量,以提高远程缓存命中检查速度。即使缓存会根据 Java 对软引用的处理自动进行修剪,但如果设置过高,也可能会发生内存不足错误。如果设为 0,则缓存大小不受限制。最佳值因项目大小而异。默认值为 1000。
--[no]incompatible_remote_build_event_upload_respect_no_cache
默认值:“false”- 如果设置为 true,如果生成操作无法远程缓存,BEP 引用的输出将不会上传到远程缓存。
--[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”-
如果设置为 true,则 --noremote_upload_local_results 和 --noremote_accept_cached 不会应用于磁盘缓存。如果使用组合缓存:
--noremote_upload_local_results 会导致结果写入到磁盘缓存,但不会上传到远程缓存。
--noremote_accept_cached 会导致 Bazel 在磁盘缓存中查找结果,但不会在远程缓存中查找。
no-remote-exec 操作可能会命中磁盘缓存。如需了解详情,请参阅 #8216。
代码:incompatible_change
--[no]remote_accept_cached
默认值:“true”- 是否接受远程缓存的操作结果。
--remote_bytestream_uri_prefix=<a string>
默认:请参阅说明- 要写入 build 事件流的 bytestream:// URI 中使用的主机名和实例名称。使用代理执行 build 时可以设置此选项,这会导致 --remote_executor 和 --remote_instance_name 的值不再与远程执行服务的规范名称相对应。如果未设置,则默认为“${hostname}/${instance_name}”。
--remote_cache=<a string>
默认:请参阅说明- 缓存端点的 URI。支持的架构包括 http、https、grpc、grpcs(启用了 TLS 的 grpc)和 unix(本地 UNIX 套接字)。如果未提供架构,Bazel 将默认使用 grpcs。指定 grpc://、http:// 或 unix: 架构以停用 TLS。请参阅 https://bazel.build/remote/caching
--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_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_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_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 将计算所有远程下载的哈希总和,并丢弃与预期值不匹配的远程缓存值。
- 其他未归入其他类别的选项:
--deleted_packages=<comma-separated list of package names>
默认值:“”- 一个用逗号分隔的软件包名称列表,构建系统会将这些软件包视为不存在,即使它们在软件包路径的某个位置可见也是如此。删除现有软件包“x”的子软件包“x/y”时,请使用此选项。例如,在客户端中删除 x/y/BUILD 后,如果 build 系统遇到仍由其他 package_path 条目提供的标签“//x:y/z”,则可能会发出警告。指定 --deleted_packages x/y 可避免此问题。
--disk_cache=<a path>
默认:请参阅说明- 指向 Bazel 可以读取和写入操作和操作输出的目录的路径。如果目录不存在,系统将会创建该目录。
--experimental_credential_helper=<An (unresolved) path to a credential helper for a scope.>
累计多次使用- 配置要用于检索所提供范围(网域)的凭据的凭据帮助程序。 凭据助手中的凭据优先于 <code>--google_default_credentials</code>、`--google_credentials` 或 <code>.netrc</code> 中的凭据。详情请参阅 https://github.com/bazelbuild/proposals/blob/main/designs/2022-06-07-bazel-credential-helpers.md。
--experimental_credential_helper_cache_duration=<An immutable length of time.>
默认值:“30m”- 配置凭据帮助程序中的凭据缓存时长。 使用其他值进行调用会调整现有条目的生命周期;传递零可清除缓存。无论此标志如何,clean 命令始终会清除缓存。
--experimental_credential_helper_timeout=<An immutable length of time.>
默认值:“5s”- 为 Credential Helper 配置超时。 如果凭据帮助程序未在此超时时间段内做出响应,则调用将失败。
--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 连接配置 keepalive pinging。如果设置此值,则在连接上没有执行读取操作这么长时间后,Bazel 会发送 ping,但前提是至少有一个待处理的 gRPC 调用。时间以秒为粒度;如果设置的值小于 1 秒,则会出错。默认情况下,系统会停用保持连接的 ping。您应先与服务所有者协调,然后再启用此设置。例如,如需将此标志的值设置为 30 秒,应按如下方式进行:--grpc_keepalive_time=30s
--grpc_keepalive_timeout=<An immutable length of time.>
默认值:“20s”- 为出站 gRPC 连接配置了 keepalive 超时。如果使用 --grpc_keepalive_time 启用了 keepalive ping,那么如果 Bazel 在此时间过后未收到 ping 回复,则会超时连接。时间以秒为粒度;如果设置的值小于 1 秒,则会出错。如果停用了保持连接的 ping,系统会忽略此设置。
--override_repository=<an equals-separated mapping of repository name to path>
累计多次使用- 使用本地目录替换代码库。
--package_path=<colon-separated list of options>
默认值:“%workspace%”- 以英文冒号分隔的软件包搜索位置列表。以“%workspace%”开头的元素相对于封闭的工作区。如果省略或为空,则默认值为“bazel info default-package-path”的输出。
--[no]show_loading_progress
默认值:“true”- 如果启用,会导致 Bazel 输出“Loading package:”消息。
--tls_certificate=<a string>
默认:请参阅说明- 指定用于对服务器证书进行签名的受信任 TLS 证书的路径。
--tls_client_certificate=<a string>
默认:请参阅说明- 指定要使用的 TLS 客户端证书;您还需要提供客户端密钥才能启用客户端身份验证。
--tls_client_key=<a string>
默认:请参阅说明- 指定要使用的 TLS 客户端密钥;您还需要提供客户端证书才能启用客户端身份验证。
帮助选项
- 显示在命令之前并由客户端解析的选项:
--distdir=<a path>
累计多次使用-
在访问网络下载归档文件之前,可搜索归档文件的其他位置。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_hardlinks
默认值:“false”-
如果设置了此选项,代码库缓存在命中缓存时会硬链接文件,而不是进行复制。这是为了节省磁盘空间。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_urls_as_default_canonical_id
默认值:“false”-
如果为 true,则使用从代码库下载网址派生的字符串作为 canonical_id(如果未指定)。这会导致网址发生变化,从而导致重新下载,即使缓存中包含具有相同哈希值的下载内容也是如此。这可用于验证网址更改不会导致缓存掩盖损坏的代码库。
代码:loading_and_analysis
、experimental
--[no]experimental_repository_disable_download
默认值:“false”-
如果设置,则不允许下载外部代码库。
代码:experimental
--experimental_repository_downloader_retries=<an integer>
默认值:“0”-
下载错误的重试尝试次数上限。如果设置为 0,则会停用重试。
代码:experimental
--experimental_scale_timeouts=<a double>
默认值:“1.0”-
将 Starlark 代码库规则中的所有超时时间乘以此系数。这样,外部代码库就可以在比规则作者预期更慢的机器上运行,而无需更改源代码
代码:bazel_internal_configuration
、experimental
--http_timeout_scaling=<a double>
默认值:“1.0”-
按给定系数缩放与 http 下载相关的所有超时时间
代码:bazel_internal_configuration
--repository_cache=<a path>
默认:请参阅说明-
指定在提取外部代码库期间获取的下载值的缓存位置。将空字符串作为参数会请求停用缓存。
代码:bazel_internal_configuration
- 影响 Bazel 强制执行有效 build 输入(规则定义、标志组合等)的严格程度的选项:
--experimental_repository_hash_file=<a string>
默认值:“”-
如果不为空,则指定包含已解析值的文件,系统应根据该值验证代码库目录哈希
标记:affects_outputs
、experimental
--experimental_verify_repository_rules=<a string>
累计多次使用-
如果应验证输出目录的哈希的代码库规则列表,则通过 --experimental_repository_hash_file 指定文件。
标记:affects_outputs
、experimental
- 此选项会影响 Starlark 语言的语义或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API:
--[no]experimental_allow_top_level_aspects_parameters
默认值:“true”-
无操作
标记:no_op
、deprecated
、experimental
- 与 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
--override_module=<an equals-separated mapping of module name to path>
累计多次使用- 使用本地目录替换模块。
--registry=<a string>
累计多次使用-
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在较早的注册表中查找模块,只有在较早的注册表中没有模块时,才会回退到较新的注册表。
标记:changes_inputs
- 影响日志记录详细程度、格式或位置的选项:
--[no]experimental_record_metrics_for_all_mnemonics
默认值:“false”- 默认情况下,操作类型的数量限制为执行操作次数最多的 20 个助记符。设置此选项将为所有助记符写入统计信息。
--help_verbosity=<long, medium or short>
默认值:“medium”-
选择帮助命令的详细程度。
代码:affects_outputs
、terminal_output
--long
[-l
]-
显示每个选项的完整说明,而不仅仅是其名称。
展开为:
--help_verbosity=long
代码:affects_outputs
、terminal_output
--short
-
仅显示选项的名称,而不显示其类型或含义。
展开为:
--help_verbosity=short
标记:affects_outputs
、terminal_output
- 用于指定或更改 Bazel 命令的通用输入(不属于其他类别)的选项:
--experimental_resolved_file_instead_of_workspace=<a string>
默认值:“”-
如果不为空,则读取指定的已解析文件,而不是 WORKSPACE 文件
标记:changes_inputs
- 远程缓存和执行选项:
--experimental_downloader_config=<a string>
默认:请参阅说明- 指定用于配置远程下载器的文件。该文件由多行组成,每行都以指令(“allow”“block”或“rewrite”)开头,后跟主机名(对于“allow”和“block”)或两个模式(一个用于匹配,一个用于用作替换网址),回引用从 `$1` 开始。可以为同一网址提供多个“rewrite”指令,在这种情况下,系统会返回多个网址。
- 其他未分类的选项:
--override_repository=<an equals-separated mapping of repository name to path>
累计多次使用- 使用本地目录替换代码库。
信息选项
继承 build 中的所有选项。
- 显示在命令之前并由客户端解析的选项:
--distdir=<a path>
累计多次使用-
在访问网络下载归档文件之前,可搜索归档文件的其他位置。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_hardlinks
默认值:“false”-
如果设置了此选项,代码库缓存在命中缓存时会硬链接文件,而不是进行复制。这是为了节省磁盘空间。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_urls_as_default_canonical_id
默认值:“false”-
如果为 true,则使用从代码库下载网址派生的字符串作为 canonical_id(如果未指定)。这会导致网址发生变化,从而导致重新下载,即使缓存中包含具有相同哈希值的下载内容也是如此。这可用于验证网址更改不会导致缓存掩盖损坏的代码库。
代码:loading_and_analysis
、experimental
--[no]experimental_repository_disable_download
默认值:“false”-
如果设置,则不允许下载外部代码库。
代码:experimental
--experimental_repository_downloader_retries=<an integer>
默认值:“0”-
下载错误的重试尝试次数上限。如果设置为 0,则会停用重试。
代码:experimental
--experimental_scale_timeouts=<a double>
默认值:“1.0”-
将 Starlark 代码库规则中的所有超时时间乘以此系数。这样,外部代码库就可以在比规则作者预期更慢的机器上运行,而无需更改源代码
代码:bazel_internal_configuration
、experimental
--http_timeout_scaling=<a double>
默认值:“1.0”-
按给定系数缩放与 http 下载相关的所有超时时间
代码:bazel_internal_configuration
--repository_cache=<a path>
默认:请参阅说明-
指定在提取外部代码库期间获取的下载值的缓存位置。将空字符串作为参数会请求停用缓存。
代码:bazel_internal_configuration
- 影响 Bazel 强制执行有效 build 输入(规则定义、标志组合等)的严格程度的选项:
--experimental_repository_hash_file=<a string>
默认值:“”-
如果不为空,则指定包含已解析值的文件,系统应根据该值验证代码库目录哈希
标记:affects_outputs
、experimental
--experimental_verify_repository_rules=<a string>
累计多次使用-
如果应验证输出目录的哈希的代码库规则列表,则通过 --experimental_repository_hash_file 指定文件。
标记:affects_outputs
、experimental
- 此选项会影响 Starlark 语言的语义或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API:
--[no]experimental_allow_top_level_aspects_parameters
默认值:“true”-
无操作
标记:no_op
、deprecated
、experimental
- 与 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
--override_module=<an equals-separated mapping of module name to path>
累计多次使用- 使用本地目录替换模块。
--registry=<a string>
累计多次使用-
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在较早的注册表中查找模块,只有在较早的注册表中没有模块时,才会回退到较新的注册表。
标记:changes_inputs
- 影响日志记录详细程度、格式或位置的选项:
--[no]experimental_record_metrics_for_all_mnemonics
默认值:“false”- 默认情况下,操作类型的数量限制为执行操作次数最多的 20 个助记符。设置此选项将为所有助记符写入统计信息。
--[no]show_make_env
默认值:“false”-
在输出中添加“Make”环境。
标记:affects_outputs
、terminal_output
- 用于指定或更改 Bazel 命令的通用输入(不属于其他类别)的选项:
--experimental_resolved_file_instead_of_workspace=<a string>
默认值:“”-
如果不为空,则读取指定的已解析文件,而不是 WORKSPACE 文件
标记:changes_inputs
- 远程缓存和执行选项:
--experimental_downloader_config=<a string>
默认:请参阅说明- 指定用于配置远程下载器的文件。该文件由多行组成,每行都以指令(“allow”“block”或“rewrite”)开头,后跟主机名(对于“allow”和“block”)或两个模式(一个用于匹配,一个用于用作替换网址),回引用从 `$1` 开始。可以为同一网址提供多个“rewrite”指令,在这种情况下,系统会返回多个网址。
- 其他未归入其他类别的选项:
--override_repository=<an equals-separated mapping of repository name to path>
累计多次使用- 使用本地目录替换代码库。
许可选项
- 显示在命令之前并由客户端解析的选项:
--distdir=<a path>
累计多次使用-
在访问网络下载归档文件之前,可搜索归档文件的其他位置。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_hardlinks
默认值:“false”-
如果设置了此选项,代码库缓存在命中缓存时会硬链接文件,而不是进行复制。这是为了节省磁盘空间。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_urls_as_default_canonical_id
默认值:“false”-
如果为 true,则使用从代码库下载网址派生的字符串作为 canonical_id(如果未指定)。这会导致网址发生变化,从而导致重新下载,即使缓存中包含具有相同哈希值的下载内容也是如此。这可用于验证网址更改不会导致缓存掩盖损坏的代码库。
代码:loading_and_analysis
、experimental
--[no]experimental_repository_disable_download
默认值:“false”-
如果设置,则不允许下载外部代码库。
代码:experimental
--experimental_repository_downloader_retries=<an integer>
默认值:“0”-
下载错误的重试尝试次数上限。如果设置为 0,则会停用重试。
代码:experimental
--experimental_scale_timeouts=<a double>
默认值:“1.0”-
将 Starlark 代码库规则中的所有超时时间乘以此系数。这样,外部代码库就可以在比规则作者预期更慢的机器上运行,而无需更改源代码
代码:bazel_internal_configuration
、experimental
--http_timeout_scaling=<a double>
默认值:“1.0”-
按给定系数缩放与 http 下载相关的所有超时时间
代码:bazel_internal_configuration
--repository_cache=<a path>
默认:请参阅说明-
指定在提取外部代码库期间获取的下载值的缓存位置。将空字符串作为参数会请求停用缓存。
代码:bazel_internal_configuration
- 影响 Bazel 强制执行有效 build 输入(规则定义、标志组合等)的严格程度的选项:
--experimental_repository_hash_file=<a string>
默认值:“”-
如果不为空,则指定包含已解析值的文件,系统应根据该值验证代码库目录哈希
标记:affects_outputs
、experimental
--experimental_verify_repository_rules=<a string>
累计多次使用-
如果应验证输出目录的哈希的代码库规则列表,则通过 --experimental_repository_hash_file 指定文件。
标记:affects_outputs
、experimental
- 此选项会影响 Starlark 语言的语义或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API:
--[no]experimental_allow_top_level_aspects_parameters
默认值:“true”-
无操作
标记:no_op
、deprecated
、experimental
- 与 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
--override_module=<an equals-separated mapping of module name to path>
累计多次使用- 使用本地目录替换模块。
--registry=<a string>
累计多次使用-
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在较早的注册表中查找模块,只有在较早的注册表中没有模块时,才会回退到较新的注册表。
标记:changes_inputs
- 影响日志记录详细程度、格式或位置的选项:
--[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”指令,在这种情况下,系统会返回多个网址。
- 其他未归入其他类别的选项:
--override_repository=<an equals-separated mapping of repository name to path>
累计多次使用- 使用本地目录替换代码库。
移动设备安装选项
继承 build 中的所有选项。
- 显示在命令之前并由客户端解析的选项:
--distdir=<a path>
累计多次使用-
在访问网络下载归档文件之前,可搜索归档文件的其他位置。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_hardlinks
默认值:“false”-
如果设置了此选项,代码库缓存在命中缓存时会硬链接文件,而不是进行复制。这是为了节省磁盘空间。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_urls_as_default_canonical_id
默认值:“false”-
如果为 true,则使用从代码库下载网址派生的字符串作为 canonical_id(如果未指定)。这会导致网址发生变化,从而导致重新下载,即使缓存中包含具有相同哈希值的下载内容也是如此。这可用于验证网址更改不会导致缓存掩盖损坏的代码库。
代码:loading_and_analysis
、experimental
--[no]experimental_repository_disable_download
默认值:“false”-
如果设置,则不允许下载外部代码库。
代码:experimental
--experimental_repository_downloader_retries=<an integer>
默认值:“0”-
下载错误的重试尝试次数上限。如果设置为 0,则会停用重试。
代码:experimental
--experimental_scale_timeouts=<a double>
默认值:“1.0”-
将 Starlark 代码库规则中的所有超时时间乘以此系数。这样,外部代码库就可以在比规则作者预期更慢的机器上运行,而无需更改源代码
代码:bazel_internal_configuration
、experimental
--http_timeout_scaling=<a double>
默认值:“1.0”-
按给定系数缩放与 http 下载相关的所有超时时间
代码:bazel_internal_configuration
--repository_cache=<a path>
默认:请参阅说明-
指定在提取外部代码库期间获取的下载值的缓存位置。将空字符串作为参数会请求停用缓存。
代码:bazel_internal_configuration
- 用于控制 build 执行的选项:
--mode=<classic, classic_internal_test_do_not_use or skylark>
默认值:“classic”-
选择如何运行 mobile-install。“classic”会运行当前版本的 mobile-install。“skylark”使用了新版 Starlark,该版本支持 android_test。
代码:loading_and_analysis
、execution
、incompatible_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_analysis
、affects_outputs
- 可让用户配置预期输出的选项,影响其值,而不是其存在性:
--adb_arg=<a string>
累计多次使用-
需要传递给 adb 的其他参数。通常用于指定要安装到哪个设备。
代码:action_command_lines
--debug_app
-
确定是否在启动应用之前等待调试程序。
展开为:
--start=DEBUG
代码:execution
--device=<a string>
默认值:“”-
adb 设备序列号。如果未指定,系统会使用第一个设备。
代码:action_command_lines
--start=<no, cold, warm or debug>
默认值:“NO”-
应用安装后应如何启动。设置为 WARM,以在增量安装时保留和恢复应用状态。
代码:execution
--start_app
-
确定是否要在安装应用后启动应用。
展开为:
--start=COLD
代码:execution
- 影响 Bazel 强制执行有效 build 输入(规则定义、标志组合等)的严格程度的选项:
--experimental_repository_hash_file=<a string>
默认值:“”-
如果不为空,则指定包含已解析值的文件,系统应根据该值验证代码库目录哈希
标记:affects_outputs
、experimental
--experimental_verify_repository_rules=<a string>
累计多次使用-
如果应验证输出目录的哈希的代码库规则列表,则通过 --experimental_repository_hash_file 指定文件。
标记:affects_outputs
、experimental
- 此选项会影响 Starlark 语言的语义或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API:
--[no]experimental_allow_top_level_aspects_parameters
默认值:“true”-
无操作
标记:no_op
、deprecated
、experimental
- 与 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
--override_module=<an equals-separated mapping of module name to path>
累计多次使用- 使用本地目录替换模块。
--registry=<a string>
累计多次使用-
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在较早的注册表中查找模块,只有在较早的注册表中没有模块时,才会回退到较新的注册表。
标记:changes_inputs
- 影响日志记录详细程度、格式或位置的选项:
--[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”指令,在这种情况下,系统会返回多个网址。
- 其他未归入其他类别的选项:
--override_repository=<an equals-separated mapping of repository name to path>
累计多次使用- 使用本地目录替换代码库。
Modquery 选项
- 显示在命令之前并由客户端解析的选项:
--distdir=<a path>
累计多次使用-
在访问网络下载归档文件之前,可搜索归档文件的其他位置。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_hardlinks
默认值:“false”-
如果设置了此选项,代码库缓存在命中缓存时会硬链接文件,而不是进行复制。这是为了节省磁盘空间。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_urls_as_default_canonical_id
默认值:“false”-
如果为 true,则使用从代码库下载网址派生的字符串作为 canonical_id(如果未指定)。这会导致网址发生变化,从而导致重新下载,即使缓存中包含具有相同哈希值的下载内容也是如此。这可用于验证网址更改不会导致缓存掩盖损坏的代码库。
代码:loading_and_analysis
、experimental
--[no]experimental_repository_disable_download
默认值:“false”-
如果设置,则不允许下载外部代码库。
代码:experimental
--experimental_repository_downloader_retries=<an integer>
默认值:“0”-
下载错误的重试尝试次数上限。如果设置为 0,则会停用重试。
代码:experimental
--experimental_scale_timeouts=<a double>
默认值:“1.0”-
将 Starlark 代码库规则中的所有超时时间乘以此系数。这样,外部代码库就可以在比规则作者预期更慢的机器上运行,而无需更改源代码
代码:bazel_internal_configuration
、experimental
--http_timeout_scaling=<a double>
默认值:“1.0”-
按给定系数缩放与 http 下载相关的所有超时时间
代码:bazel_internal_configuration
--repository_cache=<a path>
默认:请参阅说明-
指定在提取外部代码库期间获取的下载值的缓存位置。将空字符串作为参数会请求停用缓存。
代码:bazel_internal_configuration
- 用于控制 build 执行的选项:
--[no]keep_going
[-k
] 默认值:“false”-
在发生错误后尽可能继续。虽然无法分析失败的目标及其依赖项,但可以分析这些目标的其他前提条件。
代码:eagerness_to_exit
--loading_phase_threads=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5">
默认值:“auto”-
用于加载/分析阶段的并行线程数量。接受整数或关键字(“auto”“HOST_CPUS”“HOST_RAM”),可选地后跟运算 ([-|*]<float>),例如“auto”“HOST_CPUS*.5”。“auto”会根据主机资源设置合理的默认值。不得低于 1。
代码:bazel_internal_configuration
- 影响 Bazel 强制执行有效 build 输入(规则定义、标志组合等)的严格程度的选项:
--experimental_repository_hash_file=<a string>
默认值:“”-
如果不为空,则指定包含已解析值的文件,系统应根据该值验证代码库目录哈希
标记:affects_outputs
、experimental
--experimental_verify_repository_rules=<a string>
累计多次使用-
如果应验证输出目录的哈希的代码库规则列表,则通过 --experimental_repository_hash_file 指定文件。
标记:affects_outputs
、experimental
- 此选项会影响 Starlark 语言的语义或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API:
--[no]experimental_allow_top_level_aspects_parameters
默认值:“true”-
无操作
标记:no_op
、deprecated
、experimental
--[no]incompatible_config_setting_private_default_visibility
默认值:“false”-
如果 incompatible_enforce_config_setting_visibility=false,则此操作不会执行任何操作。否则,如果此标志为 false,则任何没有明确可见性属性的 config_setting 均为 //visibility:public。如果此标志为 true,则 config_setting 将遵循与所有其他规则相同的可见性逻辑。请参阅 https://github.com/bazelbuild/bazel/issues/12933。
代码:loading_and_analysis
、incompatible_change
--[no]incompatible_enforce_config_setting_visibility
默认值:“true”-
如果为 true,则强制执行 config_setting 可见性限制。如果为 false,则每个 config_setting 对每个目标都是可见的。请参阅 https://github.com/bazelbuild/bazel/issues/12932。
标记:loading_and_analysis
、incompatible_change
- 与 modquery 输出和语义相关的选项:
--charset=<utf8 or ascii>
默认值:“utf8”-
选择要为树使用哪种字符集。仅影响文本输出。有效值为“utf8”或“ascii”。默认值为“utf8”
代码:terminal_output
--[no]cycles
默认值:“false”-
指出显示的树中的依赖项循环(默认情况下通常会被忽略)。
代码:execution
--depth=<an integer>
默认值:“-1”-
依赖项树的最大显示深度。例如,深度为 1 时,系统会显示直接依赖项。对于 tree、path 和 all_paths,此值的默认值为 Integer.MAX_VALUE;对于 deps 和 explain,此值的默认值为 1(除了目标叶子和其父级之外,仅显示根的直接依赖项)。
代码:execution
--[no]extra
默认值:“false”-
查询还会显示模块解析为其当前版本(如果已更改)的原因。默认值为 true,仅适用于 explain 查询。
代码:execution
--from=<a list of <module>s separated by comma>
默认值:“root”-
显示依赖项图查询的起始模块。检查每个查询的说明,确保其含有确切的语义。默认为 root。
代码:execution
--[no]include_unused
默认值:“false”-
查询还会考虑并显示未使用的模块,这些模块在选择后不会出现在模块解析图中(由于最小版本选择规则或替换规则)。这可能会对每种查询类型产生不同的影响,例如,在 all_paths 命令中添加新路径,或在 explain 命令中添加额外的依赖项。
代码:execution
--output=<text, json or graph>
默认值:“text”-
查询结果应采用的输出格式。查询的允许值为:text、json、graph
代码: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
--override_module=<an equals-separated mapping of module name to path>
累计多次使用- 使用本地目录替换模块。
--registry=<a string>
累计多次使用-
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在较早的注册表中查找模块,只有在较早的注册表中没有模块时,才会回退到较新的注册表。
标记:changes_inputs
- 影响日志记录详细程度、格式或位置的选项:
--[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”指令,在这种情况下,系统会返回多个网址。
- 其他未分类的选项:
--deleted_packages=<comma-separated list of package names>
默认值:“”- 一个用逗号分隔的软件包名称列表,构建系统会将这些软件包视为不存在,即使它们在软件包路径的某个位置可见也是如此。删除现有软件包“x”的子软件包“x/y”时,请使用此选项。例如,在客户端中删除 x/y/BUILD 后,如果 build 系统遇到仍由其他 package_path 条目提供的标签“//x:y/z”,则可能会发出警告。指定 --deleted_packages x/y 可避免此问题。
--override_repository=<an equals-separated mapping of repository name to path>
累计多次使用- 使用本地目录替换代码库。
--package_path=<colon-separated list of options>
默认值:“%workspace%”- 以英文冒号分隔的软件包搜索位置列表。以“%workspace%”开头的元素相对于封闭的工作区。如果省略或为空,则默认值为“bazel info default-package-path”的输出。
--[no]show_loading_progress
默认值:“true”- 如果启用,会导致 Bazel 输出“Loading package:”消息。
Print_action 选项
继承 build 中的所有选项。
- 显示在命令之前并由客户端解析的选项:
--distdir=<a path>
累计多次使用-
在访问网络下载归档文件之前,可搜索归档文件的其他位置。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_hardlinks
默认值:“false”-
如果设置了此选项,代码库缓存在命中缓存时会硬链接文件,而不是进行复制。这是为了节省磁盘空间。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_urls_as_default_canonical_id
默认值:“false”-
如果为 true,则使用从代码库下载网址派生的字符串作为 canonical_id(如果未指定)。这会导致网址发生变化,从而导致重新下载,即使缓存中包含具有相同哈希值的下载内容也是如此。这可用于验证网址更改不会导致缓存掩盖损坏的代码库。
代码:loading_and_analysis
、experimental
--[no]experimental_repository_disable_download
默认值:“false”-
如果设置,则不允许下载外部代码库。
代码:experimental
--experimental_repository_downloader_retries=<an integer>
默认值:“0”-
下载错误的重试尝试次数上限。如果设置为 0,则会停用重试。
代码:experimental
--experimental_scale_timeouts=<a double>
默认值:“1.0”-
将 Starlark 代码库规则中的所有超时时间乘以此系数。这样,外部代码库就可以在比规则作者预期更慢的机器上运行,而无需更改源代码
代码:bazel_internal_configuration
、experimental
--http_timeout_scaling=<a double>
默认值:“1.0”-
按给定系数缩放与 http 下载相关的所有超时时间
代码:bazel_internal_configuration
--repository_cache=<a path>
默认:请参阅说明-
指定在提取外部代码库期间获取的下载值的缓存位置。将空字符串作为参数会请求停用缓存。
代码:bazel_internal_configuration
- 影响 Bazel 强制执行有效 build 输入(规则定义、标志组合等)的严格程度的选项:
--experimental_repository_hash_file=<a string>
默认值:“”-
如果不为空,则指定包含已解析值的文件,系统应根据该值验证代码库目录哈希
标记:affects_outputs
、experimental
--experimental_verify_repository_rules=<a string>
累计多次使用-
如果应验证输出目录的哈希的代码库规则列表,则通过 --experimental_repository_hash_file 指定文件。
标记:affects_outputs
、experimental
- 此选项会影响 Starlark 语言的语义或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API:
--[no]experimental_allow_top_level_aspects_parameters
默认值:“true”-
无操作
标记:no_op
、deprecated
、experimental
- 与 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
--override_module=<an equals-separated mapping of module name to path>
累计多次使用- 使用本地目录替换模块。
--registry=<a string>
累计多次使用-
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在较早的注册表中查找模块,只有在较早的注册表中没有模块时,才会回退到较新的注册表。
标记:changes_inputs
- 影响日志记录详细程度、格式或位置的选项:
--[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”指令,在这种情况下,系统会返回多个网址。
- 其他未归入其他类别的选项:
--override_repository=<an equals-separated mapping of repository name to path>
累计多次使用- 使用本地目录替换代码库。
--print_action_mnemonics=<a string>
累计多次使用- 列出按哪些助记符过滤 print_action 数据,如果留空,则不会进行过滤。
查询选项
- 显示在命令之前并由客户端解析的选项:
--distdir=<a path>
累计多次使用-
在访问网络下载归档文件之前,可搜索归档文件的其他位置。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_hardlinks
默认值:“false”-
如果设置了此选项,代码库缓存在命中缓存时会硬链接文件,而不是进行复制。这是为了节省磁盘空间。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_urls_as_default_canonical_id
默认值:“false”-
如果为 true,则使用从代码库下载网址派生的字符串作为 canonical_id(如果未指定)。这会导致网址发生变化,从而导致重新下载,即使缓存中包含具有相同哈希值的下载内容也是如此。这可用于验证网址更改不会导致缓存掩盖损坏的代码库。
代码:loading_and_analysis
、experimental
--[no]experimental_repository_disable_download
默认值:“false”-
如果设置,则不允许下载外部代码库。
代码:experimental
--experimental_repository_downloader_retries=<an integer>
默认值:“0”-
下载错误的重试尝试次数上限。如果设置为 0,则会停用重试。
代码:experimental
--experimental_scale_timeouts=<a double>
默认值:“1.0”-
将 Starlark 代码库规则中的所有超时时间乘以此系数。这样,外部代码库就可以在比规则作者预期更慢的机器上运行,而无需更改源代码
代码:bazel_internal_configuration
、experimental
--http_timeout_scaling=<a double>
默认值:“1.0”-
按给定系数缩放与 http 下载相关的所有超时时间
代码:bazel_internal_configuration
--repository_cache=<a path>
默认:请参阅说明-
指定在提取外部代码库期间获取的下载值的缓存位置。将空字符串作为参数会请求停用缓存。
代码:bazel_internal_configuration
- 用于控制 build 执行的选项:
--[no]incompatible_remote_dangling_symlinks
默认值:“true”-
如果将此属性设置为 true 且 --incompatible_remote_symlinks 也设置为 true,则允许在操作输出中使用悬空符号链接。
代码:execution
、incompatible_change
--[no]incompatible_remote_symlinks
默认值:“true”-
如果设置为 true,Bazel 会在远程缓存/执行协议中以这种方式表示操作输出中的符号链接。否则,系统会跟踪符号链接,并将其表示为文件或目录。如需了解详情,请参阅 #6631。
代码:execution
、incompatible_change
--[no]keep_going
[-k
] 默认值:“false”-
在发生错误后尽可能继续。虽然无法分析失败的目标及其依赖项,但可以分析这些目标的其他前提条件。
代码:eagerness_to_exit
--loading_phase_threads=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5">
默认值:“auto”-
用于加载/分析阶段的并行线程数量。接受整数或关键字(“auto”“HOST_CPUS”“HOST_RAM”),可选地后跟运算 ([-|*]<float>),例如“auto”“HOST_CPUS*.5”。“auto”会根据主机资源设置合理的默认值。不得低于 1。
代码:bazel_internal_configuration
- 允许用户配置预期输出的选项,会影响其值,而不是其存在性:
--bep_maximum_open_remote_upload_files=<an integer>
默认值:“-1”-
BEP 工件上传期间允许的打开文件数上限。
代码:affects_outputs
--remote_download_minimal
-
不会将任何远程构建输出下载到本地机器。此标志是以下标志的快捷方式:--experimental_inmemory_jdeps_files、--experimental_inmemory_dotd_files、--experimental_action_cache_store_output_metadata 和 --remote_download_outputs=minimal。
展开为:
--nobuild_runfile_links
--experimental_inmemory_jdeps_files
--experimental_inmemory_dotd_files
--experimental_action_cache_store_output_metadata
--remote_download_outputs=minimal
代码:affects_outputs
--remote_download_outputs=<all, minimal or toplevel>
默认值:“all”-
如果设置为“最小”,则不会将任何远程 build 输出下载到本地计算机,本地操作所需的输出除外。如果设置为“toplevel”,则会像“minimal”一样,但它还会将顶级目标的输出下载到本地机器。如果网络带宽是瓶颈,这两种方法都可以显著缩短构建时间。
代码:affects_outputs
--remote_download_symlink_template=<a string>
默认值:“”-
请创建符号链接,而不是将远程构建输出下载到本地计算机。符号链接的目标可以采用模板字符串的形式指定。此模板字符串可能包含 {hash} 和 {size_bytes},分别会展开为对象的哈希值和大小(以字节为单位)。例如,这些符号链接可以指向一个 FUSE 文件系统,该文件系统会按需从 CAS 加载对象。
代码:affects_outputs
--remote_download_toplevel
-
仅将顶级目标的远程输出下载到本地计算机。此标志是以下标志的快捷方式:--experimental_inmemory_jdeps_files、--experimental_inmemory_dotd_files、--experimental_action_cache_store_output_metadata 和 --remote_download_outputs=toplevel。
展开为:
--experimental_inmemory_jdeps_files
--experimental_inmemory_dotd_files
--experimental_action_cache_store_output_metadata
--remote_download_outputs=toplevel
代码:affects_outputs
- 影响 Bazel 强制执行有效 build 输入(规则定义、标志组合等)的严格程度的选项:
--experimental_repository_hash_file=<a string>
默认值:“”-
如果不为空,则指定包含已解析值的文件,系统应根据该值验证代码库目录哈希
标记:affects_outputs
、experimental
--experimental_verify_repository_rules=<a string>
累计多次使用-
如果应验证输出目录的哈希的代码库规则列表,则通过 --experimental_repository_hash_file 指定文件。
标记:affects_outputs
、experimental
- 此选项会影响 Starlark 语言的语义或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API:
--[no]experimental_allow_top_level_aspects_parameters
默认值:“true”-
无操作
标记:no_op
、deprecated
、experimental
--[no]incompatible_config_setting_private_default_visibility
默认值:“false”-
如果 incompatible_enforce_config_setting_visibility=false,则此操作不会执行任何操作。否则,如果此标志为 false,则任何没有明确可见性属性的 config_setting 均为 //visibility:public。如果此标志为 true,则 config_setting 将遵循与所有其他规则相同的可见性逻辑。请参阅 https://github.com/bazelbuild/bazel/issues/12933。
代码:loading_and_analysis
、incompatible_change
--[no]incompatible_enforce_config_setting_visibility
默认值:“true”-
如果为 true,则强制执行 config_setting 可见性限制。如果为 false,则每个 config_setting 对每个目标都是可见的。请参阅 https://github.com/bazelbuild/bazel/issues/12932。
标记:loading_and_analysis
、incompatible_change
- 与查询输出和语义相关的选项:
--aspect_deps=<off, conservative or precise>
默认值:“保守”-
如何在输出格式为 {xml,proto,record} 之一时解析方面依赖项。“关闭”表示不解析任何方面依赖项;“保守”(默认)表示添加所有声明的方面依赖项,无论它们是否被赋予直接依赖项的规则类;“精确”表示仅添加可能处于活动状态的方面,具体取决于直接依赖项的规则类。请注意,精确模式需要加载其他软件包才能评估单个目标,因此速度比其他模式慢。另请注意,即使是精确模式也不完全精确:计算某个方面是否需要在分析阶段决定,而该阶段不会在“bazel query”期间运行。
代码:build_file_semantics
--[no]experimental_graphless_query
默认值:“auto”-
如果为 true,则使用不会复制图的查询实现。新实现仅支持 --order_output=no,并且仅支持部分输出格式设置。
代码:build_file_semantics
、eagerness_to_exit
--graph:conditional_edges_limit=<an integer>
默认值:“4”-
要显示的条件标签的数量上限。-1 表示不截断,0 表示不添加注释。此选项仅适用于 --output=graph。
代码:terminal_output
--[no]graph:factored
默认值:“true”-
如果为 true,则会以“分解”形式发出图,即将拓扑等效的节点合并在一起,并串联其标签。此选项仅适用于 --output=graph。
代码:terminal_output
--graph:node_limit=<an integer>
默认值:“512”-
输出中图表节点的标签字符串的最大长度。较长的标签将被截断;-1 表示不截断。此选项仅适用于 --output=graph。
代码:terminal_output
--[no]implicit_deps
默认值:“true”-
如果启用,隐式依赖项将包含在查询操作的依赖图中。隐式依赖项是指未在 BUILD 文件中明确指定,但由 Bazel 添加的依赖项。对于 cquery,此选项用于控制过滤已解析的工具链。
代码:build_file_semantics
--[no]include_aspects
默认值:“true”-
aquery、cquery:是否在输出中包含由方面生成的操作。query:无操作(始终遵循方面)。
代码:terminal_output
--[no]incompatible_display_source_file_location
默认值:“true”-
默认值为 true,用于显示源文件的目标。如果为 true,则在位置输出中显示源文件第 1 行的所在位置。此标志仅用于迁移目的。
代码:terminal_output
、incompatible_change
--[no]incompatible_lexicographical_output
默认值:“true”-
如果设置此选项,则会按字典顺序对 --order_output=auto 输出进行排序。
代码:terminal_output
、incompatible_change
--[no]incompatible_package_group_includes_double_slash
默认值:“true”-
如果启用,则在输出 package_group 的 `packages` 属性时,不会省略开头的 `//`。
代码:terminal_output
、incompatible_change
--[no]infer_universe_scope
默认值:“false”- 如果已设置,并且未设置 --universe_scope,则 --universe_scope 的值将推断为查询表达式中的唯一目标模式列表。请注意,为使用全局范围函数(例如 `allrdeps`)的查询表达式推断出的 --universe_scope 值可能不是您想要的,因此只有在您知道自己在做什么的情况下,才应使用此选项。如需了解详情和示例,请参阅 https://bazel.build/query/language#sky-query。如果设置了 --universe_scope,则系统会忽略此选项的值。注意:此选项仅适用于“query”(即不适用于“cquery”)。
代码:loading_and_analysis
--[no]line_terminator_null
默认值:“false”-
确定每个格式是否以 \0(而非换行符)结尾。
代码:terminal_output
--[no]nodep_deps
默认值:“true”-
如果启用,查询操作所依赖的依赖项图中将包含“nodep”属性中的依赖项。“nodep”属性的一个常见示例是“visibility”。运行并解析 `info build-language` 的输出,了解 build 语言中的所有“nodep”属性。
代码:build_file_semantics
--noorder_results
-
以依赖项有序(默认)或无序方式输出结果。无序输出速度更快,但仅当 --output 不是 minrank、maxrank 或 graph 时才受支持。
展开为:
--order_output=no
代码:terminal_output
--null
-
确定每个格式是否以 \0(而非换行符)结尾。
展开为:
--line_terminator_null=true
代码:terminal_output
--order_output=<no, deps, auto or full>
默认值:“auto”-
输出结果的排序方式:无序(no)、依赖项排序(deps)或完全排序(full)。默认值为“auto”,表示结果的输出方式为依赖项有序或完全有序,具体取决于输出格式设置(对于 proto、minrank、maxrank 和图,依赖项有序;对于所有其他格式,完全有序)。当输出完全有序时,节点将按完全确定性(总体)顺序输出。首先,所有节点都会按字母顺序排序。然后,列表中的每个节点都用作后序深度优先搜索的起点,其中,系统会按后继节点的字母顺序遍历指向未访问节点的出边。最后,节点会按访问顺序的反向顺序输出。
代码:terminal_output
--order_results
-
以依赖项有序(默认)或无序方式输出结果。无序输出速度更快,但仅当 --output 不是 minrank、maxrank 或 graph 时才受支持。
展开为:
--order_output=auto
代码:terminal_output
--output=<a string>
默认值:“label”-
查询结果应采用的输出格式。查询的允许值包括:build、graph、label、label_kind、location、maxrank、minrank、package、proto、xml。
代码:terminal_output
--[no]proto:default_values
默认值:“true”-
如果为 true,则会包含在 BUILD 文件中未明确指定值的属性;否则,会忽略这些属性。此选项适用于 --output=proto
标记:terminal_output
--[no]proto:definition_stack
默认值:“false”-
填充 definition_stack proto 字段,该字段会为每个规则实例记录规则类定义时刻的 Starlark 调用堆栈。
代码:terminal_output
--[no]proto:flatten_selects
默认值:“true”-
如果启用,由 select() 创建的可配置属性会扁平化。对于列表类型,扁平化表示法是包含所选映射的每个值恰好一次的列表。标量类型会扁平化为 null。
代码:build_file_semantics
--[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>
默认值:“”-
如果设置,query 将从此处命名的文件(而非命令行)读取查询。在这里同时指定文件和命令行查询是错误的。
代码:changes_inputs
--[no]relative_locations
默认值:“false”-
如果为 true,xml 和 proto 输出中的 BUILD 文件的位置将是相对位置。默认情况下,位置输出是绝对路径,并且在不同机器之间不会保持一致。您可以将此选项设置为 true,以便在不同机器上获得一致的结果。
代码:terminal_output
--[no]strict_test_suite
默认值:“false”-
如果为 true,当 tests() 表达式遇到包含非测试目标的 test_suite 时,会出错。
代码:build_file_semantics
、eagerness_to_exit
--[no]tool_deps
默认值:“true”-
查询:如果停用,查询所依赖的“主机配置”或“执行”目标将不会包含在查询所操作的依赖项图中。“主机配置”依赖项边(例如,从任何“proto_library”规则到协议编译器的边)通常指向构建期间执行的工具,而不是同一“目标”程序的一部分。
Cquery:如果停用,则会滤除从发现此配置目标的顶级目标跨主机或执行转换的所有配置目标。也就是说,如果顶级目标位于目标配置中,则系统只会返回也位于目标配置中的已配置目标。如果顶级目标位于主机配置中,则系统只会返回主机配置的目标。此选项不会排除已解析的工具链。
代码:build_file_semantics
--universe_scope=<comma-separated list of options>
默认值:“”-
一组以英文逗号分隔的目标模式(加色和减色)。查询可以在由指定目标的传递闭包定义的宇宙中执行。此选项适用于 query 和 cquery 命令。对于 cquery,此选项的输入是所有答案的构建目标,因此此选项可能会影响配置和转换。如果未指定此选项,则系统会假定顶级目标是从查询表达式解析出来的目标。注意:对于 cquery,如果无法使用顶级选项构建从查询表达式解析的目标,则不指定此选项可能会导致构建中断。
代码:loading_and_analysis
--[no]xml:default_values
默认值:“false”-
如果为 true,则会输出在 BUILD 文件中未明确指定值的规则属性;否则,会忽略这些属性。
代码:terminal_output
--[no]xml:line_numbers
默认值:“true”-
如果为 true,则 XML 输出包含行号。停用此选项可能会让差异更易于阅读。此选项仅适用于 --output=xml。
标记:terminal_output
- 与 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
--override_module=<an equals-separated mapping of module name to path>
累计多次使用- 使用本地目录替换模块。
--registry=<a string>
累计多次使用-
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在较早的注册表中查找模块,只有在较早的注册表中没有模块时,才会回退到较新的注册表。
标记:changes_inputs
- 影响日志记录详细程度、格式或位置的选项:
--[no]experimental_record_metrics_for_all_mnemonics
默认值:“false”- 默认情况下,操作类型的数量限制为执行操作次数最多的 20 个助记符。设置此选项将为所有助记符写入统计信息。
--experimental_repository_resolved_file=<a string>
默认值:“”-
如果不为空,则写入包含已执行的所有 Starlark 代码库规则的已解析信息的 Starlark 值。
代码:affects_outputs
--remote_print_execution_messages=<failure, success or all>
默认值:“failure”-
选择何时输出远程执行消息。有效值包括“failure”(仅在失败时输出)、“success”(仅在成功时输出)和“all”(始终输出)。
标记:terminal_output
- 用于指定或更改 Bazel 命令的通用输入(不属于其他类别)的选项:
--experimental_resolved_file_instead_of_workspace=<a string>
默认值:“”-
如果不为空,则读取指定的已解析文件,而不是 WORKSPACE 文件
标记:changes_inputs
- 远程缓存和执行选项:
--experimental_downloader_config=<a string>
默认:请参阅说明- 指定用于配置远程下载器的文件。该文件由多行组成,每行都以指令(“allow”“block”或“rewrite”)开头,后跟主机名(对于“allow”和“block”)或两个模式(一个用于匹配,一个用于用作替换网址),回引用从 `$1` 开始。可以为同一网址提供多个“rewrite”指令,在这种情况下,系统会返回多个网址。
--[no]experimental_guard_against_concurrent_changes
默认值:“false”- 关闭此设置可在将操作的输入文件上传到远程缓存之前停用检查输入文件的 ctime 的功能。在某些情况下,Linux 内核可能会延迟写入文件,这可能会导致误报。
--experimental_remote_build_event_upload=<all or minimal>
默认值:“all”- 如果设置为“all”,BEP 引用的所有本地输出都会上传到远程缓存。如果设置为“minimal”,BEP 引用的本地输出不会上传到远程缓存,但对 BEP 使用方重要的文件(例如测试日志和时间配置文件)除外。file:// 方案用于本地文件的路径,bytestream:// 方案用于(已)上传文件的路径。默认值为“all”。
--[no]experimental_remote_cache_async
默认值:“false”- 如果为 true,远程缓存 I/O 将在后台进行,而不是在 spawn 过程中进行。
--[no]experimental_remote_cache_compression
默认值:“false”- 如果启用,则使用 zstd 压缩/解压缩缓存 blob。
--experimental_remote_capture_corrupted_outputs=<a path>
默认:请参阅说明- 指向要将损坏的输出捕获到的目录的路径。
--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_grpc_log=<a path>
默认:请参阅说明- 如果指定,则为用于记录 gRPC 调用相关详细信息的文件的路径。此日志由一系列序列化的 com.google.devtools.build.lib.remote.logging.RemoteExecutionLog.LogEntry protobuf 组成,其中每条消息的前缀都是一个 varint,表示下一条序列化 protobuf 消息的大小,如 LogEntry.writeDelimitedTo(OutputStream) 方法所执行。
--[no]experimental_remote_mark_tool_inputs
默认值:“false”- 如果设置为 true,Bazel 会将输入标记为远程执行器的工具输入。这可用于实现远程永久性工作器。
--[no]experimental_remote_merkle_tree_cache
默认值:“false”- 如果设置为 true,系统会对 Merkle 树计算进行 memoized,以提高远程缓存命中检查速度。缓存的内存占用由 --experimental_remote_merkle_tree_cache_size 控制。
--experimental_remote_merkle_tree_cache_size=<a long integer>
默认值:“1000”- 要缓存的 Merkle 树的数量,以提高远程缓存命中检查速度。即使缓存会根据 Java 对软引用的处理自动进行修剪,但如果设置过高,也可能会发生内存不足错误。如果设为 0,则缓存大小不受限制。最佳值因项目大小而异。默认值为 1000。
--[no]incompatible_remote_build_event_upload_respect_no_cache
默认值:“false”- 如果设置为 true,如果生成操作无法远程缓存,BEP 引用的输出将不会上传到远程缓存。
--[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”-
如果设置为 true,则 --noremote_upload_local_results 和 --noremote_accept_cached 不会应用于磁盘缓存。如果使用组合缓存:
--noremote_upload_local_results 会导致结果写入到磁盘缓存,但不会上传到远程缓存。
--noremote_accept_cached 会导致 Bazel 在磁盘缓存中查找结果,但不会在远程缓存中查找。
no-remote-exec 操作可能会命中磁盘缓存。如需了解详情,请参阅 #8216。
代码:incompatible_change
--[no]remote_accept_cached
默认值:“true”- 是否接受远程缓存的操作结果。
--remote_bytestream_uri_prefix=<a string>
默认:请参阅说明- 要写入 build 事件流的 bytestream:// URI 中使用的主机名和实例名称。使用代理执行 build 时可以设置此选项,这会导致 --remote_executor 和 --remote_instance_name 的值不再与远程执行服务的规范名称相对应。如果未设置,则默认为“${hostname}/${instance_name}”。
--remote_cache=<a string>
默认:请参阅说明- 缓存端点的 URI。支持的架构包括 http、https、grpc、grpcs(启用了 TLS 的 grpc)和 unix(本地 UNIX 套接字)。如果未提供架构,Bazel 将默认使用 grpcs。指定 grpc://、http:// 或 unix: 架构以停用 TLS。请参阅 https://bazel.build/remote/caching
--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_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_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_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 将计算所有远程下载的哈希总和,并丢弃与预期值不匹配的远程缓存值。
- 其他选项,未归入其他类别:
--deleted_packages=<comma-separated list of package names>
默认值:“”- 一个用逗号分隔的软件包名称列表,构建系统会将这些软件包视为不存在,即使它们在软件包路径的某个位置可见也是如此。删除现有软件包“x”的子软件包“x/y”时,请使用此选项。例如,在客户端中删除 x/y/BUILD 后,如果 build 系统遇到仍由其他 package_path 条目提供的标签“//x:y/z”,则可能会发出警告。指定 --deleted_packages x/y 可避免此问题。
--disk_cache=<a path>
默认:请参阅说明- 指向 Bazel 可以读取和写入操作和操作输出的目录的路径。如果目录不存在,系统将会创建该目录。
--experimental_credential_helper=<An (unresolved) path to a credential helper for a scope.>
累计多次使用- 配置要用于检索所提供范围(网域)的凭据的凭据帮助程序。 凭据助手中的凭据优先于 <code>--google_default_credentials</code>、`--google_credentials` 或 <code>.netrc</code> 中的凭据。详情请参阅 https://github.com/bazelbuild/proposals/blob/main/designs/2022-06-07-bazel-credential-helpers.md。
--experimental_credential_helper_cache_duration=<An immutable length of time.>
默认值:“30m”- 配置凭据帮助程序中的凭据缓存时长。 使用其他值进行调用会调整现有条目的生命周期;传递零可清除缓存。无论此标志如何,clean 命令始终会清除缓存。
--experimental_credential_helper_timeout=<An immutable length of time.>
默认值:“5s”- 为 Credential Helper 配置超时。 如果凭据帮助程序未在此超时时间段内响应,则调用将失败。
--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 连接配置 keepalive pinging。如果设置此值,则在连接上没有执行读取操作这么长时间后,Bazel 会发送 ping,但前提是至少有一个待处理的 gRPC 调用。时间以秒为粒度;如果设置的值小于 1 秒,则会出错。默认情况下,系统会停用保持连接的 ping。您应先与服务所有者协调,然后再启用此设置。例如,如需将此标志的值设置为 30 秒,应按如下方式进行:--grpc_keepalive_time=30s
--grpc_keepalive_timeout=<An immutable length of time.>
默认值:“20s”- 为出站 gRPC 连接配置了 keepalive 超时。如果使用 --grpc_keepalive_time 启用了 keepalive ping,那么如果 Bazel 在此时间过后未收到 ping 回复,则会超时连接。时间以秒为粒度;如果设置的值小于 1 秒,则会出错。如果停用了保持连接的 ping,系统会忽略此设置。
--override_repository=<an equals-separated mapping of repository name to path>
累计多次使用- 使用本地目录替换代码库。
--package_path=<colon-separated list of options>
默认值:“%workspace%”- 以英文冒号分隔的软件包搜索位置列表。以“%workspace%”开头的元素相对于封闭的工作区。如果省略或为空,则默认值为“bazel info default-package-path”的输出。
--[no]show_loading_progress
默认值:“true”- 如果启用,会导致 Bazel 输出“Loading package:”消息。
--tls_certificate=<a string>
默认:请参阅说明- 指定用于对服务器证书进行签名的受信任 TLS 证书的路径。
--tls_client_certificate=<a string>
默认:请参阅说明- 指定要使用的 TLS 客户端证书;您还需要提供客户端密钥才能启用客户端身份验证。
--tls_client_key=<a string>
默认:请参阅说明- 指定要使用的 TLS 客户端密钥;您还需要提供客户端证书才能启用客户端身份验证。
运行选项
继承 build 中的所有选项。
- 显示在命令之前并由客户端解析的选项:
--distdir=<a path>
累计多次使用-
在访问网络下载归档文件之前,可搜索归档文件的其他位置。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_hardlinks
默认值:“false”-
如果设置了此选项,代码库缓存在命中缓存时会硬链接文件,而不是进行复制。这是为了节省磁盘空间。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_urls_as_default_canonical_id
默认值:“false”-
如果为 true,则使用从代码库下载网址派生的字符串作为 canonical_id(如果未指定)。这会导致网址发生变化,从而导致重新下载,即使缓存中包含具有相同哈希值的下载内容也是如此。这可用于验证网址更改不会导致缓存掩盖损坏的代码库。
代码:loading_and_analysis
、experimental
--[no]experimental_repository_disable_download
默认值:“false”-
如果设置,则不允许下载外部代码库。
代码:experimental
--experimental_repository_downloader_retries=<an integer>
默认值:“0”-
下载错误的重试尝试次数上限。如果设置为 0,则会停用重试。
代码:experimental
--experimental_scale_timeouts=<a double>
默认值:“1.0”-
将 Starlark 代码库规则中的所有超时时间乘以此系数。这样,外部代码库就可以在比规则作者预期更慢的机器上运行,而无需更改源代码
代码:bazel_internal_configuration
、experimental
--http_timeout_scaling=<a double>
默认值:“1.0”-
按给定系数缩放与 http 下载相关的所有超时时间
代码:bazel_internal_configuration
--repository_cache=<a path>
默认:请参阅说明-
指定在提取外部代码库期间获取的下载值的缓存位置。将空字符串作为参数会请求停用缓存。
代码段:bazel_internal_configuration
- 允许用户配置预期输出的选项,会影响其值,而不是其存在性:
--script_path=<a path>
默认:请参阅说明-
如果设置,则将 shell 脚本写入用于调用目标的给定文件。如果设置此选项,系统不会通过 bazel 运行目标。使用“bazel run --script_path=foo //foo && ./foo”调用目标“//foo”。这与“bazel run //foo”不同,因为它会释放 bazel 锁定,并将可执行文件连接到终端的 stdin。
标记:affects_outputs
、execution
- 影响 Bazel 强制执行有效 build 输入的严格程度的选项(规则定义、标志组合等):
--experimental_repository_hash_file=<a string>
默认值:“”-
如果不为空,则指定包含已解析值的文件,系统应根据该值验证代码库目录哈希
标记:affects_outputs
、experimental
--experimental_verify_repository_rules=<a string>
累计多次使用-
如果应验证输出目录的哈希值的代码库规则列表,则通过 --experimental_repository_hash_file 指定文件。
标记:affects_outputs
、experimental
- 此选项会影响 Starlark 语言的语义或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API:
--[no]experimental_allow_top_level_aspects_parameters
默认值:“true”-
无操作
标记:no_op
、deprecated
、experimental
- 与 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
--override_module=<an equals-separated mapping of module name to path>
累计多次使用- 使用本地目录替换模块。
--registry=<a string>
累计多次使用-
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在较早的注册表中查找模块,只有在较早的注册表中没有模块时,才会回退到较新的注册表。
标记:changes_inputs
- 影响日志记录详细程度、格式或位置的选项:
--[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”指令,在这种情况下,系统会返回多个网址。
- 其他未分类的选项:
--override_repository=<an equals-separated mapping of repository name to path>
累计多次使用- 使用本地目录替换代码库。
关机选项
- 显示在命令之前并由客户端解析的选项:
--distdir=<a path>
累计多次使用-
在访问网络下载归档文件之前,可搜索归档文件的其他位置。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_hardlinks
默认值:“false”-
如果设置了此选项,代码库缓存在命中缓存时会硬链接文件,而不是进行复制。这是为了节省磁盘空间。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_urls_as_default_canonical_id
默认值:“false”-
如果为 true,则使用从代码库下载网址派生的字符串作为 canonical_id(如果未指定)。这会导致网址发生变化,从而导致重新下载,即使缓存中包含具有相同哈希值的下载内容也是如此。这可用于验证网址更改不会导致缓存掩盖损坏的代码库。
代码:loading_and_analysis
、experimental
--[no]experimental_repository_disable_download
默认值:“false”-
如果设置,则不允许下载外部代码库。
代码:experimental
--experimental_repository_downloader_retries=<an integer>
默认值:“0”-
下载错误的重试尝试次数上限。如果设置为 0,则会停用重试。
代码:experimental
--experimental_scale_timeouts=<a double>
默认值:“1.0”-
将 Starlark 代码库规则中的所有超时时间乘以此系数。这样,外部代码库就可以在比规则作者预期更慢的机器上运行,而无需更改源代码
代码:bazel_internal_configuration
、experimental
--http_timeout_scaling=<a double>
默认值:“1.0”-
按给定系数缩放与 http 下载相关的所有超时时间
代码:bazel_internal_configuration
--repository_cache=<a path>
默认:请参阅说明-
指定在提取外部代码库期间获取的下载值的缓存位置。将空字符串作为参数会请求停用缓存。
代码:bazel_internal_configuration
- 用于控制命令输出的选项:
--iff_heap_size_greater_than=<an integer>
默认值:“0”-
如果不为零,则只有在 JVM 消耗的内存总量(以 MB 为单位)超过此值时,shutdown 才会关闭服务器。
代码段:loses_incremental_state
、eagerness_to_exit
- 影响 Bazel 强制执行有效 build 输入的严格程度的选项(规则定义、标志组合等):
--experimental_repository_hash_file=<a string>
默认值:“”-
如果不为空,则指定包含已解析值的文件,系统应根据该值验证代码库目录哈希
标记:affects_outputs
、experimental
--experimental_verify_repository_rules=<a string>
累计多次使用-
如果应验证输出目录的哈希的代码库规则列表,则通过 --experimental_repository_hash_file 指定文件。
标记:affects_outputs
、experimental
- 此选项会影响 Starlark 语言的语义或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API:
--[no]experimental_allow_top_level_aspects_parameters
默认值:“true”-
无操作
标记:no_op
、deprecated
、experimental
- 与 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
--override_module=<an equals-separated mapping of module name to path>
累计多次使用- 使用本地目录替换模块。
--registry=<a string>
累计多次使用-
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在较早的注册表中查找模块,只有在较早的注册表中没有模块时,才会回退到较新的注册表。
标记:changes_inputs
- 影响日志记录详细程度、格式或位置的选项:
--[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”指令,在这种情况下,系统会返回多个网址。
- 其他未归入其他类别的选项:
--override_repository=<an equals-separated mapping of repository name to path>
累计多次使用- 使用本地目录替换代码库。
同步选项
- 显示在命令之前并由客户端解析的选项:
--distdir=<a path>
累计多次使用-
在访问网络下载归档文件之前,可搜索归档文件的其他位置。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_hardlinks
默认值:“false”-
如果设置了此选项,代码库缓存在命中缓存时会硬链接文件,而不是进行复制。这是为了节省磁盘空间。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_urls_as_default_canonical_id
默认值:“false”-
如果为 true,则使用从代码库下载网址派生的字符串作为 canonical_id(如果未指定)。这会导致网址发生变化,从而导致重新下载,即使缓存中包含具有相同哈希值的下载内容也是如此。这可用于验证网址更改不会导致缓存掩盖损坏的代码库。
代码:loading_and_analysis
、experimental
--[no]experimental_repository_disable_download
默认值:“false”-
如果设置,则不允许下载外部代码库。
代码:experimental
--experimental_repository_downloader_retries=<an integer>
默认值:“0”-
下载错误的重试尝试次数上限。如果设置为 0,则会停用重试。
代码:experimental
--experimental_scale_timeouts=<a double>
默认值:“1.0”-
将 Starlark 代码库规则中的所有超时时间乘以此系数。这样,外部代码库就可以在比规则作者预期更慢的机器上运行,而无需更改源代码
代码:bazel_internal_configuration
、experimental
--http_timeout_scaling=<a double>
默认值:“1.0”-
按给定系数缩放与 http 下载相关的所有超时时间
代码:bazel_internal_configuration
--repository_cache=<a path>
默认:请参阅说明-
指定在提取外部代码库期间获取的下载值的缓存位置。将空字符串作为参数会请求停用缓存。
代码:bazel_internal_configuration
- 用于控制 build 执行的选项:
--[no]configure
默认值:“False”-
仅同步标记为“配置”的代码库,用于系统配置。
代码:changes_inputs
--[no]incompatible_remote_dangling_symlinks
默认值:“true”-
如果将此属性设置为 true 且 --incompatible_remote_symlinks 也设置为 true,则允许在操作输出中使用悬空符号链接。
代码:execution
、incompatible_change
--[no]incompatible_remote_symlinks
默认值:“true”-
如果设置为 true,Bazel 会在远程缓存/执行协议中以这种方式表示操作输出中的符号链接。否则,系统会跟踪符号链接,并将其表示为文件或目录。如需了解详情,请参阅 #6631。
代码:execution
、incompatible_change
--[no]keep_going
[-k
] 默认值:“false”-
在发生错误后尽可能继续。虽然无法分析失败的目标及其依赖项,但可以分析这些目标的其他前提条件。
代码:eagerness_to_exit
--loading_phase_threads=<an integer, or a keyword ("auto", "HOST_CPUS", "HOST_RAM"), optionally followed by an operation ([-|*]<float>) eg. "auto", "HOST_CPUS*.5">
默认值:“auto”-
用于加载/分析阶段的并行线程数量。接受整数或关键字(“auto”“HOST_CPUS”“HOST_RAM”),可选地后跟运算 ([-|*]<float>),例如“auto”“HOST_CPUS*.5”。“auto”会根据主机资源设置合理的默认值。不得低于 1。
代码:bazel_internal_configuration
--only=<a string>
累计多次使用-
如果指定了此选项,则仅同步使用此选项指定的代码库。仍将所有(或所有类似于 configure 的,如果指定了 --configure)视为已过时。
代码:changes_inputs
- 允许用户配置预期输出的选项,会影响其值,而不是其存在性:
--bep_maximum_open_remote_upload_files=<an integer>
默认值:“-1”-
BEP 工件上传期间允许的打开文件数上限。
代码:affects_outputs
--remote_download_minimal
-
不会将任何远程构建输出下载到本地机器。此标志是以下标志的快捷方式:--experimental_inmemory_jdeps_files、--experimental_inmemory_dotd_files、--experimental_action_cache_store_output_metadata 和 --remote_download_outputs=minimal。
展开为:
--nobuild_runfile_links
--experimental_inmemory_jdeps_files
--experimental_inmemory_dotd_files
--experimental_action_cache_store_output_metadata
--remote_download_outputs=minimal
代码:affects_outputs
--remote_download_outputs=<all, minimal or toplevel>
默认值:“all”-
如果设置为“最小”,则不会将任何远程 build 输出下载到本地计算机,本地操作所需的输出除外。如果设置为“toplevel”,则会像“minimal”一样,但它还会将顶级目标的输出下载到本地机器。如果网络带宽是瓶颈,这两种方法都可以显著缩短构建时间。
代码:affects_outputs
--remote_download_symlink_template=<a string>
默认值:“”-
请创建符号链接,而不是将远程构建输出下载到本地计算机。符号链接的目标可以采用模板字符串的形式指定。此模板字符串可能包含 {hash} 和 {size_bytes},分别会展开为对象的哈希值和大小(以字节为单位)。例如,这些符号链接可以指向一个 FUSE 文件系统,该文件系统会按需从 CAS 加载对象。
代码:affects_outputs
--remote_download_toplevel
-
仅将顶级目标的远程输出下载到本地计算机。此标志是以下标志的快捷方式:--experimental_inmemory_jdeps_files、--experimental_inmemory_dotd_files、--experimental_action_cache_store_output_metadata 和 --remote_download_outputs=toplevel。
展开为:
--experimental_inmemory_jdeps_files
--experimental_inmemory_dotd_files
--experimental_action_cache_store_output_metadata
--remote_download_outputs=toplevel
代码:affects_outputs
- 影响 Bazel 强制执行有效 build 输入(规则定义、标志组合等)的严格程度的选项:
--experimental_repository_hash_file=<a string>
默认值:“”-
如果不为空,则指定包含已解析值的文件,系统应根据该值验证代码库目录哈希
标记:affects_outputs
、experimental
--experimental_verify_repository_rules=<a string>
累计多次使用-
如果应验证输出目录的哈希的代码库规则列表,则通过 --experimental_repository_hash_file 指定文件。
标记:affects_outputs
、experimental
- 此选项会影响 Starlark 语言的语义或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API:
--[no]experimental_allow_top_level_aspects_parameters
默认值:“true”-
无操作
标记:no_op
、deprecated
、experimental
--[no]incompatible_config_setting_private_default_visibility
默认值:“false”-
如果 incompatible_enforce_config_setting_visibility=false,则此操作不会执行任何操作。否则,如果此标志为 false,则任何没有明确可见性属性的 config_setting 均为 //visibility:public。如果此标志为 true,则 config_setting 将遵循与所有其他规则相同的可见性逻辑。请参阅 https://github.com/bazelbuild/bazel/issues/12933。
代码:loading_and_analysis
、incompatible_change
--[no]incompatible_enforce_config_setting_visibility
默认值:“true”-
如果为 true,则强制执行 config_setting 可见性限制。如果为 false,则每个 config_setting 对每个目标都是可见的。请参阅 https://github.com/bazelbuild/bazel/issues/12932。
代码:loading_and_analysis
、incompatible_change
- 与 Bzlmod 输出和语义相关的选项:
--allow_yanked_versions=<a string>
累计多次使用-
以 `<module1>@<version1>,<module2>@<version2>` 的形式指定了模块版本,即使它们在其来源注册表中被声明为已被移除(如果它们不是来自 NonRegistryOverride),也允许在已解析的依赖项图中使用。否则,已移除的版本将导致解决方案失败。您还可以使用 `BZLMOD_ALLOW_YANKED_VERSIONS` 环境变量定义允许的已撤消版本。您可以使用关键字“all”(不推荐)停用此检查。
代码:loading_and_analysis
--check_bazel_compatibility=<error, warning or off>
默认值:“error”-
检查 Bazel 模块的 Bazel 版本兼容性。有效值包括:`error`(将其上报为分辨失败)、`off`(停用检查)或 `warning`(在检测到不匹配时输出警告)。
代码:loading_and_analysis
--check_direct_dependencies=<off, warning or error>
默认值:“警告”-
检查根模块中声明的直接 `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
--override_module=<an equals-separated mapping of module name to path>
累计多次使用- 使用本地目录替换模块。
--registry=<a string>
累计多次使用-
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在较早的注册表中查找模块,只有在较早的注册表中没有模块时,才会回退到较新的注册表。
标记:changes_inputs
- 影响日志记录详细程度、格式或位置的选项:
--[no]experimental_record_metrics_for_all_mnemonics
默认值:“false”- 默认情况下,操作类型的数量限制为执行操作次数最多的 20 个助记符。设置此选项将为所有助记符写入统计信息。
--experimental_repository_resolved_file=<a string>
默认值:“”-
如果不为空,则写入包含已执行的所有 Starlark 代码库规则的已解析信息的 Starlark 值。
代码:affects_outputs
--remote_print_execution_messages=<failure, success or all>
默认值:“failure”-
选择何时输出远程执行消息。有效值包括“failure”(仅在失败时输出)、“success”(仅在成功时输出)和“all”(始终输出)。
标记:terminal_output
- 用于指定或更改 Bazel 命令的通用输入(不属于其他类别)的选项:
--experimental_resolved_file_instead_of_workspace=<a string>
默认值:“”-
如果不为空,则读取指定的已解析文件,而不是 WORKSPACE 文件
标记:changes_inputs
- 远程缓存和执行选项:
--experimental_downloader_config=<a string>
默认:请参阅说明- 指定用于配置远程下载器的文件。该文件由多行组成,每行都以指令(“allow”“block”或“rewrite”)开头,后跟主机名(对于“allow”和“block”)或两个模式(一个用于匹配,一个用于用作替换网址),回引用从 `$1` 开始。可以为同一网址提供多个“rewrite”指令,在这种情况下,系统会返回多个网址。
--[no]experimental_guard_against_concurrent_changes
默认值:“false”- 关闭此设置可在将操作的输入文件上传到远程缓存之前停用检查输入文件的 ctime。在某些情况下,Linux 内核可能会延迟写入文件,这可能会导致误报。
--experimental_remote_build_event_upload=<all or minimal>
默认值:“all”- 如果设置为“all”,BEP 引用的所有本地输出都会上传到远程缓存。如果设置为“minimal”,BEP 引用的本地输出不会上传到远程缓存,但对 BEP 使用方重要的文件(例如测试日志和时间配置文件)除外。file:// 方案用于本地文件的路径,bytestream:// 方案用于(已)上传文件的路径。默认值为“all”。
--[no]experimental_remote_cache_async
默认值:“false”- 如果为 true,远程缓存 I/O 将在后台进行,而不是在 spawn 过程中进行。
--[no]experimental_remote_cache_compression
默认值:“false”- 如果启用,则使用 zstd 压缩/解压缩缓存 blob。
--experimental_remote_capture_corrupted_outputs=<a path>
默认:请参阅说明- 指向要将损坏的输出捕获到的目录的路径。
--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_grpc_log=<a path>
默认:请参阅说明- 如果指定,则为用于记录 gRPC 调用相关详细信息的文件的路径。此日志由一系列序列化的 com.google.devtools.build.lib.remote.logging.RemoteExecutionLog.LogEntry protobuf 组成,其中每条消息的前缀都是一个 varint,表示下一条序列化 protobuf 消息的大小,如方法 LogEntry.writeDelimitedTo(OutputStream) 所执行。
--[no]experimental_remote_mark_tool_inputs
默认值:“false”- 如果设置为 true,Bazel 会将输入标记为远程执行器的工具输入。这可用于实现远程永久性工作器。
--[no]experimental_remote_merkle_tree_cache
默认值:“false”- 如果设置为 true,系统会对 Merkle 树计算进行 memoized,以提高远程缓存命中检查速度。缓存的内存占用由 --experimental_remote_merkle_tree_cache_size 控制。
--experimental_remote_merkle_tree_cache_size=<a long integer>
默认值:“1000”- 要缓存的 Merkle 树的数量,以提高远程缓存命中检查速度。即使缓存会根据 Java 对软引用的处理自动进行修剪,但如果设置过高,也可能会发生内存不足错误。如果设为 0,则缓存大小不受限制。最佳值因项目大小而异。默认值为 1000。
--[no]incompatible_remote_build_event_upload_respect_no_cache
默认值:“false”- 如果设置为 true,如果生成操作无法远程缓存,BEP 引用的输出将不会上传到远程缓存。
--[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”-
如果设置为 true,则 --noremote_upload_local_results 和 --noremote_accept_cached 不会应用于磁盘缓存。如果使用组合缓存:
--noremote_upload_local_results 会导致结果写入到磁盘缓存,但不会上传到远程缓存。
--noremote_accept_cached 会导致 Bazel 在磁盘缓存中查找结果,但不会在远程缓存中查找。
no-remote-exec 操作可能会命中磁盘缓存。如需了解详情,请参阅 #8216。
代码:incompatible_change
--[no]remote_accept_cached
默认值:“true”- 是否接受远程缓存的操作结果。
--remote_bytestream_uri_prefix=<a string>
默认:请参阅说明- 要写入 build 事件流的 bytestream:// URI 中使用的主机名和实例名称。使用代理执行 build 时可以设置此选项,这会导致 --remote_executor 和 --remote_instance_name 的值不再与远程执行服务的规范名称相对应。如果未设置,则默认为“${hostname}/${instance_name}”。
--remote_cache=<a string>
默认:请参阅说明- 缓存端点的 URI。支持的架构包括 http、https、grpc、grpcs(启用了 TLS 的 grpc)和 unix(本地 UNIX 套接字)。如果未提供架构,Bazel 将默认使用 grpcs。指定 grpc://、http:// 或 unix: 架构以停用 TLS。请参阅 https://bazel.build/remote/caching
--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_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_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_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 将计算所有远程下载内容的哈希总和,并丢弃与预期值不匹配的远程缓存值。
- 其他未归入其他类别的选项:
--deleted_packages=<comma-separated list of package names>
默认值:“”- 一个用逗号分隔的软件包名称列表,构建系统会将这些软件包视为不存在,即使它们在软件包路径的某个位置可见也是如此。删除现有软件包“x”的子软件包“x/y”时,请使用此选项。例如,在客户端中删除 x/y/BUILD 后,如果 build 系统遇到仍由其他 package_path 条目提供的标签“//x:y/z”,则可能会发出警告。指定 --deleted_packages x/y 可避免此问题。
--disk_cache=<a path>
默认:请参阅说明- 指向 Bazel 可以读取和写入操作和操作输出的目录的路径。如果目录不存在,系统将会创建该目录。
--experimental_credential_helper=<An (unresolved) path to a credential helper for a scope.>
累计多次使用- 配置要用于检索所提供范围(网域)的凭据的凭据帮助程序。 凭据助手中的凭据优先于 <code>--google_default_credentials</code>、`--google_credentials` 或 <code>.netrc</code> 中的凭据。详情请参阅 https://github.com/bazelbuild/proposals/blob/main/designs/2022-06-07-bazel-credential-helpers.md。
--experimental_credential_helper_cache_duration=<An immutable length of time.>
默认值:“30m”- 配置凭据帮助程序中凭据的缓存时长。 使用其他值进行调用会调整现有条目的生命周期;传递零会清除缓存。无论此标志如何,clean 命令始终会清除缓存。
--experimental_credential_helper_timeout=<An immutable length of time.>
默认值:“5s”- 为 Credential Helper 配置超时。 如果凭据帮助程序未在此超时时间段内响应,则调用将失败。
--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 连接配置 keepalive pinging。如果设置此值,则在连接上没有执行读取操作这么长时间后,Bazel 会发送 ping,但前提是至少有一个待处理的 gRPC 调用。时间以秒为粒度;如果设置的值小于 1 秒,则会出错。默认情况下,系统会停用保持连接的 ping。您应先与服务所有者协调,然后再启用此设置。例如,如需将此标志的值设置为 30 秒,应按如下方式进行:--grpc_keepalive_time=30s
--grpc_keepalive_timeout=<An immutable length of time.>
默认值:“20s”- 为出站 gRPC 连接配置了 keepalive 超时。如果使用 --grpc_keepalive_time 启用了 keepalive ping,那么如果 Bazel 在此时间过后未收到 ping 回复,则会超时连接。时间以秒为粒度;如果设置的值小于 1 秒,则会出错。如果停用了保持连接的 ping,系统会忽略此设置。
--override_repository=<an equals-separated mapping of repository name to path>
累计多次使用- 使用本地目录替换代码库。
--package_path=<colon-separated list of options>
默认值:“%workspace%”- 以英文冒号分隔的软件包搜索位置列表。以“%workspace%”开头的元素相对于封闭的工作区。如果省略或为空,则默认值为“bazel info default-package-path”的输出。
--[no]show_loading_progress
默认值:“true”- 如果启用,会导致 Bazel 输出“Loading package:”消息。
--tls_certificate=<a string>
默认:请参阅说明- 指定用于对服务器证书进行签名的受信任 TLS 证书的路径。
--tls_client_certificate=<a string>
默认:请参阅说明- 指定要使用的 TLS 客户端证书;您还需要提供客户端密钥才能启用客户端身份验证。
--tls_client_key=<a string>
默认:请参阅说明- 指定要使用的 TLS 客户端密钥;您还需要提供客户端证书才能启用客户端身份验证。
测试选项
继承 build 中的所有选项。
- 显示在命令之前并由客户端解析的选项:
--distdir=<a path>
累计多次使用-
在访问网络下载归档文件之前,可搜索归档文件的其他位置。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_hardlinks
默认值:“false”-
如果设置了此选项,代码库缓存在命中缓存时会硬链接文件,而不是进行复制。这是为了节省磁盘空间。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_urls_as_default_canonical_id
默认值:“false”-
如果为 true,则使用从代码库下载网址派生的字符串作为 canonical_id(如果未指定)。这会导致网址发生变化,从而导致重新下载,即使缓存中包含具有相同哈希值的下载内容也是如此。这可用于验证网址更改不会导致缓存掩盖损坏的代码库。
代码:loading_and_analysis
、experimental
--[no]experimental_repository_disable_download
默认值:“false”-
如果设置,则不允许下载外部代码库。
代码:experimental
--experimental_repository_downloader_retries=<an integer>
默认值:“0”-
下载错误的重试尝试次数上限。如果设置为 0,则会停用重试。
代码:experimental
--experimental_scale_timeouts=<a double>
默认值:“1.0”-
将 Starlark 代码库规则中的所有超时时间乘以此系数。这样,外部代码库就可以在比规则作者预期更慢的机器上运行,而无需更改源代码
代码:bazel_internal_configuration
、experimental
--http_timeout_scaling=<a double>
默认值:“1.0”-
按给定系数缩放与 http 下载相关的所有超时时间
代码:bazel_internal_configuration
--repository_cache=<a path>
默认:请参阅说明-
指定在提取外部代码库期间获取的下载值的缓存位置。将空字符串作为参数会请求停用缓存。
代码:bazel_internal_configuration
- 用于控制 build 执行的选项:
--[no]incompatible_remote_dangling_symlinks
默认值:“true”-
如果将此属性设置为 true 且 --incompatible_remote_symlinks 也设置为 true,则允许在操作输出中使用悬空符号链接。
代码:execution
、incompatible_change
--[no]incompatible_remote_symlinks
默认值:“true”-
如果设置为 true,Bazel 会在远程缓存/执行协议中以这种方式表示操作输出中的符号链接。否则,系统会跟踪符号链接,并将其表示为文件或目录。如需了解详情,请参阅 #6631。
代码:execution
、incompatible_change
- 可让用户配置预期输出的选项,影响其值,而不是其存在性:
--bep_maximum_open_remote_upload_files=<an integer>
默认值:“-1”-
BEP 工件上传期间允许的打开文件数上限。
代码:affects_outputs
--remote_download_minimal
-
不会将任何远程构建输出下载到本地机器。此标志是以下标志的快捷方式:--experimental_inmemory_jdeps_files、--experimental_inmemory_dotd_files、--experimental_action_cache_store_output_metadata 和 --remote_download_outputs=minimal。
展开为:
--nobuild_runfile_links
--experimental_inmemory_jdeps_files
--experimental_inmemory_dotd_files
--experimental_action_cache_store_output_metadata
--remote_download_outputs=minimal
代码:affects_outputs
--remote_download_outputs=<all, minimal or toplevel>
默认值:“all”-
如果设置为“最小”,则不会将任何远程 build 输出下载到本地计算机,本地操作所需的输出除外。如果设置为“toplevel”,则会像“minimal”一样,但它还会将顶级目标的输出下载到本地机器。如果网络带宽是瓶颈,这两种方法都可以显著缩短构建时间。
代码:affects_outputs
--remote_download_symlink_template=<a string>
默认值:“”-
请创建符号链接,而不是将远程构建输出下载到本地计算机。符号链接的目标可以采用模板字符串的形式指定。此模板字符串可能包含 {hash} 和 {size_bytes},分别会展开为对象的哈希值和大小(以字节为单位)。例如,这些符号链接可以指向一个 FUSE 文件系统,该文件系统会按需从 CAS 加载对象。
代码:affects_outputs
--remote_download_toplevel
-
仅将顶级目标的远程输出下载到本地计算机。此标志是以下标志的快捷方式:--experimental_inmemory_jdeps_files、--experimental_inmemory_dotd_files、--experimental_action_cache_store_output_metadata 和 --remote_download_outputs=toplevel。
展开为:
--experimental_inmemory_jdeps_files
--experimental_inmemory_dotd_files
--experimental_action_cache_store_output_metadata
--remote_download_outputs=toplevel
代码:affects_outputs
- 影响 Bazel 强制执行有效 build 输入(规则定义、标志组合等)的严格程度的选项:
--experimental_repository_hash_file=<a string>
默认值:“”-
如果不为空,则指定包含已解析值的文件,系统应根据该值验证代码库目录哈希
标记:affects_outputs
、experimental
--experimental_verify_repository_rules=<a string>
累计多次使用-
如果应验证输出目录的哈希的代码库规则列表,则通过 --experimental_repository_hash_file 指定文件。
标记:affects_outputs
、experimental
- 此选项会影响 Starlark 语言的语义或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API:
--[no]experimental_allow_top_level_aspects_parameters
默认值:“true”-
无操作
标记:no_op
、deprecated
、experimental
- 与 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
--override_module=<an equals-separated mapping of module name to path>
累计多次使用- 使用本地目录替换模块。
--registry=<a string>
累计多次使用-
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在较早的注册表中查找模块,只有在较早的注册表中没有模块时,才会回退到较新的注册表。
标记:changes_inputs
- 影响日志记录详细程度、格式或位置的选项:
--[no]experimental_record_metrics_for_all_mnemonics
默认值:“false”- 默认情况下,操作类型的数量限制为执行操作次数最多的 20 个助记符。设置此选项将为所有助记符写入统计信息。
--[no]print_relative_test_log_paths
默认值:“false”- 如果为 true,则在输出测试日志的路径时,使用利用“testlogs”便捷符号链接的相对路径。注意 - 使用其他配置的后续“build”“test”/等调用可能会导致此符号链接的目标发生变化,使之前输出的路径不再有用。
代码:affects_outputs
--remote_print_execution_messages=<failure, success or all>
默认值:“failure”-
选择何时输出远程执行消息。有效值包括“failure”(仅在失败时输出)、“success”(仅在成功时输出)和“all”(始终输出)。
代码:terminal_output
--[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”指令,在这种情况下,系统会返回多个网址。
--[no]experimental_guard_against_concurrent_changes
默认值:“false”- 关闭此设置可在将操作的输入文件上传到远程缓存之前停用检查输入文件的 ctime 的功能。在某些情况下,Linux 内核可能会延迟写入文件,这可能会导致误报。
--experimental_remote_build_event_upload=<all or minimal>
默认值:“all”- 如果设置为“all”,BEP 引用的所有本地输出都会上传到远程缓存。如果设置为“minimal”,BEP 引用的本地输出不会上传到远程缓存,但对 BEP 使用方重要的文件(例如测试日志和时间配置文件)除外。file:// 方案用于本地文件的路径,bytestream:// 方案用于(已)上传文件的路径。默认值为“all”。
--[no]experimental_remote_cache_async
默认值:“false”- 如果为 true,远程缓存 I/O 将在后台进行,而不是在 spawn 过程中进行。
--[no]experimental_remote_cache_compression
默认值:“false”- 如果启用,则使用 zstd 压缩/解压缩缓存 blob。
--experimental_remote_capture_corrupted_outputs=<a path>
默认:请参阅说明- 指向要将损坏的输出捕获到的目录的路径。
--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_grpc_log=<a path>
默认:请参阅说明- 如果指定,则为用于记录 gRPC 调用相关详细信息的文件的路径。此日志由一系列序列化的 com.google.devtools.build.lib.remote.logging.RemoteExecutionLog.LogEntry protobuf 组成,其中每条消息的前缀都是一个 varint,表示下一条序列化 protobuf 消息的大小,如 LogEntry.writeDelimitedTo(OutputStream) 方法所执行。
--[no]experimental_remote_mark_tool_inputs
默认值:“false”- 如果设置为 true,Bazel 会将输入标记为远程执行器的工具输入。这可用于实现远程永久性工作器。
--[no]experimental_remote_merkle_tree_cache
默认值:“false”- 如果设置为 true,系统会对 Merkle 树计算进行 memoized,以提高远程缓存命中检查速度。缓存的内存占用由 --experimental_remote_merkle_tree_cache_size 控制。
--experimental_remote_merkle_tree_cache_size=<a long integer>
默认值:“1000”- 要缓存的 Merkle 树的数量,以提高远程缓存命中检查速度。即使缓存会根据 Java 对软引用的处理自动进行修剪,但如果设置过高,也可能会发生内存不足错误。如果设为 0,则缓存大小不受限制。最佳值因项目大小而异。默认值为 1000。
--[no]incompatible_remote_build_event_upload_respect_no_cache
默认值:“false”- 如果设置为 true,如果生成操作无法远程缓存,BEP 引用的输出将不会上传到远程缓存。
--[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”-
如果设置为 true,则 --noremote_upload_local_results 和 --noremote_accept_cached 不会应用于磁盘缓存。如果使用组合缓存:
--noremote_upload_local_results 会导致结果写入到磁盘缓存,但不会上传到远程缓存。
--noremote_accept_cached 会导致 Bazel 在磁盘缓存中查找结果,但不会在远程缓存中查找。
no-remote-exec 操作可能会命中磁盘缓存。如需了解详情,请参阅 #8216。
代码:incompatible_change
--[no]remote_accept_cached
默认值:“true”- 是否接受远程缓存的操作结果。
--remote_bytestream_uri_prefix=<a string>
默认:请参阅说明- 要写入 build 事件流的 bytestream:// URI 中使用的主机名和实例名称。使用代理执行 build 时可以设置此选项,这会导致 --remote_executor 和 --remote_instance_name 的值不再与远程执行服务的规范名称相对应。如果未设置,则默认为“${hostname}/${instance_name}”。
--remote_cache=<a string>
默认:请参阅说明- 缓存端点的 URI。支持的架构包括 http、https、grpc、grpcs(启用了 TLS 的 grpc)和 unix(本地 UNIX 套接字)。如果未提供架构,Bazel 将默认使用 grpcs。指定 grpc://、http:// 或 unix: 架构以停用 TLS。请参阅 https://bazel.build/remote/caching
--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_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_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_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 将计算所有远程下载内容的哈希总和,并丢弃与预期值不匹配的远程缓存值。
- 其他未归入其他类别的选项:
--disk_cache=<a path>
默认:请参阅说明- 指向 Bazel 可以读取和写入操作和操作输出的目录的路径。如果目录不存在,系统将会创建该目录。
--experimental_credential_helper=<An (unresolved) path to a credential helper for a scope.>
累计多次使用- 配置要用于检索所提供范围(网域)的凭据的凭据帮助程序。 凭据助手中的凭据优先于 <code>--google_default_credentials</code>、`--google_credentials` 或 <code>.netrc</code> 中的凭据。详情请参阅 https://github.com/bazelbuild/proposals/blob/main/designs/2022-06-07-bazel-credential-helpers.md。
--experimental_credential_helper_cache_duration=<An immutable length of time.>
默认值:“30m”- 配置凭据帮助程序中的凭据缓存时长。 使用其他值进行调用会调整现有条目的生命周期;传递零可清除缓存。无论此标志如何,clean 命令始终会清除缓存。
--experimental_credential_helper_timeout=<An immutable length of time.>
默认值:“5s”- 为 Credential Helper 配置超时。 如果凭据帮助程序未在此超时时间段内做出响应,则调用将失败。
--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 连接配置 keepalive pinging。如果设置此值,则在连接上没有执行读取操作这么长时间后,Bazel 会发送 ping,但前提是至少有一个待处理的 gRPC 调用。时间以秒为粒度;如果设置的值小于 1 秒,则会出错。默认情况下,系统会停用保持连接的 ping。您应先与服务所有者协调,然后再启用此设置。例如,如需将此标志的值设置为 30 秒,应按如下方式进行:--grpc_keepalive_time=30s
--grpc_keepalive_timeout=<An immutable length of time.>
默认值:“20s”- 为出站 gRPC 连接配置了 keepalive 超时。如果使用 --grpc_keepalive_time 启用了 keepalive ping,那么如果 Bazel 在此时间过后未收到 ping 回复,则会超时连接。时间以秒为粒度;如果设置的值小于 1 秒,则会出错。如果停用了保持连接的 ping,系统会忽略此设置。
--override_repository=<an equals-separated mapping of repository name to path>
累计多次使用- 使用本地目录替换代码库。
--tls_certificate=<a string>
默认:请参阅说明- 指定用于对服务器证书进行签名的受信任 TLS 证书的路径。
--tls_client_certificate=<a string>
默认:请参阅说明- 指定要使用的 TLS 客户端证书;您还需要提供客户端密钥才能启用客户端身份验证。
--tls_client_key=<a string>
默认:请参阅说明- 指定要使用的 TLS 客户端密钥;您还需要提供客户端证书才能启用客户端身份验证。
版本选项
- 显示在命令之前并由客户端解析的选项:
--distdir=<a path>
累计多次使用-
在访问网络下载归档文件之前,可搜索归档文件的其他位置。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_hardlinks
默认值:“false”-
如果设置了此选项,代码库缓存在命中缓存时会硬链接文件,而不是进行复制。这是为了节省磁盘空间。
代码:bazel_internal_configuration
--[no]experimental_repository_cache_urls_as_default_canonical_id
默认值:“false”-
如果为 true,则使用从代码库下载网址派生的字符串作为 canonical_id(如果未指定)。这会导致网址发生更改,从而导致重新下载,即使缓存中包含具有相同哈希值的下载内容也是如此。这可用于验证网址更改不会导致缓存掩盖损坏的代码库。
代码:loading_and_analysis
、experimental
--[no]experimental_repository_disable_download
默认值:“false”-
如果设置,则不允许下载外部代码库。
代码:experimental
--experimental_repository_downloader_retries=<an integer>
默认值:“0”-
下载错误的重试尝试次数上限。如果设置为 0,则会停用重试。
代码:experimental
--experimental_scale_timeouts=<a double>
默认值:“1.0”-
将 Starlark 代码库规则中的所有超时时间乘以此系数。这样,外部代码库就可以在比规则作者预期更慢的机器上运行,而无需更改源代码
代码:bazel_internal_configuration
、experimental
--http_timeout_scaling=<a double>
默认值:“1.0”-
按给定系数缩放与 http 下载相关的所有超时时间
代码:bazel_internal_configuration
--repository_cache=<a path>
默认:请参阅说明-
指定在提取外部代码库期间获取的下载值的缓存位置。将空字符串作为参数会请求停用缓存。
代码段:bazel_internal_configuration
- 允许用户配置预期输出的选项,会影响其值,而不是其存在性:
--[no]gnu_format
默认值:“false”-
如果设置,则使用 GNU 标准中所述的惯例将版本写入标准输出。
标记:affects_outputs
、execution
- 影响 Bazel 强制执行有效 build 输入的严格程度的选项(规则定义、标志组合等):
--experimental_repository_hash_file=<a string>
默认值:“”-
如果不为空,则指定包含已解析值的文件,系统应根据该值验证代码库目录哈希
标记:affects_outputs
、experimental
--experimental_verify_repository_rules=<a string>
累计多次使用-
如果应验证输出目录的哈希的代码库规则列表,则通过 --experimental_repository_hash_file 指定文件。
标记:affects_outputs
、experimental
- 此选项会影响 Starlark 语言的语义或 BUILD 文件、.bzl 文件或 WORKSPACE 文件可访问的 build API:
--[no]experimental_allow_top_level_aspects_parameters
默认值:“true”-
无操作
标记:no_op
、deprecated
、experimental
- 与 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
--override_module=<an equals-separated mapping of module name to path>
累计多次使用- 使用本地目录替换模块。
--registry=<a string>
累计多次使用-
指定用于查找 Bazel 模块依赖项的注册表。顺序很重要:系统会先在较早的注册表中查找模块,只有在较早的注册表中没有模块时,才会回退到较新的注册表。
标记:changes_inputs
- 影响日志记录详细程度、格式或位置的选项:
--[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”指令,在这种情况下,系统会返回多个网址。
- 其他选项,未归入其他类别:
--override_repository=<an equals-separated mapping of repository name to path>
累计多次使用- 使用本地目录替换代码库。
选项效果标记
unknown |
此选项的效果未知或未记录。 |
no_op |
此选项实际上没有任何效果。 |
loses_incremental_state |
更改此选项的值可能会导致增量状态大量丢失,从而减慢 build 速度。状态可能会因服务器重启或依赖项图的大部分失效而丢失。 |
changes_inputs |
此选项会主动更改 bazel 为构建考虑的输入,例如文件系统限制、代码库版本或其他选项。 |
affects_outputs |
此选项会影响 bazel 的输出。此标记是故意设置为广泛的,可以包括传递性影响,并且未指定其影响的输出类型。 |
build_file_semantics |
此选项会影响 BUILD 或 .bzl 文件的语义。 |
bazel_internal_configuration |
此选项会影响 bazel 内部机器的设置。此标记本身并不意味着 build 工件会受到影响。 |
loading_and_analysis |
此选项会影响依赖项的加载和分析,以及依赖项图的构建。 |
execution |
此选项会影响执行阶段,例如沙盒或远程执行相关选项。 |
host_machine_resource_optimizations |
此选项会触发可能因机器而异的优化,但无法保证在所有机器上都有效。优化可能需要在性能的其他方面(例如内存或 CPU 开销)做出权衡。 |
eagerness_to_exit |
此选项用于更改 bazel 在失败时退出的方式,您可以选择在失败后继续还是结束调用。 |
bazel_monitoring |
此选项用于监控 bazel 的行为和性能。 |
terminal_output |
此选项会影响 bazel 的终端输出。 |
action_command_lines |
此选项用于更改一个或多个 build 操作的命令行参数。 |
test_runner |
此选项会更改 build 的测试运行器环境。 |
选项元数据标记
experimental |
此选项会触发一项实验性功能,但无法保证其功能性。 |
incompatible_change |
此选项会触发重大变更。使用此选项可测试您是否已做好迁移准备,或抢先体验新功能 |
deprecated |
此选项已弃用。这可能是因为受影响的功能已废弃,或者建议使用其他方法提供信息。 |
explicit_in_output_path |
输出目录中明确提及了此选项。 |