我的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
答案 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
。当您不希望foo
和bar
执行bazel build --config=nofoo
时,会扩展为bazel build --foo=1 --bar=2 --foo= --bar=
,后面的标记将覆盖之前的标记。