一、背景
新做了一個的需求,需要在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 搜索完
參考自:https://blog.csdn.net/li19236/article/details/97157324