【Error】Maven Dependency 下載失敗問題
前言
在使用Maven私服Sonatype Nexus的時候,經常會出現依賴包找不到的問題.
此時通過瀏覽器去私服頁面檢視,發現依賴包座標是存在的,對應的檔案(比如jar檔案).
或者私服上面也找不到檔案,但是引入的中央倉庫或者其他公服上面有檔案.
@Author duangr
@Website http://my.oschina.net/duangr/blog/182134
1.問題描述
在通過pom.xml中的依賴座標,從私服下載依賴包時,往往會遇到如下的類似問題:
The container 'Maven Dependencies' references non existing library 'E:\Maven\repo\org\apache\hadoop\hadoop-yarn-api\2.0.0-cdh4.5.0\hadoop-yarn-api-2.0.0-cdh4.5.0.jar'
2.解決方案
上面問題往往是在下載依賴過程中網路出現問題導致的.
此時我們本機已經開始下載依賴程式碼,但是下載失敗,本機倉庫中會在${MAVEN_repo}/${groupid}/${artifactid}/${version} 路徑下面生成 *.lastUpdated 的檔案.
*.lastUpdated實在可惡,下次再下載時由於它的存在Maven不會再去私服中下載
2.1 解決方法:(針對PC與Maven私服之間網路傳輸問題)
-
開啟本地倉庫所在目錄, 通過win資料夾的搜尋功能,查詢 *.lastUpdated ,然後將找到的檔案全部刪除
-
重新 Maven Update Project,
-
若在eclipse中操作時勾選上 Force Update of Snapshots / Releases
-
若在命令列操作時增加 -U 引數
一般情況下上面方法即可解決問題. 若問題依然存在,請確認下主機與Maven私服之間網路是否暢通.可以通過在瀏覽器中開啟私服地址確認.
若本機與私服之前網路暢通,那這個問題可能是由於私服與中央倉庫(或者其他第三方倉庫)之間下載依賴時網路故障導致的.
2.2 解決方法:(針對私服與中央倉庫或第三方倉庫之間網路傳輸問題)
-
使用管理員登陸私服頁面(Sonatype Nexus)
-
在倉庫的瀏覽頁面找到下載失敗的包, 右鍵選單 "Update Index", 右鍵選單 "Expire Cache"
-
按照PC與私服之間網路問題的解決步驟處理一遍