有时候,我们明明没做其它什么配置,只是升级了某些依赖软件的版本,但是当我们下载依赖的时候,会出现Cannot resolve xxx的情况,即本地没有找到对应版本的依赖包。
常规解决办法如下:
1)检查idea设置里面的maven设置,查看相关maven的配置路径是否正确。
2)清除缓存并重启idea
很多时候重启可以解决一大部分问题
3)刷新pom文件
我遇到的问题用上面方案都不能解决,我的问题是:
pom文件升级了某个开源软件,但是在reload项目的时候会报Cannot resolve 该软件,然后我本地查看maven仓库,发现确实是没有该新版本的软件包,只有老版本软件包的路径,当时第一反应是不是我的settings.xml有问题,然后询问同事拿了他们的settings.xml文件,结果还是无济于事。
又捣鼓了好久,比如将依赖删除之后再加上,最后再reload项目也是不行。
解决办法:
最终实在想不过,打开了我平时写测试代码的工程,在该工程里面加入有问题的这个依赖,最后reload了一下,发现就没有问题了,然后再去本地maven仓库看了一下,确实有了新版本软件包的路径。
然后回到原来的项目工程,再重新reload了一下也是没有问题了。
所以就有点莫名其妙的感觉,居然会出现本项目不能下载,另一个项目能下载依赖的情况。
原因分析:
然后我仔细想了想,觉得那应该是我本项目做了其它设置,最后通过查阅资料得知,我居然将本项目maven的脱机模式打开了,这个按钮在idea右边的maven里面,在m的右边(不方便放图),叫做Toggle Offline Mode。
脱机模式:只能加载本地已有的依赖,如果本地仓库没有这个版本的依赖,那就自然会出现Cannot resolve xxx的现象。解决办法就是取消这个脱机模式,也就是点灭这个按钮。
至于为什么我当初会点亮这个按钮(打开脱机模式),也是因为我之前看了某篇文章,说是这样会缩短我们启动idea的时间,因为我们在启动idea的时候会去加载当前项目的配置,会很费时,所以当处于脱机模式的时候,在启动idea的时候就会省去一些不必要的配置加载,会提高效率。
事实证明,这个模式并没有节约我的时间...我保证以后不偷懒了。。。
最后附加一个大家经常遇到的证书问题,也就是我们需要添加忽略SSL检查的配置。需要在两个地方添加配置,一是在Maven的VM Options中添加如下配置:
-Dmaven.wagon.http.ssl.insecure= true -Dmaven.wagon.http.ssl.allowall=true
二是在Runner的VM Options中添加如下配置:
-Dmaven.wagon.http.ssl.insecure= true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.variety.dates=true
来源地址:https://blog.csdn.net/NoviceZ/article/details/127922495