华为 HMS Core SDK 依赖:管理混乱,怪不得人们常说,这个世界就是一个巨大的草台班子

前言

  • 个人在开发安卓应用,准备上架华为应用商店,在应用更新时,想使用华为应用商店的更新服务,于是需要接入 HMS Core SDK,但是发现 HMS Core SDK 依赖存在很大问题
    1. 华为官方仓库的 SDK 历史版本会删除,如:
      1. com.huawei.hms:appservice 只有一个版本 6.14.0.301(查询时间:2026-03-02,发布时间:2025-11-29),不得不选择
    2. 华为官方仓库的 SDK 不完整,如:
      1. com.huawei.hms:appservice:6.14.0.301 中引入了com.huawei.hms:apptouch:6.14.0.301,但是 com.huawei.hms:apptouch:6.14.0.301 不存在

源码

README.md

华为 Maven 仓库

使用方法

包含内容

  • HMS Core SDK
    1. 华为官方仓库的 SDK 不完整,如:
      1. com.huawei.hms:appservice:6.14.0.301 中引入了 com.huawei.hms:apptouch:6.14.0.301,但是 com.huawei.hms:apptouch:6.14.0.301 不存在
    2. 华为官方仓库的 SDK 历史版本会删除,如:
      1. com.huawei.hms:appservice 只有一个版本 6.14.0.301(时间:2026-03-02)
    3. 此仓库仅用于已使用的依赖的备份,防止华为官方仓库删除历史版本,导致程序无法运行(需要强制升级)
    4. 已缓存的依赖
      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")
      

将 华为 Maven 仓库 上传至 GitLab Packages 软件包仓库 方法

  1. 需要使用的软件 nexus-cli
  2. 基于 Nexus 操作:由于 nexus-cli 开发时,是基于 Maven 本地仓库目录开发的,所以需要借助 Nexus 操作
    1. 在 Nexus 中创建 Maven 代理仓库,地址:https://developer.huawei.com/repo/
      1. 个人使用的 Nexus 仅作为临时 Maven 仓库,不会长期保留,无备份,可能在任何时候删除
      2. 个人使用的 GitLab 数据会长期保留,有备份
      3. 使用 Nexus 代理仓库,可以精确区分依赖所在的仓库,为后续最小化上传至 GitLab Packages 软件包仓库 做出准备
    2. 在项目中配置上述 Nexus Maven 代理仓库,增加所需依赖,项目编译完成,依赖即可下载完成
    3. 下载上述 Nexus Maven 代理仓库的依赖,命令:
      # 下载
      # --base-url:Nexus 根地址
      # --repository:仓库名称
      nexus-cli download --base-url=http://172.25.25.14:48081 --repository=maven-huawei
      
    4. 将已经下载的依赖,上传至 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