当构建一个Maven项目时,首先检查pom.xml文件以确定依赖包的下载位置,执行顺序如下:
1、从本地资源库中查找并获得依赖包,如果没有,执行第2步。
2、从Maven默认中央仓库中查找并获得依赖包(http://repo1.maven.org/maven2/),如果没有,执行第3步。
3、如果在pom.xml中定义了自定义的远程仓库,那么也会在这里的仓库中进行查找并获得依赖包,如果都没有找到,那么Maven就会抛出异常。
默认中央仓库的地址:
maven替换中央仓库- 阿里云
在国内访问Maven仓库,连接速度太慢。下面是将中央仓库替换成阿里云的中央仓库的方法。
第一种,统一修改仓库地址
可以直接修改Mavenconf文件夹中的setting.xml文件,或者在.m2文件夹下建立一个setting·xml文件。
setting.xml里面有个mirrors节点,用来配置镜像URL。mirrors可以配置多个mirror,每个mirror有id,name,url,mirrorOf属性。
id是唯一标识一个mirror
name貌似没多大用,相当于描述
url是官方的库地址
mirrorOf代表了一个镜像的替代位置,例如central就表示代替官方的中央库。
mirror也不是按settings.xml中写的那样的顺序来查询的。所谓的第一个并不一定是最上面的那个。
当有id为B,A,C的顺序的mirror在mirrors节点中,maven会根据字母排序来指定第一个,所以不管怎么排列,一定会找到A这个mirror来进行查找,当A无法连接,出现意外的情况下,才会去B查询。
在setting·xml中添加如下代码:
......
alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
central
第二种,分别给每个项目配置不同的中央库
直接在项目的pom.xml中修改中央库的地址。如下:
alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
完整的pom:
4.0.0
com.xiaolyuh
spring-boot-student
0.0.1-SNAPSHOT
pom
spring-boot-student
org.springframework.boot
spring-boot-starter-parent
1.5.3.RELEASE
alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
UTF-8
UTF-8
1.8
org.springframework.boot
spring-boot-starter
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-maven-plugin
spring-boot-student-banner
补充:设置我们第三方jar包的下载地址为私服地址的方法(如果私服仓库不存在jar包就会从私服的代理镜像下载地址并保存到私服仓库)
如果你想讲jar包下载改为从私服下载也是修改这里,前提是先搭建好私服,然后从后台设置私服仓库的远程地址为阿里云的镜像地址即可:
(1)在私服的后台设置仓库的镜像地址(用于私服不存在时候从该地址下载)
(2)修改maven的settings.xml的配置文件:配置下载地址
nexus
internal nexus repository
*
http://localhost:8081/nexus/content/repositories/central/
(3)我们在eclipse也可以查看默认使用的下载地址:
(4)当我们引入一个不存在的jar包的时候会先下载到私服的仓库地址,然后下载到本地的仓库地址,如下:
如果maven项目下载不下来jar包先检查一下下载地址,eclipse中很好检查,用上面(3)就可以检查地址,如果实在不行,将私服地址注掉即可,就留下一个阿里云的中央仓库地址。