IDEA中maven下载依赖包报错解决方案汇总【含终极解决方案】

目录

问题

结尾

终极解决方案

感谢

兼容Eclipse等其他IDE

1、检查语法

2、下载证书

3、导入cer文件

 4、结束


问题

首先抛一下我的报错信息吧,引入一个新依赖时,在本地仓库没有时,下载下来一直都是.lastUpdated 文件,并且控制台报错

 

Could not transfer artifact org.apache.commons:commons-lang3:pom:3.7 from/to nexus-aliyun (http://maven.aliyun.com/nexus/content/groups/public): sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

 

 大概意思就是访问仓库找不到所请求目标的有效证书路径.......

 

what?为什么莫名会有这个问题,于是疯狂百度看看有什么好的解决方案,结果看了N篇文章,大体都是说要在jre中导入对应网站的证书,开始是嫌弃的,为什么我之前都不用管这些证书问题xxxxxx,最后实在没办法了,试试吧,于是试了2,3遍后,我还特意重启idea,重启系统这种“万能”的方式都试了,结果结论是对我没效果[以下是我试过的链接]

https://blog.csdn.net/qq_33261885/article/details/104501130

https://blog.csdn.net/i_like1/article/details/80334298#comments

 

 接着又开始新一轮百度,搜搜maven依赖包下载不了的种种解决方案......于是找到以下一篇汇总贴。 这篇帖子希望对有些人有效,但是这篇帖子的全部方式我都试过了,对我没效果(运气太差了......)

https://blog.csdn.net/jwcxs_m/article/details/80076909

接着,自己不断的尝试中,在这篇帖子的基础上

https://blog.csdn.net/xxaann/article/details/104794669

终于琢磨出自己的解决方案。

1、先对项目进行clean

2、再对项目进行install

3、刷新项目

 

IDEA中maven下载依赖包报错解决方案汇总【含终极解决方案】_第1张图片

 

此时发现本地仓库已经下载下来了这个jar包

 

IDEA中maven下载依赖包报错解决方案汇总【含终极解决方案】_第2张图片

然后发现一个问题,侧边的maven工具栏还有红色波浪线还没有清除。此时只需要把大依赖标签用快捷键注释掉,import change。然后Ctrl+z撤销注释,再import change,就能变正常了。

结尾

在网上还看到在idea的maven侧边栏中执行如下命令也可以下载jar包下来

IDEA中maven下载依赖包报错解决方案汇总【含终极解决方案】_第3张图片

mvn -U idea:idea

 

 mvn dependency:sources

看到的老铁也可以试试以上两种 解决方案

 

华丽的分割线

--------------------------------------------------------------------------------------------------------------------------------------------------------------

终极解决方案

2020.4.19号

日思夜想,心里总是膈应,以上那种方法太麻烦了,每次新增本地仓库没有的jar包都要clean 在install......于是一直在百度,看看到底还有哪种方式我是没有试过的。。。终于让我找到了终极解决方法

在Idea的File -->settings中,设置Maven的importing和Runner参数,忽略证书检查即可。(Eclipse下解决原理类似,设置maven运行时参数即可)

具体参数:

-Dmaven.multiModuleProjectDirectory=$MAVEN_HOME -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true

IDEA中maven下载依赖包报错解决方案汇总【含终极解决方案】_第4张图片


IDEA中maven下载依赖包报错解决方案汇总【含终极解决方案】_第5张图片

 

 

以上步骤后,在idea中执行maven插件中的各种命令即可恢复正常!

以上亲测可以。

 

感谢

超级感谢这篇博主!!!

https://my.oschina.net/ghw/blog/3236131

 

兼容Eclipse等其他IDE

==================华丽的分割线=====================

2020.4.21

因为电脑同时安装了idea和eclipse,上面的那种方式讲了idea的终极解决方法,但是切换到eclipse之后,你创建maven工程还是会报那个错,这就很不爽了,那有没有彻底解决这种问题的方案呢?我今天又稍微研究了下。发现归根到底其实就是因为自己的Java环境没有相关网站的证书而导致的。  那解决方法导入相关网站的证书不就可以了吗??但是我之前找到好多篇博客导入证书貌似是没有效果的。这就匪夷所思了,但是你细心观察一下。发现他们执行的命令怎么有些许的不同?那这就是问题所在了,每个人用的java版本不同,语法有些不同,所以这才会导致你明明显示已经导入成功了,为什么还是会报找不到所请求目标的有效证书路径 ,那么知道问题所在了,那么就可以进行以下操作了!

1、检查语法

导入证书之前keytool -help看一下最新的导入语法

IDEA中maven下载依赖包报错解决方案汇总【含终极解决方案】_第6张图片

2、下载证书

比如你maven配置的是阿里的镜像仓库

http://maven.aliyun.com/nexus/content/groups/public

 IDEA中maven下载依赖包报错解决方案汇总【含终极解决方案】_第7张图片

IDEA中maven下载依赖包报错解决方案汇总【含终极解决方案】_第8张图片

之后点击下一步----》文件名随便命名就行了。这时候他会生成xxx.cer文件。

3、导入cer文件

具体命令

keytool -importcert -noprompt -trustcacerts -alias xxx(你想要导入的别名) -file "C:\Program Files\Java\jdk1.8.0_221\jre\lib\security\xxx.cer(你的文件的地址)" -keystore "C:\Program Files\Java\jdk1.8.0_221\jre\lib\security\cacerts" -storepass changeit

比如我电脑安装的是java8我根据上面 查的语法。我导入导入证书的命令也是 -importcert,所以我执行的命令是

keytool -importcert -noprompt -trustcacerts -alias alicert -file "D:\JAVA\cert\ali_cert.cer" -keystore "D:\JAVA\JAVA8\jre\lib\security\cacerts" -storepass changeit

 

 4、结束

这时候你再试试你的eclipse,你创建maven工程,随便导入一个本地仓库没有的jar包,你会惊奇的发现会下载成功了!

参考链接

https://my.oschina.net/u/4409332/blog/3291298

 

你可能感兴趣的:(maven,maven,java,intellij,idea)