错误截图:
仓库明明有jar包:
搞了一天,各种update project 和maven install还是不行,最后百度解决问题,之前用的是eclipse 版本 2018-12 版本,最近项目需要,换笔记本用mars2火星eclipse,方案如下:(红色文字,最终解决了问题)
maven报错,提示Missing artifact...jar文件 ,其实这些jar包在本地.m2/repository是有的。
maven中的本地仓库的index索引没有更新导致,项目使用maven管理jar包,很容易因为各种原因(网速慢、断网)导致jar包下载不下来,出现很多.lastUpdated文件。
解决方案:
首先尝试
工程右键--Maven--Update Project ,一定要选择离线状态一定要选择Offline
如果不行,按下面步骤:
1 ,删除.lastUpdated文件
开始--运行--cmd ,通过命令行进入D:.m2 epository
粘贴:for /r %i in (*.lastUpdated) do del %i
回车,删除所有的
如果解决不了,可删掉所有_maven.repositories,remoute.repositories文件
2,在eclipse中打开菜单 window-> show view –> other –> Maven -> maven repositories
打开之后,选择local repositories –> local repository ,右击,选择Build index.
3,工程右键--Maven--Update Project ,一定要选择离线状态一定要选择Offline
总结:
最后还是通过update project解决问题,不过要勾选上offline,这个单词字面意思是离线,未在线的,也就是有本地仓库有jar包的情况下,勾选后update操作不会从maven远程仓库去查找要更新的jar包,而是从maven本地仓库查找pom.xml中配置的jar包以更新到项目。
后记:
最近在整理公司的一些较老的项目时,再次发现这个问题。又总结了两点,maven项目如果java类报错,说缺少东西,即使你本地仓库有jar包,也要在pom文件中引入相应的依赖,才算加入到项目中。
另外一些老的项目,特别是一些父项目,子项目,有互相依赖关系的项目,如果报的错误,说jar包缺少很多。接谁的项目跟谁要jar包,一个文件夹的要直接,另外本地仓库中尾椎格式为pom的文件是不能删的,以前我以为可以,后来出了问题,还是别删。