在开发的过程中,尤其是新手,我们经常遇到Maven下载依赖jar包的问题,也就是遇到“Failed to read artifact descriptor for xxx:jar”的错误。
对于这种非业务相关的问题,耽误时间非常不效率,而且网上的解决思路过于老套,而且还没什么用。
1)要么就是,删除仓库内对应依赖的文件夹,右单击项目,Maven4MyEclipse->Update Project,在弹出的对话框中选择“Force Update Of Snapshots/Releases",然后点击“OK”。这样就会重新下载这个jar包。
2)要么就是,将依赖下载至本地,执行mvn install命令,其实这些方法都不适用于eclipse+java的开发中,而且让人头疼。
其实,遇到“Failed to read artifact descriptor for xxx:jar”的报错,就是jar包下载失败而导致的,你可以到Maven的仓库中去查看(也就是.m2\repository那个路径下的)xxx-m2e-lastUpdated.properties文件,用记事本打开,里面描述的报错提示就是“connect timed out(连接超时)”:
那这个时候,赶紧去在eclipse指定的settings.xml文件添加mirror地址(经测试,http://repo2.maven.org/maven2/可用):
<mirror>
<id>repo2</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo2.maven.org/maven2/</url>
</mirror>
最后,再回到eclipse,右击你所需要下载jar包依赖的项目,选择“Update Project” -> 勾选"Force Update of Snapshots/Releases":
点击OK之后,就开始自动下载更新,报错的提示就没有了。
【附录】
maven仓库用过的人都知道,国内有多么的悲催。还好有比较好用的镜像可以使用,尽快记录下来。速度提升100倍。
在maven的settings.xml 文件里配置mirrors的子节点,添加如下mirror
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>