Maven Jar包下載失敗及解決方案


我是阿福,公眾號「阿福聊編程」作者,一個在后端技術路上摸盤滾打的程序員,在進階的路上,共勉!

文章已收錄在 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM