mirrorof 应设为 才能真正生效,因 匹配所有仓库;阿里云镜像地址须用 https://maven.aliyun.com/repository/public;需确保 mirror 置于 settings.xml 的 标签下,且清除本地元数据缓存验证生效。

mirrorOf 设置成 * 才能真正生效
很多人配了阿里云镜像但下载还是慢,根本原因是 mirrorOf 值写成了 central 或留空。Maven 只对匹配到的仓库走镜像,而默认的中央仓库 ID 是 central,但如果你项目里又声明了其他仓库(比如 Spring 的 spring-milestones),它们不会被 central 匹配到。* 表示“所有仓库”,这是最稳妥的写法。
-
mirrorOf推荐值:*(不是central,也不是external:*) - 如果必须排除某些私有仓库,才用
!repo-id, *这种排除语法,但日常开发极少需要 - 改完记得删掉
~/.m2/repository/.cache/下的元数据缓存,否则旧重定向可能还在生效
settings.xml 里 <mirror></mirror> 必须放在 <mirrors></mirrors> 标签下
常见错误是把 <mirror></mirror> 直接塞进 <profiles></profiles> 或 <servers></servers> 里,或者漏写外层 <mirrors></mirrors>。Maven 只认顶层 <mirrors></mirrors> 下的 <mirror></mirror>,其他位置一律忽略。
- 正确结构:根节点
<settings></settings>→<mirrors></mirrors>→<mirror></mirror> - 别在
<profile></profile>里配 mirror——profile 里的 mirror 不生效 - 多个 mirror 时,Maven 按顺序匹配第一个
mirrorOf匹配成功的,后面的会被跳过
阿里云镜像地址要用 https://maven.aliyun.com/repository/public
网上很多教程还写着老地址 http://maven.aliyun.com/nexus/content/groups/public/,这个 HTTP 地址已停用,且不支持 HTTPS 重定向,会直接报 Connection refused 或 PKIX path building failed。
- 当前唯一有效地址:
https://maven.aliyun.com/repository/public - 别漏掉
/repository/public后缀,只写到/repository会 403 - 国内网络下,这个地址响应稳定;海外用户反而可能更慢,此时应考虑用
https://repo1.maven.org/maven2/或就近镜像
验证是否生效:看 Maven 日志里的 Downloading from aliyunmaven
运行 mvn clean compile -X(加 -X 开启 debug 日志),搜索日志中是否有 Downloading from aliyunmaven。如果看到的是 Downloading from central 或其他名字,说明配置没生效。
- 检查
settings.xml是否被正确加载:日志开头会打印Using settings file: ... - 确认没被项目级
pom.xml中的<repositories></repositories>覆盖——项目里显式定义仓库时,mirror 默认不接管 - IDE(如 IntelliJ)可能用自带的 Maven 或独立 settings 文件,要检查 IDE 的 Maven 配置路径是否指向你改的那个
settings.xml
最常被忽略的一点:公司内网环境可能有代理或白名单限制,即使 settings.xml 完全正确,https://maven.aliyun.com 也可能被防火墙拦截。这时候得找运维确认出向域名是否放行,而不是反复调配置。










