执行mvn clean install构建时报spring-boot-starter-parent父POM无法解析错误
Maven构建peer not authenticated报错解决方法
根因说明
报错核心是Maven访问HTTPS协议的Maven中央仓库时SSL证书校验失败,无法完成服务端身份认证,同时项目pom.xml中parent.relativePath未配置本地父POM路径,无法 fallback 到本地加载依赖,最终导致父POM解析失败。
排查解决步骤
- 排查网络代理/拦截问题
公司内网环境通常会部署网络代理或防火墙,对HTTPS请求进行抓包审计,此时Maven拿到的是内部自签证书,不在JDK默认信任证书库中就会触发校验失败。可先尝试将Maven中央仓库地址临时切换为HTTP版本http://repo.maven.apache.org/maven2,验证是否是证书拦截导致的问题。
- 排查网络代理/拦截问题
- 修复JDK信任证书库
低版本JDK(JDK8 u101之前的版本)默认没有收录Maven中央仓库使用的Let's Encrypt根证书,会导致校验失败。可以升级到JDK8 u101以上版本,也可以手动导入证书到JDK证书库:
第一步导出仓库证书:openssl s_client -connect repo.maven.apache.org:443 < /dev/null | sed -n '/-----BEGIN/,/-----END/p' > maven_repo.crt
第二步导入证书到JDK:keytool -import -alias maven-repo -file maven_repo.crt -keystore $JAVA_HOME/jre/lib/security/cacerts
(JDK证书库默认密码为changeit)
- 修复JDK信任证书库
- 临时跳过SSL校验验证问题
可以在执行Maven命令时添加参数临时关闭SSL校验,确认是否为证书问题导致构建失败:mvn clean install -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true
注意该配置仅用于临时排查问题,生产环境不要开启,存在安全风险。
- 临时跳过SSL校验验证问题
- 优化Maven镜像配置
可以替换使用国内的Maven镜像源,避免跨境访问网络波动问题,同时国内镜像的证书通常不会被内网拦截。在Maven的settings.xml配置文件的mirrors节点下添加阿里云镜像配置即可:
<mirror> <id>aliyunmaven</id> <mirrorOf>central</mirrorOf> <url>https://maven.aliyun.com/repository/public</url> </mirror>- 优化Maven镜像配置
- 调整父依赖本地加载配置
如果本地已经存在spring-boot-starter-parent的POM文件,可以在项目pom.xml的parent节点中添加<relativePath/>(如果是继承本地父模块则填写对应本地路径),优先从本地加载父POM,避免远程拉取。
- 调整父依赖本地加载配置
内容的提问来源于stack exchange,提问作者Mohan
相关产品推荐
相关产品推荐

