如何为Bazel添加Firebase Messaging服务依赖?遇仓库解析错误
解决Bazel中gmaven_artifact依赖仓库无法解析的问题
我之前也碰到过类似的依赖解析问题,结合你的配置和报错信息,咱们一步步来排查解决:
1. 先更新过于陈旧的gmaven_rules版本
你当前用的GMAVEN_TAG = "20180513-1"是2018年的版本,这个版本太老了,对新的Android依赖(比如你使用的Firebase Messaging 17.0.0)的解析支持存在兼容性问题。建议替换为较新的稳定版本:
修改WORKSPACE中的标签配置,示例如下:
# Google Maven Repository GMAVEN_TAG = "v0.4.0" # 可替换为更近期的稳定版本 http_archive( name = "gmaven_rules", strip_prefix = "gmaven_rules-%s" % GMAVEN_TAG, url = "https://github.com/bazelbuild/gmaven_rules/archive/%s.tar.gz" % GMAVEN_TAG, ) load("@gmaven_rules//:gmaven.bzl", "gmaven_rules") gmaven_rules()
2. 明确指定依赖拉取的仓库源
Firebase的依赖需要从Google官方Maven仓库获取,确保gmaven_rules初始化时包含正确的仓库地址:
在WORKSPACE的gmaven_rules()调用中添加仓库配置:
gmaven_rules( repositories = [ "https://maven.google.com", # Google官方Maven仓库 "https://repo1.maven.org/maven2", # Maven中央仓库 ] )
3. 优化BUILD文件中gmaven_artifact的写法
你当前的写法格式没问题,但可以改用更清晰的参数形式,避免解析歧义:
gmaven_artifact( group = "com.google.firebase", artifact = "firebase-messaging", version = "17.0.0", packaging = "aar", )
4. 清理缓存后重新构建
旧的构建缓存可能导致解析异常,执行以下命令清理后再重新构建:
bazel clean --expunge bazel build //Androidapp:androidapp
如果以上步骤仍未解决问题,可以检查网络是否能正常访问Google Maven仓库;若网络受限,可将仓库地址替换为国内的Maven镜像源(比如阿里云镜像)。
内容的提问来源于stack exchange,提问作者user191919191
相关产品推荐
相关产品推荐

