转载:https://blog.csdn.net/u011568312/article/details/52494560
在开发的过程中,作为新手,经常遇到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也不会按照次序依次选择的

新手经验,不恰当的多多交流