说明
- 由于某些原因,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 - GitHub Packages Maven 仓库 需要 GitHub Token 才能访问,Token 权限最小范围:
read:packages - 众所周知的原因,国内用户访问国外网站时,网络不稳定
- 如果想稳定使用 GitHub Packages Maven 仓库,可以使用 Nexus 等软件 或者 云厂商 进行代理
方案1:使用 云厂商 提供的服务进行代理
- 以 阿里云云效 为例,计费方式(免费额度 10.00 GiB):阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台
- 阿里云云效 的 制品仓库 Packages 类型:
- Proxy:代理仓库,不能直接使用,需要添加在 Hybrid 中,并使用 Hybrid 仓库地址
- Hybrid:合并仓库
- Hosted:宿主仓库,用户上传产物的仓库
- 创建 GitHub Token:Sign in to GitHub · GitHub
Token 权限最小范围:read:packages
- 访问 阿里云云效,如果没有开通,可以创建一个组织(免费)
- 进入 制品仓库
- 新建制品仓库
- 创建制品仓库
- 选择 Maven
- 输入仓库名称
- 自定义仓库地址后缀
- 仓库模式:选择 Hybrid 综合模式(支持存储制品、代理远端仓库)
- 存储策略:由于 Spring Cloud Alibaba 仅仅把 Snapshot 快照版
发布到 https://maven.pkg.github.com/alibaba/spring-cloud-alibaba ,只需要选择 Snapshot 即可。
一旦创建成功,仓库类型不可修改 - 公开性:根据自己的需要选择,可选范围:私有仓库(仅仓库成员可访问)、组织内可见(组织内成员均可访问)
创建完成后,可以修改
- 创建完成后,仓库信息
- 进入设置
- 进入代理设置
- 添加代理
- 填写代理信息
- 代理仓库配置完成
- 查看已有仓库
- 在项目中使用 阿里云云效 代理仓库
- 编译
# 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 - 使用国内 云厂商 Maven 代理,加快依赖下载速度(由于阿里云 Maven 代理仓库用的多,本示例使用腾讯云)
- 依赖下载日志
- 查看仓库依赖
- Proxy 仓库未下载的情况
- Proxy 仓库已下载的情况
- Hybrid 仓库不显示代理的 Proxy 仓库的依赖
- Proxy 仓库未下载的情况
方案2:在能稳定访问 GitHub 地址的服务器中,搭建 Nexus,基于 Nexus 代理
- 作者香港服务器代理地址:http://nexus.xuxiaowei.io:48081/repository/maven-github-spring-cloud-alibaba/
- 该 Nexus 仓库可以匿名访问
- 创建 Maven 代理仓库
- 填写名称
- 选择仓库类型:(可选范围:Release 正式版、Snapshot 快照版、Mixed 混合版)
由于 Spring Cloud Alibaba 仅仅把 Snapshot 快照版
发布到 https://maven.pkg.github.com/alibaba/spring-cloud-alibaba ,
只需要选择 Snapshot 即可。
一旦创建成功,仓库类型不可修改 - 填写代理目标仓库地址:https://maven.pkg.github.com/alibaba/spring-cloud-alibaba
- 填写 GitHub 用户名、密码
- 获取已 创建 Maven 代理仓库 地址
- 使用示例与效果
- 此 Nexus 可以匿名访问
- 如果 Nexus 无法匿名访问,需要在 Maven settings.xml 文件中配置 Nexus 用户名和密码




















