如何处理maven仓库中后缀LastUpdated文件
一、背景
新做了一个的需求,需要在SpringBoot项目中引入了多个依赖,然后就感觉idea下载依赖包的时间很漫长,然后我就网上找了解决办法――使用国内的阿里云镜像,后来呢,就出现了这个问题。删除该文件也未曾生效,依然会重新生成。
二、产生的原因
原来每次在更新maven项目的时候,每一个jar包路径下的_remote.repositories文件都会同setting.xml中设置的仓库地址id进行判断,如果没有匹配,会自动更新该jar包的相关文件,如果未联网则会出现jar无法发现的错误,导致即使jar存在,maven项目也无法使用该jar的情况。如果使用公司的内网仓库,_remote.repositories文件变为_maven.repositories。Maven在下载仓库中找不到相应资源时,会生成一个.lastUpdated为后缀的文件。如果这个.lastUpdated文件存在,那么即使换一个有资源的仓库后,Maven依然不会去下载新资源。
三、解决办法
项目统一使用一个远程仓库的地址,阿里云或者其他公网镜像。修改方法:maven安装包――>conf文件夹――>setting.xml文件――>mirror节点
1、办法一:把本地仓库里的依赖包全清空,然后让项目重新下载所有依赖――一次性解决,可靠;
2、办法二:找到报错的依赖包的位置,删除LastUpdated后缀的文件,让idea单独下载――如果有多个报错的依赖包,需要操作多次;
3、办法三:使用脚本,一次性清除所有的LastUpdated后缀的文件。
# windows脚本
@echo off
rem create by NettQun
rem 这里写你的仓库路径
set REPOSITORY_PATH=D:\Java\maven-repository\maven-aliyun\repository
rem 正在搜索...
for /f "delims=" %%i in ('dir /b /s "%REPOSITORY_PATH%\*lastUpdated*"') do (
echo %%i
del /s /q "%%i"
)
rem 搜索完毕
pause
# linux脚本 # 这里写你的仓库路径 REPOSITORY_PATH=~/Documents/tools/repository echo 正在搜索... find $REPOSITORY_PATH -name "*lastUpdated*" | xargs rm -fr echo 搜索完


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




