基于阿里云云效代理 Spring Cloud Alibaba GitHub Packages Maven SNAPSHOT 快照仓库

说明

  1. 由于某些原因,Spring Cloud Alibaba 的 Maven 快照仅发布到了 GitHub
    Packages Maven 仓库:https://maven.pkg.github.com/alibaba/spring-cloud-alibaba
    议题:✨ 使用 GitHub actions 发布 Maven 快照 | Publish Maven SNAPSHOT using GitHub actions · Issue #4185 · alibaba/spring-cloud-alibaba · GitHub
  2. GitHub Packages Maven 仓库 需要 GitHub Token 才能访问,Token 权限最小范围:read:packages
  3. 众所周知的原因,国内用户访问国外网站时,网络不稳定
  4. 如果想稳定使用 GitHub Packages Maven 仓库,可以使用 Nexus 等软件 或者 云厂商 进行代理

方案1:使用 云厂商 提供的服务进行代理

  1. 创建 GitHub Token:Sign in to GitHub · GitHub
    Token 权限最小范围:read:packages
  2. 访问 阿里云云效,如果没有开通,可以创建一个组织(免费)
  3. 进入 制品仓库
  4. 新建制品仓库
  5. 创建制品仓库
    1. 选择 Maven
    2. 输入仓库名称
    3. 自定义仓库地址后缀
    4. 仓库模式:选择 Hybrid 综合模式(支持存储制品、代理远端仓库)
    5. 存储策略:由于 Spring Cloud Alibaba 仅仅把 Snapshot 快照版
      发布到 https://maven.pkg.github.com/alibaba/spring-cloud-alibaba ,只需要选择 Snapshot 即可。
      一旦创建成功,仓库类型不可修改
    6. 公开性:根据自己的需要选择,可选范围:私有仓库(仅仓库成员可访问)组织内可见(组织内成员均可访问)
      创建完成后,可以修改
  6. 创建完成后,仓库信息
  7. 进入设置
  8. 进入代理设置
  9. 添加代理
  10. 填写代理信息
  11. 代理仓库配置完成
  12. 查看已有仓库
  13. 在项目中使用 阿里云云效 代理仓库
  14. 编译
    # mvn:maven 命令
    # clean:清理
    # package:打包构建
    # -DskipTests:跳过测试
    # -s settings.xml:指定 settings.xml 文件,用于配置 阿里云 maven 仓库密码
    # -Dmaven.repo.local=.m2/repository:指定本地仓库目录,使用一个新地址,避免历史数据影响测试
    # -U:强制更新快照
    mvn clean package -DskipTests -s settings.xml -Dmaven.repo.local=.m2/repository -U
    
  15. 使用国内 云厂商 Maven 代理,加快依赖下载速度(由于阿里云 Maven 代理仓库用的多,本示例使用腾讯云)
    1. 阿里云:https://maven.aliyun.com/repository/public
    2. 腾讯云:Repository - Nexus Repository Manager
    3. 华为云:https://mirrors.huaweicloud.com/repository/maven/
    4. 其他 Maven 仓库地址(30+):Maven 仓库地址
  16. 依赖下载日志
  17. 查看仓库依赖
    1. Proxy 仓库未下载的情况
    2. Proxy 仓库已下载的情况
    3. Hybrid 仓库不显示代理Proxy 仓库的依赖

方案2:在能稳定访问 GitHub 地址的服务器中,搭建 Nexus,基于 Nexus 代理

  1. 创建 Maven 代理仓库
    1. 填写名称
    2. 选择仓库类型:(可选范围:Release 正式版、Snapshot 快照版、Mixed 混合版)
      由于 Spring Cloud Alibaba 仅仅把 Snapshot 快照版
      发布到 https://maven.pkg.github.com/alibaba/spring-cloud-alibaba
      只需要选择 Snapshot 即可。
      一旦创建成功,仓库类型不可修改
    3. 填写代理目标仓库地址:https://maven.pkg.github.com/alibaba/spring-cloud-alibaba
    4. 填写 GitHub 用户名、密码

  2. 获取已 创建 Maven 代理仓库 地址
  3. 使用示例与效果
    1. 此 Nexus 可以匿名访问
    2. 如果 Nexus 无法匿名访问,需要在 Maven settings.xml 文件中配置 Nexus 用户名和密码