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也不会按照次序依次选择的
新手经验,不恰当的多多交流