gpt4 book ai didi

bazel - 如何使用bazel查询确定目标的绝对路径?

转载 作者:行者123 更新时间:2023-12-02 02:36:07 33 4
gpt4 key购买 nike

问题

有什么办法可以使用 bazel queryaspects确定 bazel 在包路径上的哪个位置拾取包?类似于which的东西命令。

文档建议使用 --show_package_location 。但是,这已被弃用并且不再受支持,请参阅 #5592 。此外,我尝试使用它并没有发现太多有用的信息。我已经尝试过bazel query //some/target/... --output label_kind --show_package_location以及 bazel build 的其他排列并且它不会添加与控制台输出不同的输出。

动机

我的包路径上有两个不同的目录用于获取、查询和构建。

--package_path=%workspace%:%workspace%/__fuse__

此配置支持用户对大型存储库执行稀疏 checkout 的工作流程,同时仍然能够构建尚未在本地 checkout 的代码。构建目标时,Bazel 会检查本地 checkout 的包版本,如果不存在,则会搜索只读熔丝安装座。

有时,用户不清楚从哪里获取包,即它是本地 checkout 的版本还是从 fusion 提供的版本。当他们删除或移动 Bazel 软件包并且 Bazel 选取熔断器安装座上的版本时,这会成为问题。

如果我可以向他们指出一个命令,将每个包映射到它被拾取的位置,那就太好了。例如,如果我在...上运行命令

//some/package/foo --> package_path/some/package/foo
//some/package/bar --> other_package_path/some/package/bar

最佳答案

我在 bazel 查询文档中完全错过了这一点。

使用 bazel 查询,我只需要添加 --output location,因此只要我进行如下查询:

bazel query //some/package/... --output location

然后bazel查询会输出

/absolute/path/some/package/BUILD:lineno:colno target_kind label

对于 //some/package/... 中的每个目标

关于bazel - 如何使用bazel查询确定目标的绝对路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51328420/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com