Bazel 可以显示所有分析错误吗?

obe*_*tie 3 bazel

当我调用 Bazel 命令并且存在分析错误时,它仅显示其中之一。例如:

ERROR: /Users/oliver/src/github.com/monzo/wearedev/service.transaction-enrichment/handler/BUILD.bazel:3:1: target '//service.personal-account-signup/domain:go_default_library' is not visible from target '//service.transaction-enrichment/handler:go_default_library'. Check the visibility declaration of the former target if you think the dependency is legitimate
ERROR: /Users/oliver/src/github.com/monzo/wearedev/service.transaction-enrichment/handler/BUILD.bazel:3:1: target '//service.prepaid-bridge/domain:go_default_library' is not visible from target '//service.transaction-enrichment/handler:go_default_library'. Check the visibility declaration of the former target if you think the dependency is legitimate
ERROR: Analysis of target '//service.transaction-enrichment/handler:go_default_test' failed; build aborted: Analysis of target '//service.transaction-enrichment/handler:go_default_library' failed; build aborted
INFO: Elapsed time: 1.049s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (0 packages loaded)
Run Code Online (Sandbox Code Playgroud)

当我去解决这个特定的可见性问题并重新运行命令时,我可能会看到一个新的分析错误。

Bazel 遇到错误时会停止分析吗?有没有办法让它显示所有分析错误,以避免需要重复运行命令来连续清除每个错误?


需要明确的是,我正在运行的命令正在尝试构建多个目标,其中几个目标无法分析。即使每个目标只能输出一个错误,有没有办法让它分析所有目标?

Ond*_* K. 6

这不是您要找的吗?来自 CLI 帮助 ( bazel help --long build)。

  --[no]keep_going [-k] (a boolean; default: "false")
    Continue as much as possible after an error.  While the target that failed 
    and those that depend on it cannot be analyzed, other prerequisites of 
    these targets can be.
      Tags: eagerness_to_exit
Run Code Online (Sandbox Code Playgroud)

不确定这是否适用于所有场景,但我已经破坏了目标,而不是得到了错误:

WARNING: errors encountered while analyzing target '//xxx:xxx': it will not be built
Run Code Online (Sandbox Code Playgroud)

并继续执行指定的其他目标。

  • 此外,您可以将 `--nobuild` 传递给 `bazel build --keep_going` 以跳过执行阶段并仅显示分析阶段错误。 (2认同)