构建项目时Maven本地仓库无效的解决方法

Maven本地仓库更新apache.logging插件后,构建Java项目时遇到如下错误:

[错误] Non-resolvable import POM: Could not find artifact org.apache.logging.log4j:log4j-bom:pom:2.17.2 in nexus ...

明明本地存在相应的jar包,偏偏要去远程下载,关键还下载失败,说来其实并不奇怪,因为在插件目录中存在以下文件:

  • *.lastUpdated
  • _remote.repositories

在构建项目时,_remote.repositories会和settings.xml文件中配置的仓库地址进行比较,如果不匹配则会更新jar包及相关文件,并生成*.lastUpdated,即:_remote.repositories文件的作用是修改maven配置settings.xml后即使本地仓库已经缓存jar/pom也依然会去远程仓库获取。

删除缓存文件

遇到该问题,解决方法是删除*.lastUpdated和_remote.repositories文件,进入maven仓库目录,然后执行删除命令。

Linux

# 进入指定的目录后执行以下命令
find . -name _remote.repositories | xargs rm -f
find . -name "*.lastUpdated" -exec grep -q "Could not transfer" {} \; -print -exec rm {} \;
# 或通通删除
find . -name *.lastUpdated | xargs rm -f

Windows

# 进入指定的目录后执行以下命令
for /r %i in (*.lastUpdated) do del %i
for /r %i in (_remote.repositories) do del %i

此外,如果不删除文件,也可以修改_remote.repositories文件中远程仓库的地址,不推荐,因为太累了。

原创文章禁止转载:技术学堂 » 构建项目时Maven本地仓库无效的解决方法

精彩评论

8+5=

感谢您的支持与鼓励

支付宝扫一扫打赏

微信扫一扫打赏