Pom文件依赖包仓库顺序
# 依赖库来源
POM依赖一个库
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
1
2
3
4
5
2
3
4
5
会从如下几个地方获取
本地仓库 、POM文件中指定的仓库地址、Setting.xml中profile指定的仓库地址、中央仓库地址
# 各种仓库
# 本地仓库:
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>D:\repositories\maven-repository</localRepository>
1
2
3
4
5
2
3
4
5
# pom.xml中定义的仓库: (可以配置多个)
<repositories>
<repository>
<id>huaweicloud</id>
<name>Public Repositories</name>
<url>https://repo.huaweicloud.com/repository/maven/</url>
</repository>
</repositories>
1
2
3
4
5
6
7
2
3
4
5
6
7
# setting.xml中定义的仓库: (可以配置多个)
<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>huaweicloud</id>
<name>Public Repositories</name>
<url>https://repo.huaweicloud.com/repository/maven/</url>
</repository>
</repositories>
</profiles>
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 中央仓库:
默认中央仓库:http://repo1.maven.org/maven2/
# 镜像(mirror): (配置多个只有第一个生效)
中央仓库central通常使用镜像mirror覆盖,如
<mirrors>
<mirror>
<id>huaweicloud</id>
<mirrorOf>*</mirrorOf>
<url>https://repo.huaweicloud.com/repository/maven/</url>
</mirror>
</mirrors>
1
2
3
4
5
6
7
2
3
4
5
6
7
mirrorOf 标签里面放置的是 repository 配置的 id,为了满足一些复杂的需求,Maven还支持更高级的镜像配置:
external:* = 不在本地仓库的文件才从该镜像获取
repo,repo1 = 远程仓库 repo 和 repo1 从该镜像获取
*,!repo1 = 所有远程仓库都从该镜像获取,除 repo1 远程仓库以外
* = 所用远程仓库都从该镜像获取
1
2
3
4
2
3
4
# 总结:
顺序 本地仓库 > setting.xml中定义仓库 > pom文件中定义仓库 > 中央仓库(会被mirror覆盖)
一旦某个仓库id(除本地仓库)定义了镜像(mirrors) 将以镜像为准,本身仓库URL将失去作用