Bazel 查询 deps 到文件
Bazel query deps to files
我有一个查询可以有效地 returns 所有标签的特定标签的依赖关系。我想知道这些依赖的实际文件路径。
$ bazel query 'deps(//foo:bar)' --noimplicit_deps
//baz:__init__.py
//baz:__baz__.py
--ouput location
没有成功,因为它只是告诉我这个相同的标签和构建 file:line
我想要的输出是:
/some/path/baz/__init__.py
/some/path/baz/baz.py
无法直接从查询命令中获取路径,但是 --output location
结果可以很容易地通过一点点 shell 转换为文件系统路径。这是 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", ...)
过滤器来确保您只输出真实文件。
我有一个查询可以有效地 returns 所有标签的特定标签的依赖关系。我想知道这些依赖的实际文件路径。
$ bazel query 'deps(//foo:bar)' --noimplicit_deps
//baz:__init__.py
//baz:__baz__.py
--ouput location
没有成功,因为它只是告诉我这个相同的标签和构建 file:line
我想要的输出是:
/some/path/baz/__init__.py
/some/path/baz/baz.py
无法直接从查询命令中获取路径,但是 --output location
结果可以很容易地通过一点点 shell 转换为文件系统路径。这是 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", ...)
过滤器来确保您只输出真实文件。