创建SpringBoot项目出现的问题(Could not transfer artifact :spring-boot-starter-parent)
前言:之前创建SpringBoot项目也出现过此问题,但是换了一个maven仓库好使了,但是没过多久那个仓库访问不了了,然后项目就开始报错。这几天自己创建项目又出现了这个问题,感觉再不彻底解决,人都不好了。
一、问题描述
通过Spring Initializer创建SpringBoot项目,发现出现了问题,我首先检查的是maven的settings的配置文件,发现其中配置的是阿里云的仓库,配置是没有问题的,但是包还是导入不进去,reimport也没有效果。执行clean命令显示的是如下的错误:
Could not transfer artifact :spring-boot-starter-parent:pom:2.2. from/to nexus-aliyun (/nexus/content/groups/public): : PKIX path building failed: : unable to find valid certification path to requested target
- 1
有图有真相:
二、查找问题原因
进入报错的网站查找springbootRELEASE2.2.0的(/repository/central)
显而易见,是有这个包的。后来换了其他的版本,还是这个德性,由此可见并不是版本的问题。
然后针对报错信息的后半部分进行研究,找到问题的解决方法。
后半部分报错信息:
: unable to find valid certification path to requested target(无法找到有效的证书)
- 1
意思就是服务器提供的证书不被我们客户端信任。
三、解决方法(两种方法)
第一种方法:在执行maven命令时忽略证书检查
在此处设置忽略证书检查
忽略证书检查的命令:
-=true -=true -=true
亲测好使:
第二种方法:手动导入证书,即将安全证书导入到java的cacerts证书库
确保maven中中的阿里源配置正确
在chrome浏览器下载证书到本地
根据以下步骤,一直next,将文件命名为ali_maven,后缀默认为.cer,保存到D盘根目录
设置导出证书的编码格式:
通过证书添加java信任证书库
(1)打开C:\Program Files\Java\jdk1.8.0_121\jre\lib\security目录。(cacerts包含了很多CA证书,位置在Java的安装目录:如: C:\Program Files\Java\jdk1.8.0_121\jre\lib\security\carcerts)
(2)在该目录下以管理员身份打开命令提示符(cmd)
(3)输入该命令:keytool -import -alias cacerts -keystore cacerts -file d:\ali_maven.cer
(4)输入默认的密钥库口令:changeit
(5)是否信任此证书?[否]:Y
(6)显示证书已添加到密钥库中即表示添加成功
(7)回到项目中重新clean,complie,解决问题。
四、总结
第一种方法感觉治标不治本,只是针对当前的项目来说是可以的,但是每次创建项目加那个配置比较麻烦,对比第二种方法包导入的速度比较慢,而且下次再创建项目也不需要再做配置。建议使用第二种方法,问题解决的十分彻底。
————————————————
版权声明:本文为****博主「一点江南」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:/weimenglala/article/details/104800011