首页 > 解决方案 > 如何验证 BAZEL 项目的正确性?

问题描述

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

标签: bazel

解决方案


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

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

一组 Bazel 目标可以为某些配置正确构建,但不能为其他配置正确构建。例如,如果有一个没有像这样的默认值的选择:

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

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


推荐阅读