1. 程式人生 > >Failed to read artifact descriptor--maven問題總結

Failed to read artifact descriptor--maven問題總結

在開發的過程中,作為新手,經常遇到Maven下載依賴的時候,"Failed to read artifact descriptor for xxx:jar"的錯誤

對於這種非業務相關的問題,耽誤時間非常不效率,看到網站很多博文,思路大概是這樣的

思路1: 刪除倉庫內對應依賴的資料夾,右單擊專案,Maven4MyEclipse->Update Project,在彈出的對話方塊中選擇“Force Update Of Snapshots/Releases",然後點選“OK”。這樣就會重新下載這個jar包。

思路2: 將依賴下載至本地,執行mvn install命令

如果在沒有搞清楚問題的時候就魯莽的進行上面的操作,可能不一定能很及時的解決問題.

首先我們要搞清楚"Failed to read artifact descriptor for xxx:jar"的錯誤的根源.

  我在倉庫對應依賴的資料夾下檢查lastupdate檔案的時候,發現最後一行是connect timed out(連線超時)

網路問題導致的下載失敗,無論我們如何去按照上面的兩個思路去處理,都很難解決

檢查我的setting.xml,我的映象用的是大家比較推薦的兩個:

<mirror>
  <id>CN</id>
  <name>OSChina Central</name>
  <url>http://maven.oschina.net/content/groups/public/</url>
  <mirrorOf>central</mirrorOf>
</mirror>
<mirror>
  <id>nexus-osc-thirdparty</id>
  <mirrorOf>thirdparty</mirrorOf>
  <name>Nexus osc thirdparty</name>
  <url>http://maven.oschina.net/content/repositories/thirdparty/</url>
</mirror>

但是,有時候,網路環境這東西你懂的,換個其他的映象多試驗一下,順利解決

<mirror>
  <id>repo2</id>
  <mirrorOf>central</mirrorOf>
  <name>Human Readable Name for this Mirror.</name>
  <url>http://repo2.maven.org/maven2/</url>
</mirror>

將映象放到其他映象的前面!

按照我的使用經驗,次序靠前的映象會被使用,你放的再多,maven也不會按照次序依次選擇的

新手經驗,不恰當的多多交流