Maven 依赖下载失败的原因及解决方案

本贴最后更新于 2247 天前,其中的信息可能已经事过境迁

Maven 依赖下载失败的原因,通过我自己在项目中的实践和摸索,总结出来主要有两点:使用的 Maven 仓库镜像地址在国外被墙、依赖本身存放在 Maven 仓库以外的地方。

原因

使用的 Maven 仓库镜像地址在国外被墙

第一种原因相信大家最常碰到,百度或者谷歌搜到的问题也大都是这个问题,解决办法也很简单,换用一个国内的镜像地址即可,这里不做多说。

依赖本身存放在 Maven 仓库以外的地方

第二种原因相信大家碰到的几率就比较少了,因为很少有发布的开源项目选择了 Maven 以外的仓库(其实也不少,但是大家用到的应该不多),我会在下面的解决方案中结合具体的例子来叙述。

解决方案

第一种

网上搜到的最简单粗暴的办法就是换用阿里云的 Maven 仓库,但各位是否思考过一个问题,如果阿里云的 Maven 仓库也没有这个依赖怎么办?

所以我们可以使用阿里云的 Maven 仓库作为首选地址,再添加一个备用的地址,如:

我们可以在本地 maven 的配置文件 setting.xml 中做如下配置:

<mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>central</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
<mirror>
    <id>spring-libs-milestone</id>
    <mirrorOf>central</mirrorOf>
    <name>Spring Milestones</name>
    <url>http://repo.spring.io/libs-milestone</url>
</mirror>

基本上 90% 以上的 Maven 依赖下载失败都能够解决。

第二种

考虑到大部分同学可能没有碰到过这种情况,所以我觉一个栗子(虽然我不喜欢吃栗子):

比如 Ring core 这个项目 Github 开源项目的地址为: https://github.com/ring-clojure/ring](https://github.com/ring-clojure/ring)

大家在 Maven 的中央仓库站点搜索这个项目,很容易就能够找到它:

1.pic_hd.jpg

但是如果直接去引用,那么很抱歉,Maven 会告诉你下载失败。

为什么呢?

因为它的 jar 包压根就没有放在 Maven 仓库上,而是放在了一个叫做 Clojars 的地方。

2.pic.jpg

解决办法很简单,我们遇到这样的依赖的时候,只需要在项目的 pom 文件中做如下配置即可:

<repositories>
  <repository>
	<id>clojars</id>
	<url>http://clojars.org/repo/</url>
  </repository>
</repositories>

同样的道理,如果项目放在了其他的地方,我们可以根据它的地址,再去做相应的配置即可完成该依赖的下载。

结尾

如果大家觉得我的博文对各位有帮助,欢迎关注我的 Github: liumapp

  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1083 引用 • 3461 回帖 • 286 关注
  • Maven

    Maven 是基于项目对象模型(POM)、通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。

    185 引用 • 318 回帖 • 345 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • someone

    厉害了,大神 完美解决啦我的问题