前言
- 个人在开发安卓应用,准备上架华为应用商店,在应用更新时,想使用华为应用商店的更新服务,于是需要接入 HMS Core SDK,但是发现 HMS Core SDK 依赖存在很大问题
- 华为官方仓库的 SDK 历史版本会删除,如:
com.huawei.hms:appservice只有一个版本6.14.0.301(查询时间:2026-03-02,发布时间:2025-11-29),不得不选择
- 华为官方仓库的 SDK 不完整,如:
com.huawei.hms:appservice:6.14.0.301中引入了com.huawei.hms:apptouch:6.14.0.301,但是com.huawei.hms:apptouch:6.14.0.301不存在
- 华为官方仓库的 SDK 历史版本会删除,如:
源码
README.md
华为 Maven 仓库
- 华为 Maven 仓库 https://developer.huawei.com/repo/ 部分镜像
使用方法
- 仓库地址:https://gitlab.xuxiaowei.com.cn/api/v4/projects/559/packages/maven
- 此仓库非公开仓库,需要 GitLab Token 作为凭证(至少需要
read_api权限)
- 此仓库非公开仓库,需要 GitLab Token 作为凭证(至少需要
包含内容
- HMS Core SDK
- 华为官方仓库的 SDK 不完整,如:
com.huawei.hms:appservice:6.14.0.301中引入了com.huawei.hms:apptouch:6.14.0.301,但是com.huawei.hms:apptouch:6.14.0.301不存在
- 华为官方仓库的 SDK 历史版本会删除,如:
com.huawei.hms:appservice只有一个版本6.14.0.301(时间:2026-03-02)
- 此仓库仅用于已使用的依赖的备份,防止华为官方仓库删除历史版本,导致程序无法运行(需要强制升级)
- 已缓存的依赖
implementation("com.huawei.hms:appservice:6.14.0.301") { exclude(group = "com.huawei.hms", module = "apptouch") } implementation("com.huawei.hms:apptouch:6.3.0.302")
- 华为官方仓库的 SDK 不完整,如:
将 华为 Maven 仓库 上传至 GitLab Packages 软件包仓库 方法
- 需要使用的软件 nexus-cli
- 基于 Nexus 操作:由于 nexus-cli 开发时,是基于 Maven 本地仓库目录开发的,所以需要借助 Nexus 操作
- 在 Nexus 中创建 Maven 代理仓库,地址:https://developer.huawei.com/repo/
- 个人使用的 Nexus 仅作为临时 Maven 仓库,不会长期保留,无备份,可能在任何时候删除
- 个人使用的 GitLab 数据会长期保留,有备份
- 使用 Nexus 代理仓库,可以精确区分依赖所在的仓库,为后续最小化上传至
GitLab Packages 软件包仓库做出准备
- 在项目中配置上述 Nexus Maven 代理仓库,增加所需依赖,项目编译完成,依赖即可下载完成
- 下载上述 Nexus Maven 代理仓库的依赖,命令:
# 下载 # --base-url:Nexus 根地址 # --repository:仓库名称 nexus-cli download --base-url=http://172.25.25.14:48081 --repository=maven-huawei - 将已经下载的依赖,上传至
GitLab Packages 软件包仓库中,命令:# 上传 # --url:GitLab Packages 软件包仓库 地址 # --username:GitLab 用户名 # --password:GitLab Token,至少需要 api 权限 # --local:已下载依赖所在的文件夹 nexus-cli upload maven-url --url=https://gitlab.xuxiaowei.com.cn/api/v4/projects/559/packages/maven --username= --password= --local=./maven-huawei
- 在 Nexus 中创建 Maven 代理仓库,地址:https://developer.huawei.com/repo/