问题
有没有办法使用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挂载中搜索。
有时候,用户不清楚软件包来自哪里,即是否是本地检出版本还是从Fuse服务器上获取的。当用户删除或移动Bazel软件包时,这会导致问题。
如果我可以指向一个命令来映射每个软件包的来源就好了。例如,如果我在...上运行该命令
//some/package/foo --> package_path/some/package/foo
//some/package/bar --> other_package_path/some/package/bar