如何验证 BAZEL 项目的正确性?

How to verify BAZEL project for correctness?

如何验证我的整个项目不包含错误(例如,对未在任何地方声明的目标的引用)? 在静态语言中,每当我的代码引用不存在的东西时,我都会收到编译器错误。有没有办法用 bazel 执行等效检查?

bazel build --nobuild //... 有类似的效果。它评估所有规则(并因任何错误而失败),但实际上并没有构建任何东西。

添加您要检查的完整构建的任何其他标志。大多数标志导致规则评估不同,因此您可能会看到不同的错误,具体取决于您使用的标志。

一组 Bazel 目标可以为某些 configurations but not others. For example, if there's a select 正确构建而无需这样的默认值:

cc_library(
    name = "something",
    srcs = select({
        ":cpu_k8": ["something_k8.cc"],
    }),
)

然后它将使用 --cpu=k8 而不是 --cpu=aarch64 进行构建。这意味着您必须在检查完整构建时指定相同的标志集。