您如何查询 WORKSPACE 中可用的所有存储库的列表?

How do you query for a list of all repositories that are available in a WORKSPACE?

是否可以使用 bazel query 获取所有可用的远程存储库 (e.x.@com_google_protobuf) 的列表?

我不知道有什么方法可以准确地得到这个,但是你可以通过查询合成 //external 包来得到一个过度近似值。它包含每个外部存储库的一个目标。但是,它默认包含一些其他目标。

示例:

$ cat WORKSPACE
local_repository(name = "a", path = "a")
maven_jar(name = "b", artifact = "com.google.guava:guava:19.0")

$ bazel query //external:all
//external:local_jdk
//external:local_config_xcode
//external:local_config_cc
//external:jre-default
//external:jre
//external:jni_md_header-linux
//external:jni_md_header-freebsd
//external:jni_md_header-darwin
//external:jni_header
//external:jdk-default
//external:jdk
//external:javac
//external:java
//external:jar
//external:has_androidsdk
//external:extdir
//external:extclasspath
//external:cc_toolchain
//external:bootclasspath
//external:bazel_tools
//external:bazel_j2objc
//external:b
//external:android_sdk_for_testing
//external:android_ndk_for_testing
//external:android/sdk
//external:android/dx_jar_import
//external:android/crosstool
//external:a

请注意 //external:a//external:b 出现在结果中。