1. 程式人生 > >【Error】Maven Dependency 下載失敗問題

【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私服之間網路傳輸問題)

  1. 開啟本地倉庫所在目錄, 通過win資料夾的搜尋功能,查詢 *.lastUpdated ,然後將找到的檔案全部刪除

  2. 重新 Maven Update Project,

    1. 若在eclipse中操作時勾選上 Force Update of Snapshots / Releases

    2. 若在命令列操作時增加 -U 引數

一般情況下上面方法即可解決問題. 若問題依然存在,請確認下主機與Maven私服之間網路是否暢通.可以通過在瀏覽器中開啟私服地址確認.

若本機與私服之前網路暢通,那這個問題可能是由於私服與中央倉庫(或者其他第三方倉庫)之間下載依賴時網路故障導致的.

2.2 解決方法:(針對私服與中央倉庫或第三方倉庫之間網路傳輸問題)

  1. 使用管理員登陸私服頁面(Sonatype Nexus)

  2. 在倉庫的瀏覽頁面找到下載失敗的包, 右鍵選單 "Update Index", 右鍵選單 "Expire Cache" 

  3. 按照PC與私服之間網路問題的解決步驟處理一遍

3.相關連結