如果你在使用 [maven] 时遇到这个报错:
sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
有两个方案可以解决:
导入库证书
- Chrome 访问 https://repo.maven.apache.org/
- F12 后在
Security -> View certificate -> 详细信息 -> 复制到文件(C)...
导出证书,格式选择Base 64 编码 X.509 (.CER)
- 执行
keytool -import -file C:\mavenCert.cer -keystore C:\mavenKeystore
后续再执行 mvn
命令时需要带个参数 -Djavax.net.ssl.trustStore=C:\mavenKeystore
,比如这样 mvn install -Djavax.net.ssl.trustStore=C:\mavenKeystore
。这个参数也可以加到环境变量 MAVEN_OPTS
中,细节请参考这里。
这个方案是解决该问题的正确姿势,但是我没有试验成功 😂
使用 HTTP 访问
有两种实现:在项目 pom.xml 中指定好 repository 的访问方式(但需要每个项目都配置,比较麻烦);在 maven 全局配置(settings.xml)中定义一个镜像。
下面是全局镜像的配置:
<mirror>
<id>Central</id>
<url>http://repo1.maven.org/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
虽然不太“正统”,但这个方案足够简洁。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于