美文网首页
SpringBoot使用maven下载不了jar包的问题

SpringBoot使用maven下载不了jar包的问题

作者: 朝前小站 | 来源:发表于2020-03-05 22:27 被阅读0次

    参考资料

    朝前小站-SpringBoot使用maven下载不了jar包的问题

    说明

    最近在项目中使用IDEA导入了一个SpringBoot工程,通过maven的方式下载jar包,发现jar包死活下载不下来,进到maven本地仓库jar包的版本文件中发现里面只有一个”.lastUpdated”文件,文件里面有报错信息“PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target”。

    使用命令解决jar包下载问题

    一开始以为是自己本地的maven环境出了问题,难道是以前配置的阿里云的maven仓库镜像地址失效了吗,于是上网查了下阿里云的maven镜像仓库的地址有没有变化,但是没查到什么结果,于是把settings.xml文件中的maven仓库镜像地址改了下,添加了一些别的镜像地址,但是重新导入jar包还是报一样的错误。
    就这样折腾了半天还是没有搞定,看来这个思路不对,于是又上网查了下lastUpdated文件里的报错信息,发现这个错误好像是因为JDK证书认证导致的,但是很奇怪,之前用maven的时候都是好好地,没报这个错误,怎么会突然需要证书认证呢?难道是因为前段时间升级了一下JDK导致的吗,不太清楚,回头再查下这个问题。
    先按照网上的解决方法一“忽略SSL证书检查”来试试,在cmd窗口中直接使用maven命令来下载之前一直下载不下来的jar包,需要在maven命令后加入参数
    ‘-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true’,完整命令如下:
    mvn dependency:get -DremoteRepositories=http://maven.aliyun.com/nexus/content/groups/public/ -DgroupId=junit -DartifactId=junit -Dversion=4.8.2 -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true
    这样试了以后发现确实可以下载jar包了,看来果然是SSL证书认证的问题了,但是这样下载jar包也不是个办法呀,一个pom文件那么多依赖包,总不能一个一个去下载,要累死的呀。

    在IDEA中解决jar包下载问题

    基于上面的经验我想着如果能把这个命令配置到IDEA里面那是不是也可以避免SSL的证书认证问题,可以在IDEA里面正常使用maven了。于是乎就在IDEA的maven配置项中找了找,找到了两个地方,一个是Maven——Importing——VM options for importer,另一个是Maven——Runner——VM Options,但是把命令
    ‘-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true’填了进去应用以后并没有生效,jar包还是下载不下来,难道是没找对地方吗,但是又找了半天,也没有发现其它可以配置命令的地方了,这真是没有办法了啊。



    但是咱不能放弃呀,于是又在网上苦苦查询资料,最后终于不负功夫,在网上找到了一篇文章(https://blog.csdn.net/qq157538651/article/details/95811622),里面有个正确的解决方法,就是在Maven——Runner——VM Options里配置命令,不过命令不是上面那个,应该是
    ‘-Dmaven.multiModuleProjectDirectory=$MAVEN_HOME -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true’,配置进去以后试了下,果然成功了,jar包终于可以正常下载了,真是不容易呀。

    解决下载的jar包没有被maven工程引用的问题

    本以为问题就此已经解决了,可以顺利把工程运行起来了,but,怎么代码还是提示我找不到类呢,还是找不到jar包?但是在本地仓库里明明都已经有这些jar包了呀,这又是怎么回事呢,找了半天还是没找到原因,看来还是自己对IDEA中maven jar包的管理使用不够了解呀。
    最后还是和其它正常的maven工程做了对比,终于找到了问题所在,原来我的maven工程的External Libraries是空的,感情是我辛辛苦苦下载下来的jar包没有引用到工程里面啊,但是之前的maven工程在下载完jar包以后External Libraries里面就会自动引用pom文件里引用的jar包了呀,在这里怎么就是空的呢?


    最后在网上找到了一篇文章(https://www.cnblogs.com/Grace-is-enough/p/10795180.html),里面说的是这好像是maven的一个bug,jar包没有引用成功,于是按照人家的操作步骤试了下:
    1. 打开IDEA侧边栏Maven Project——life cycle——clean
    2. life cycle——install
    3. 最后同样是在Maven Project侧边栏中,右键项目名称——reimport。
      操作完成以后就可以成功的将maven仓库的jar包引用到了IDEA工程中,至此这个问题终于成功地得到了解决。

    相关文章

      网友评论

          本文标题:SpringBoot使用maven下载不了jar包的问题

          本文链接:https://www.haomeiwen.com/subject/tudlrhtx.html