我是阿福,公眾號「阿福聊編程」作者,一個在后端技術路上摸盤滾打的程序員,在進階的路上,共勉!
文章已收錄在 JavaSharing 中,包含Java技術文章,面試指南,資源分享。
明顯的下載失敗
具體表現
在Maven倉庫中如果看到jar包或其他相關文件是以“lastUpdated”作為擴展名結尾,說明jar包或其他相關文件下載失敗。

原因分析
Maven在下載jar包的過程中,文件會以lastUpdated作為臨時擴展名。文件下載完成后,Maven會將“lastUpdated”擴展名去掉。
如果下載一半連不上網,導致下載失敗,那么Maven就放任文件保持臨時擴展名“lastUpdated”不管。
當我們下一次強制要求Maven重新下載jar包時候,Maven看到這個文件以“lastUpdated”結尾,那么Maven就會無視“下載”命令。
所以對於以“lastUpdated”為擴展名的文件需要手動刪除,然后再讓Maven重新下載。
解決方案
基本做法:刪除以“lastUpdated”結尾的文件,重新下載。
問題:Maven倉庫使用一段時間后,以“lastUpdated”結尾的文件會非常多,手動刪除不現實。
正確做法:借助clearLastUpdated.bat
腳本文件批量處理。
clearLastUpdated.bat文件設置
第一步:將clearLastUpdated.bat文件放入Maven倉庫根目錄,例如:D:\java\repository
第二步:使用文本編輯器打開,修改下面兩項,
CLEAR_PATH設置為Maven倉庫所在盤符
CLEAR_DIR設置為Maven倉庫的根目錄,一定要使用非中文沒有空格的目錄
SET CLEAR_PATH=D:
SET CLEAR_DIR=D:\java\repository
編輯完成后雙擊,clearLastUpdated.bat文件,界面輸入
- 輸入 1 清理*.lastUpdated *
- 輸入 2 查看*.lastUpdated *
- 輸入 3 退 出 *

下載完成但內部損壞
具體表現
表面上看起來,jar包並不是以“lastUpdated”結尾,表示已經下載完成。但是,程序編譯或運行的時候報錯。比如:找不到xxx類錯誤,而且通常這個類不是我們編寫的;又或者找不到xxx方法,而且通常這個方法不是我們編寫的。
其他表現往往還體現為一些莫名其妙的錯誤,特別是往往和我們編寫的代碼沒有直接關系。
原因分析
- 到Maven倉庫中找到疑似下載失敗的jar包
- 使用文件校驗工具文件校驗
- 打開工具,將要驗證的jar包拖拽進工具界面,比較SHA1值,u 一致:確定jar包下載成功,內部正確沒問題,u 不一致:確定jar包內部損壞。
文件校驗工具
第一步:我們打開

第二步:把指定的拖到文件校驗工具當中

拖綴后

然后打開.sha1結尾的文件,例如:aopalliance-1.0.jar.sha1,然后比較兩個SHA1碼是否相等即可

如果不一致, 根據依賴信息定位jar包在倉庫里位置,刪除jar,再次重寫刷新pom.xml文件,就可以了。
軟件下載:
clearLastUpdated.bat和文件校驗工具 ,提取碼:1da4
