Bazel查询依赖于文件

时间:2018-09-05 21:45:50

标签: bazel

我有一个查询,该查询有效地返回所有标签以获取特定标签的依赖性。我想知道这些依赖项的实际文件路径。

$ 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

1 个答案:

答案 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", ...)过滤器来确保只输出真实文件。