在终端中轻松获取bazel-bin目录



我已经使用bazel build生成了一些输出文件,但每次需要访问输出时都要指定bazel-bin目录的路径,这有点乏味。

在深度嵌套的bazel项目中,我不仅需要获得特定的存储库/Users/username/repos/organisation/folder/folder/repo,还需要添加bazel-bin/folder1/folder2/folder3/folder4/binary_i_want。我更愿意说$output/binary_i_want。Bazel应该能够获得项目目录(当它查找工作区文件时(,找到bazel-bin,然后查找我所在的等效目录。这是因为我可能不是直接运行它,而是通过adb推送将该文件复制到android设备。

这可能吗?谢谢

您可以为此使用$(bazel info bazel-bin)/binary_i_want

编辑:获取由规则生成的工件的完整路径更为复杂。使用jq的一个选项可能是:

$(bazel info workspace)/$(bazel aquery //:some_path --output jsonproto 2>/dev/null | jq -r ".artifacts[0].execPath")

(灵感来自这个答案:巴泽尔:你如何获得生成文件的路径?(

最新更新