bazel - 如何验证 BAZEL 项目的正确性?
问题描述
如何验证我的整个项目不包含错误(例如,对未在任何地方声明的目标的引用)?在静态语言中,每当我的代码引用不存在的内容时,都会出现编译器错误。有没有办法用 bazel 进行等效检查?
解决方案
bazel build --nobuild //...
有类似的效果。它评估所有规则(并因任何错误而失败),但实际上并没有构建任何东西。
添加您要检查的完整构建的任何其他标志。大多数标志导致规则评估不同,因此您可能会看到不同的错误,具体取决于您使用的标志。
一组 Bazel 目标可以为某些配置正确构建,但不能为其他配置正确构建。例如,如果有一个没有像这样的默认值的选择:
cc_library(
name = "something",
srcs = select({
":cpu_k8": ["something_k8.cc"],
}),
)
然后它将与--cpu=k8
但不是--cpu=aarch64
。这意味着您在检查时必须指定与完整构建相同的标志集。
推荐阅读
- html - 如何使用 XSL-Transformations 将 Markdown 语言从 XML CDATA 元素转换为 HTML 和 XSL:FO?
- python - 尝试使用 numpy 数组绘制对数拟合时出现 ValueError
- powershell - SSH 命令 PowerShell
- python - 在 macOS Big Sur 上安装 PyOpenGL
- javascript - Puppeteer cluster.close() 在调用 cluster.queue() 后“崩溃”
- azure - 在客户租户中创建应用注册的最佳实践
- powershell - Powershell - 将文本放入变量中,使用文本替换另一个文本文件中的文本
- reactjs - 如何在 react/redux 的页面刷新期间处理对后端的异步 api 调用?
- sql - 如何使用 html 表单从 SQL 服务器检索数据?
- javascript - 拖动文本选择时发生了什么?