Bazel 5.x执行bazel query --output=location不返回BUILD文件位置如何解决
Bazel 5.x 恢复query定位BUILD引用位置输出的配置方法
版本差异表现
- Bazel 4.2.2 版本执行源文件的位置查询命令时,会返回源文件被
BUILD文件引用的位置信息,包含BUILD文件路径、引用行号、列号:
bazel query ./main.cpp --output=location ~/project/package/BUILD:124:8: source file //package:main.cpp
- Bazel 5.1.1 版本默认调整了该逻辑,执行相同命令会返回源文件自身路径,固定标记位置为文件1行1列:
bazel query ./main.cpp --output=location ~/project/package/main.cpp:1:1: source file //package:main.cpp
该默认行为变更是响应官方GitHub工单的需求迭代。
恢复旧版输出的配置方式
执行查询命令时追加参数--incompatible_display_source_file_location=false,即可回到4.x版本的输出逻辑,命令写法如下:
bazel query ./main.cpp --output=location --incompatible_display_source_file_location=false
如果需要长期生效,无需每次手动加参数,可以将配置写入.bazelrc文件:
- 项目级生效:在项目根目录的
.bazelrc中添加配置行:query --incompatible_display_source_file_location=false - 全局用户级生效:在当前用户home目录的
.bazelrc中添加上述相同配置行,对该用户所有Bazel项目生效。
内容的提问来源于stack exchange,提问作者svlasov
相关产品推荐
相关产品推荐

