在平时开发中我们经常会遇见这样的问题:明明本地有需要的依赖包,但是maven还是会从远程仓库拉取,如果远程仓库有需要的包还好,如果没有,或者无网络环境下没法访问远程仓库,那就直接报错,走不下去了。其实这很好处理的:
原因:在本地仓库的每个依赖包都存在这样的文件:_remote.repositories
_remote.repositories中记录了依赖的来源,记录了settings.xml中的id,如果settings.xml中的id发生了变化,就需要从远程仓库重新获取依赖。
解决方法一
直接删除_remote.repositories文件,单个删除或者全部删除都可以。
解决方法二
复制一份本地的repository仓库,然后修改settings.xml的远程仓库地址为复制后的本地仓库地址,maven就会把复制后的本地仓库当做远程仓库。
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>file://D:/java/maven/Repository/</url>
</mirror>
我这里是D盘下的repository,你们需要根据自己的路径进行选择! 改完再就好了,一劳永逸。