Maven无法下载依赖之PKIX path building failed问题及解决

在使用Maven从中央库下载依赖时, 报如下错误:

[[1;31mERROR[m] Plugin org.apache.maven.plugins:maven-source-plugin:3.0.1 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-source-plugin:jar:3.0.1: Could not transfer artifact org.apache.maven.plugins:maven-source-plugin:pom:3.0.1 from/to central (https://repo.maven.apache.org/maven2): sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target -> [1m[Help 1][m
[[1;31mERROR[m]
[[1;31mERROR[m] To see the full stack trace of the errors, re-run Maven with the [1m-e[m switch.
[[1;31mERROR[m] Re-run Maven using the [1m-X[m switch to enable full debug logging.
[[1;31mERROR[m]
[[1;31mERROR[m] For more information about the errors and possible solutions, please read the following articles:
[[1;31mERROR[m] [1m[Help 1][m http://cwiki.apache.org/confluence/display/MAVEN/PluginResolutionException

这里方式以上错误的开发环境是:
1.配置了JAVA_HOME 环境变量和PATH
2. 企业内部有自己的证书,看起来对其他证书做了封装

一般状况下, Maven 的库的证书是被信任的,因为这个证书在Java安装的时候就被包含在Java的证书库了。但是如果根证书使用企业内部的,则Java就不认识了, 所以需要将这个证书导入证书库中。

导入的主要步骤是:

  1. 使用Chrom 导出证书
  2. 使用 keytool -import导入证书,因为配置了JAVA_HOME,所以需要导入到JDK目录下的 jre\lib\security\cacerts 文件中, 具体命令如下:
keytool -import -trustcacerts  -alias mvnrepo  -file c:\\cert\mvnrepo.crt -keystore  "C:\Program Files\Java\jdk1.8.0_131\jre\lib\security\cacerts" -storepass changeit

如果需要, 可以将这个证书同步导入到JRE目录的证书库文件cacerts 中,关于Java安装证书,可以参考: Java如何安装https证书

问题又现

使用一段时间之后, 某天又突然不行了,错误还是 PKIX 的证书问题。

解决方式是把之前添加的证书条目删除, 从浏览器下载之后, 重新导入:

从证书库删除证书:

keytool -delete -alias mvnrepo -keystore  "C:\Program Files\Java\jdk1.8.0_131\jre\lib\security\cacerts" -storepass changeit

导入证书:

keytool -import -trustcacerts  -alias mvnrepo  -file c:\\cert\mvnrepo.crt -keystore  "C:\Program Files\Java\jdk1.8.0_131\jre\lib\security\cacerts" -storepass changeit

注意:

  • 如果是命令窗口执行 mvn 命令触发更新, 需要新开命令窗口
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oscar999

送以玫瑰,手留余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值