当我使用以下命令从源代码build Android Studio:'bazel build //tools/adt/idea/...'不能总是找到'tools / vendor / google3'模块时,google是否没有开源项目?
zhangyang@zhangyang-OptiPlex-7040:~/aosp/gradle_3.1.2$ bazel build //tools/adt/idea/...
WARNING: ignoring http_proxy in environment.
Starting local Bazel server and connecting to it...
..............................
ERROR: error loading package '': Encountered error while reading extension file 'binds.bzl': no such package '@blaze//': /home/zhangyang/.cache/bazel/_bazel_zhangyang/e54d4cb13781c1d72b64dc99700261fe/external/blaze must be an existing directory
ERROR: error loading package '': Encountered error while reading extension file 'binds.bzl': no such package '@blaze//': /home/zhangyang/.cache/bazel/_bazel_zhangyang/e54d4cb13781c1d72b64dc99700261fe/external/blaze must be an existing directory
INFO: Elapsed time: 0.621s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (0 packages loaded)
bazel工作空间:
load(“ // tools / base / bazel:repositories.bzl”,“ setup_external_repositories”)
setup_external_repositories()
local_repository(
name = "blaze",
path = "tools/vendor/google3/blaze",
)
load("@blaze//:binds.bzl", "blaze_binds")
blaze_binds()
http_archive(
name = "bazel_toolchains",
urls = [
"https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/archive/b49ba3689f46ac50e9277dafd8ff32b26951f82e.tar.gz",
"https://github.com/bazelbuild/bazel-toolchains/archive/b49ba3689f46ac50e9277dafd8ff32b26951f82e.tar.gz",
],
strip_prefix = "bazel-toolchains-b49ba3689f46ac50e9277dafd8ff32b26951f82e",
sha256 = "1266f1e27b4363c83222f1a776397c7a069fbfd6aacc9559afa61cdd73e1b429",
)
但是Aosp没有工具/供应商/ google3项目
最佳答案
TL; DR:
bazel构建在AOSP中被破坏
使用<studio-master-dev>/tools/idea/build_studio.sh
代替
或者,如果您只想在tools/base
中构建子模块,只需运行gradle build
。您可能必须从gradle.build
中删除一些无效的依赖关系,但这并不难解决。
长版:
我遇到了相同的错误消息,并在external
目录中进行了查看:
ls -lah ~/.cache/bazel/_bazel_xxx/89112fe8516b5fa5b01df0651312df31/external/
total 16K
drwxrwxr-x 2 xxx xxx 4.0K Dec 12 14:04 .
drwxrwxr-x 7 xxx xxx 4.0K Dec 12 14:04 ..
-rw-rw-r-- 1 xxx xxx 33 Dec 12 14:04 @bazel_tools.marker
lrwxrwxrwx 1 xxx xxx 110 Dec 12 14:04 bazel_tools -> /home/xxx/.cache/bazel/_bazel_xxx/install/35f799b1c96ee2522d30a28ff4ef485a/_embedded_binaries/embedded_tools
lrwxrwxrwx 1 xxx xxx 55 Dec 12 14:04 blaze -> /home/xxx/studio-master-dev/tools/vendor/google3/blaze
实际上缺少的是
/tools/vendor/google3/blaze
。 Google快速搜索显示,blaze是内部版本的bazel,仅在Google内部使用。Android Studio的问题跟踪器中的A thread还可确认AOSP中的bazel构建已中断,并带有一些额外的提示,提示
studio-master-dev
分支中的构建指令都已过时(哎哟)。在撰写本文时,该问题仍然存在,因此,如果您要构建Android Studio(或相关工具),则可能需要查看那里的最新讨论。