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

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

文章已收錄在 JavaSharing 中,包含Java技術文章,面試指南,資源分享。java

明顯的下載失敗

具體表現

在Maven倉庫中若是看到jar包或其餘相關文件是以「lastUpdated」做爲擴展名結尾,說明jar包或其餘相關文件下載失敗。git

緣由分析

Maven在下載jar包的過程當中,文件會以lastUpdated做爲臨時擴展名。文件下載完成後,Maven會將「lastUpdated」擴展名去掉。程序員

若是下載一半連不上網,致使下載失敗,那麼Maven就聽任文件保持臨時擴展名「lastUpdated」無論。github

當咱們下一次強制要求Maven從新下載jar包時候,Maven看到這個文件以「lastUpdated」結尾,那麼Maven就會無視「下載」命令。面試

因此對於以「lastUpdated」爲擴展名的文件須要手動刪除,而後再讓Maven從新下載。編程

解決方案

基本作法:刪除以「lastUpdated」結尾的文件,從新下載。後端

問題:Maven倉庫使用一段時間後,以「lastUpdated」結尾的文件會很是多,手動刪除不現實。編輯器

正確作法:藉助clearLastUpdated.bat腳本文件批量處理。工具

clearLastUpdated.bat文件設置

第一步:將clearLastUpdated.bat文件放入Maven倉庫根目錄,例如:D:javarepositoryspa

第二步:使用文本編輯器打開,修改下面兩項,

CLEAR_PATH設置爲Maven倉庫所在盤符

CLEAR_DIR設置爲Maven倉庫的根目錄,必定要使用非中文沒有空格的目錄

SET CLEAR_PATH=D:

SET CLEAR_DIR=D:javarepository

編輯完成後雙擊,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

相關文章
相關標籤/搜索