maven在切换settings.xml或者修改仓库后,在项目运行或构建时会报错
问题:本地仓库明明有相关依赖jar,为什么就是无法引入相关依赖?
报错如下:Failure to find XXX.jar in http://XXXXXX was cached in the local repository, resolution will not be reattempted until the update interval of nexus has elapsed or updates are forced -> [Help 1]
解决方案一
切换目录到报错jar包下,删除对应目录下的_remote.repositories文件
_remote.repositories文件是什么?
标示该jar资源的来源即来自于哪个仓库,如果jar包目录下有这个_remote.repositories,那就会在访问本地的同时,必须确保远程上有才行(这里的远程是settings.xml文件中配置的镜像或远程仓库),否则就会报错
每一个jar包路径下的_remote.repositories文件都会同setting.xml中设置的仓库地址id进行判断,如果没有匹配,会自动更新该jar包的相关文件,而此时要是远程没有该jar则报错(问题产生的原因)
注:如果使用公司的内网仓库,_remote.repositories文件变为_maven.repositories。
知道该文件的作用后,去私库验证,果然没有相关jar,为了避免其他人报同样的错最后还是将jar上传到了私库(这也是一个解决方案)!!!
解决方案二
直接删除_remote.repositories文件,重新更新依赖