springboot 使用maven拉取依赖 .lastUpdated

本文介绍了在SpringBoot项目中遇到的.m2仓库中jar包以.lastUpdated结尾的问题,详细讲述了通过命令行和IDEA配置解决SSL证书认证问题,以及如何处理下载的jar包未被Maven工程正确引用的故障,包括在IDEA中执行clean和install操作以及reimport项目。

年后做项目遇到这个超级坑的问题,springboot 项目拉取依赖全是..lastUpdated结尾。setting中的镜像换了几次都不行,最后先用人家的私有云来用了下但是速度太慢了。今天在网上找了很久来解决这个问题。

 

 

使用命令解决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.youkuaiyun.com/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工程中,至此这个问题终于成功地得到了解决。


 

Maven 是一种基于项目管理工具,它通过定义项目的依赖、构建流程等信息,自动化地完成项目的构建、测试、部署等工作。Maven 远程仓库的过程涉及到几个关键步骤: ### 1. 配置Maven 首先,在 `pom.xml` 文件中配置 Maven 的仓库。你需要指定 `repositories` 标签,列出需要从哪些远程仓库获依赖。 ```xml <project> ... <repositories> <!-- 添加阿里云仓库示例 --> <repository> <id>alimaven</id> <name>aliyun Repository</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <releases><enabled>true</enabled></releases> <snapshots><enabled>false</enabled></snapshots> </repository> </repositories> ... </project> ``` 在这个例子中,我们添加了阿里云的公共仓库作为远程仓库。 ### 2. 构建项目 运行 Maven 完成依赖下载。使用命令行工具,执行以下命令: ```bash mvn clean install ``` 这将启动 Maven 进程,其中包含清理现有的生成文件、打包源代码并安装到本地仓库等操作。过程中 Maven 将自动查找并在配置的远程仓库中必要的依赖包。 ### 3. 使用依赖 一旦所有依赖都成功下载到本地 Maven 仓库,你就可以在其他项目中直接引用这些依赖了。 #### 相关问题: 1. **如何确定需要使用哪个版本的库?** 当选择依赖版本时,你可以查看各个版本的发布说明和兼容性报告。通常,建议使用最新的稳定版本来避免已知错误。如果特定库有明显的更新,可以尝试升级,同时验证是否引入了新特性或修复了问题。 2. **Maven 仓库的缓存机制是什么?** Maven 默认会在本地仓库中存储从远程仓库下载的所有依赖项,以供后续项目使用。这样,如果再次构建相同的项目,就不需要重复下载依赖了,极大地节省了时间。 3. **如何处理远程仓库超时或网络不稳定的问题?** 如果遇到远程仓库访问失败的情况,可以检查网络连接和防火墙设置,并尝试增加超时等待时间或者手动设置代理服务器。此外,考虑使用多个远程仓库作为备用,提高可用性和可靠性。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值