如何取消设置bazelrc中设置的标志?

时间:2018-02-06 22:09:31

标签: bazel

我的bazel.rc有标记设置远程缓存,但在某些情况下我想禁用它,例如在具有网络限制的环境中运行时。

如何“取消设置”bazel.rc中设置的标志?例如,bazel.rc设置--google_credentials=/path/to/key,那么如何覆盖它并传入null以便它不查找凭证?

我想保留其余的bazel.rc,所以我不想简单地忽略它。

部分bazel.rc:

build --google_credentials=/path/to/key
build --google_default_credentials
build --google_auth_scopes=https://www.googleapis.com/auth/cloud-source-tools
build --bes_backend=buildeventservice.googleapis.com
build --bes_best_effort=false
build --bes_timeout=10s
build --project_id=123456
build --remote_cache=remotebuildexecution.googleapis.com
build --remote_instance_name=projects/myproject
build --spawn_strategy=remote
build --genrule_strategy=remote
build --tls_enabled=1
build --remote_accept_cached=true

1 个答案:

答案 0 :(得分:3)

命令行中指定的标志将覆盖bazelrc文件中的任何内容。因此,您可以指定--google_credentials=来清除值。

还有其他方法来设置它。在您的情况下,默认情况下您需要--foo=1 --bar=2,但有时您想关闭它们。要记住所有标志以关闭事件会很烦人,所以你可以创建配置。您的bazelrc文件如下所示:

build --foo=1 --bar=2
build:nofoo --foo= --bar=

通常bazel build时,您会获得--foo=1--bar=2。当您不希望foobar执行bazel build --config=nofoo时,会扩展为bazel build --foo=1 --bar=2 --foo= --bar=,后面的标记将覆盖之前的标记。