题
有什么方法可以使用bazel query或aspects确定 bazel 在包裹路径上的哪个位置提取包裹?类似于which命令的东西。
该文档建议使用--show_package_location. 但是,已弃用且不再受支持,请参阅#5592。此外,我尝试使用它并没有发现很多有用的信息。我已经尝试bazel query //some/target/... --output label_kind --show_package_location过以及其他排列,bazel build并且它不会向控制台输出添加任何不同的输出。
动机
我的包路径上有两个不同的目录用于获取、查询和构建。
--package_path=%workspace%:%workspace%/__fuse__
此配置支持用户对我们的大型存储库执行稀疏检出的工作流程,同时仍然能够构建尚未在本地检出的代码。在构建目标时,Bazel 会检查包的本地检出版本,如果不存在,它会搜索只读保险丝安装。
有时,用户不清楚从哪里获取包,即它是本地签出的版本还是从 fuse 提供的版本。当他们删除或移动 Bazel 包时,这会成为问题,而 Bazel 会在保险丝安装座上选择该版本。
如果我可以将它们指向一个将每个包映射到它被拾取的位置的命令,那就太好了。例如,如果我在...上运行命令
//some/package/foo --> package_path/some/package/foo
//some/package/bar --> other_package_path/some/package/bar
Run Code Online (Sandbox Code Playgroud)
我在 bazel 查询文档中完全错过了这一点。
使用 bazel 查询,我只需要添加--output location,因此只要我进行如下查询:
bazel query //some/package/... --output location
Run Code Online (Sandbox Code Playgroud)
然后bazel查询将输出
/absolute/path/some/package/BUILD:lineno:colno target_kind label
Run Code Online (Sandbox Code Playgroud)
对于每个目标 //some/package/...
| 归档时间: |
|
| 查看次数: |
1581 次 |
| 最近记录: |