Maven:jar 下载相关的问题

时间:2021-04-13 19:36:50

在使用Maven下载jar包时,会遇到一些问题,如何解决他们呢?

1、仓库里有jar 包,更新Maven时报仓库里找不到jar包的错误

这个问题,时常在版本有大的变动时出现。(例如:新增加了一些feature,相关人员引入了一些常见的jar)这些情况下,可能会因为某种原因下载不到jar包的问题。

如何解决呢?

遇到这个问题时,开发组内的成员,通常都会把maven本地库清理后,重新build。这可以说是最简单最粗暴的方案。

这个我遇到这个问题时,通常是根据错误消息,在本地库中找到相关jar的目录,删除 .lastupdate文件后,重新构建。

原因是:maven在下载jar包是,发现有这个文件,就认为远程仓库里是没有这个jar包的,所以就不会再去下载了。

2、maven 下载jar速度慢

从 maven  默认的仓库下载jar 包,速度相当的慢,一个超过5MB的jar包,如果能下载成功,至少得1个小时吧,但是通常是下载不成功的,反复下载也不行的,每一次重来都是要重新下载的,不支持断点续传。

遇到这个情况,我通常会有两个解决办法

1)如果是只下载个别jar文件

可以用迅雷下载,下载后,直接放到仓库里就行了。下载地址,在执行mvn的命令行上有。

2)使用mirror

找一个国内的比较齐全的镜像,配置在默认的配置文件里 settings.xml。

这是一个阿里的镜像:

    <mirror>
        <id>central</id>   <!-- 建议id设置为central -->
        <mirrorOf>central</mirrorOf>
        <name>aliyun maven</name>
        <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
    </mirror>

如果你配置的镜像比较多的话,通过id进行区分的。扫描镜像是按照配置的顺序来的。

另外比较重要的一点时,修改镜像后(顺序变了,删除、或者增加镜像),之前下载的jar可能会重新下载的。要避免重新下载,只需<id>还配置为修改之前的id,就可以了。

例如我之前是没有配置镜像的,只有一些jar包下载不下来,配置了这个镜像后,将id改为 默认的id,那么就可以避免之前已下载的jar再次下载了。