当我使用'bazel build //tools/adt/idea/...‘命令从源代码中build Android Studio时,不能总是找到'tools/vendor/google3’模块,谷歌不是没有开源项目吗?
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项目
发布于 2019-12-12 07:03:02
TL;DR:
<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
。在谷歌上快速搜索一下,就会发现blaze是bazel的内部版本,只在谷歌内部使用。
Android Studio的问题跟踪器中的A thread也证实了bazel构建在AOSP中被破坏了,并有一些额外的提示,即studio-master-dev
分支中的构建指令都是过时的(糟了)。在撰写本文时,这个问题仍然悬而未决,所以如果你正在构建Android Studio (或相关工具),你可能想看看那里的最新讨论。
发布于 2021-03-23 08:41:42
从tools/base/bazel/toplevel.WORKSPACE中删除所有对tools/vendor/google的引用:
https://android.googlesource.com/platform/tools/idea/+/refs/heads/studio-master-dev/RELEASE.md
https://stackoverflow.com/questions/50946201
复制相似问题