Maven 使用阿里云镜像无法下载 aliyun-sdk-oss 的解决方案
Maven 使用阿里云镜像无法下载 aliyun-sdk-oss 的解决方案环境信息环境版本操作系统Windows 10/11Maven3.9.4JDK17IDEA2024.xaliyun-sdk-oss3.18.5问题描述在pom.xml中引入阿里云 OSS SDK 依赖dependencygroupIdcom.aliyun.oss/groupIdartifactIdaliyun-sdk-oss/artifactIdversion3.18.5/version/dependency配置了阿里云镜像加速后IDEA 依然报红Maven Sync 失败无法下载该依赖。原因分析阿里云 Maven 镜像maven.aliyun.com同步的是 Maven 中央仓库的大部分包但同步并不完整。com.aliyun.oss:aliyun-sdk-oss 这个包在阿里云镜像中没有被同步导致通过镜像无法下载。讽刺的是这是阿里自己的 OSS SDK却在阿里云镜像仓库里找不到。解决方案第一步修改 settings.xml在 Maven 的 settings.xml 中配置两个 mirror让阿里云镜像和 Maven 中央仓库同时生效mirrors!-- 阿里云镜像处理大部分依赖 --mirroridaliyunmaven/idmirrorOf*,!central/mirrorOfname阿里云公共仓库/nameurlhttps://maven.aliyun.com/repository/public/url/mirror!-- 中央仓库直连处理阿里云镜像没有的包 --mirroridcentral/idmirrorOfcentral/mirrorOfnameMaven Central/nameurlhttps://repo1.maven.org/maven2/url/mirror/mirrors关键点第一个 mirror 的 mirrorOf 改为 *,!central表示除 central 仓库以外的请求都走阿里云第二个 mirror 让 central 仓库直接访问 repo1.maven.org第二步如果修改后仍然下载失败可能是本地仓库缓存了失败记录用以下命令强制从中央仓库下载mvn org.apache.maven.plugins:maven-dependency-plugin:3.6.0:get-Dartifactcom.aliyun.oss:aliyun-sdk-oss:3.18.5-DremoteRepositorieshttps://repo1.maven.org/maven2注意Windows 用户 -D 参数必须用双引号包裹否则 Windows 命令行会截断参数导致出现如下报错Error resolving version for plugin .aliyun.oss:aliyun-sdk-oss注意错误里 com 丢失变成了 .aliyun.oss这就是参数被截断的特征。第三步命令执行成功后回到 IDEA 再次点击 Reload Maven ProjectIDEA 会重新扫描本地仓库红色报错即可消除。注意事项settings.xml 文件位置Maven 有两个 settings.xml很多人改错了文件导致不生效位置路径说明用户级别C:\Users\用户名\.m2\settings.xml只对当前用户生效全局级别Maven安装目录\conf\settings.xml对所有用户生效确认方式 在 IDEA 中打开 File → Settings → Build, Execution, Deployment → Build Tools → Maven查看 User settings file 字段显示的路径就是当前实际生效的配置文件。如果两个文件都存在用户级别优先级更高改了全局的不一定生效务必确认改的是 IDEA 里显示的那个文件。总结步骤操作1确认 IDEA 使用的 settings.xml 路径2修改mirrors添加中央仓库直连配置3IDEA 重新 Sync Maven4若仍失败用 mvn 命令强制下载注意 Windows 参数加引号5强制下载成功后回到 IDEA 再次 Reload Maven Project红色消除即完成