我有一个查询,该查询有效地返回所有标签以获取特定标签的依赖性。我想知道这些依赖项的实际文件路径。
$ bazel query 'deps(//foo:bar)' --noimplicit_deps
//baz:__init__.py
//baz:__baz__.py
--ouput location
并不能解决问题,因为它只是告诉我相同的标签和构建文件:行
我想要的输出是:
/some/path/baz/__init__.py
/some/path/baz/baz.py
答案 0 :(得分:1)
无法从查询命令中直接获取路径,但是--output location
的结果可以很容易地用一个小外壳转换为文件系统路径。这是Bazel存储库中的示例:
$ bazel query 'kind("source file", deps(//:srcs))' | sed -e 's/:/\//' -e 's/^\/\+//' | head -n10
tools/zip/BUILD.tools
tools/zip/BUILD
tools/whitelists/config_feature_flag/BUILD
tools/whitelists/BUILD
tools/test/LcovMerger/javatests/com/google/devtools/lcovmerger/SourceFileCoverageTest.java
tools/test/LcovMerger/javatests/com/google/devtools/lcovmerger/MainTest.java
tools/test/LcovMerger/javatests/com/google/devtools/lcovmerger/LineCoverageTest.java
tools/test/LcovMerger/javatests/com/google/devtools/lcovmerger/LcovPrinterTest.java
tools/test/LcovMerger/javatests/com/google/devtools/lcovmerger/LcovParserTest.java
tools/test/LcovMerger/javatests/com/google/devtools/lcovmerger/LcovMergerTestUtils.java
当然,如果您查询的目标实际上不是源文件,则会产生垃圾。通常,您需要使用kind("source file", ...)
过滤器来确保只输出真实文件。