maven常用配置和说明
- 本地仓库目录配置
<localRepository>C:\Users\username\.m2\repository</localRepository\\>
指定本地repository目录,默认:用户目录下的.m2/repository,windows10 => C:\Users\username\.m2\repository
- 远程仓库设置
<profiles>
<profile>
<!-- <profile>的id,全局唯一 -->
<id>aliyun</id>
<!-- 远程仓库列表 -->
<repositories>
<!-- 远程仓库信息 -->
<repository>
<!-- 仓库 id,列表下同一类型仓库唯一 -->
<id>aliyun</id>
<name>nexus public group</name>
<!-- 远程仓库地址,可以是任何有效的maven仓库地址(如私服地址、中央仓库镜像地址) -->
<url>https://maven.aliyun.com/repository/public</url>
<!-- 版本策略说名 -->
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<!-- 远程插件仓库列表,下面子配置和<repository>一致,说明同上 -->
<pluginRepositories>
<pluginRepository>
<id>aliyun</id>
<name>nexus public group</name>
<url>https://maven.aliyun.com/repository/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<!-- 需要激活的配置 -->
<activeProfiles>
<!-- 对应<profile>的id -->
<activeProfile>aliyun</activeProfile>
</activeProfiles>
maven配置文件通过
<profiles>
来配置远程仓库的信息,和在pom.xml文件中配置远程仓库信息稍有不同。
- 服务器安全认证
<servers>
<server>
<id>nexus</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
如果你搭建了自己的私服,或者指定的其它远程仓库需要安全认证,就应该在这里配置认证信息,标签
<id>
对应的<repository>
的<id>
- 配置镜像源列表
<mirrors>
<!-- 可以有多个<mirror>,如果重复或冲突优先选用考前的那一个配置作为镜像源信息 -->
<mirror>
<!-- mirror id,列表内唯一 -->
<id>nexus</id>
<!-- 指定需要使用该镜像源的远程仓库(<profile>的<id>),多个用逗号隔开,* 表是匹配所有,central 表示中央仓库 -->
<mirrorOf>nexus, central</mirrorOf>
<name>mirrors</name>
<url>https://mirrors.example.com/repo/public</url>
</mirror>
</mirrors>
镜像源的作用会在下面的
maven依赖加载过程
中说到
注:这里只提到了部分maven配置文件的内容及说明,详细配置及说明请到maven默认的全局配置文件--maven安装目录(解压目录)
下的conf/setting.xml
中查看
maven依赖加载过程
- 首先maven会查看本地仓库依赖是否存在,如果存在则返回
- 本地仓库没有找到依赖,就会去远程仓库查找依赖
- 由于远程仓库的配置可以在多个地方设置,各个地方的配置优先级为:pom.xml > user目录下的setting.xml > maven安装目录下的conf/setting.xml > maven默认的远程仓库(中央仓库)
- 如果远程仓库中依赖存在,会检查用户是否配置了mirror信息。没有,则直接下载;有,会使用仓库id对应的mirror的地址来代理下载,这也就是镜像源的意义--在远程仓库中确认索引存在,然后使用镜像源地址下载(一般配置的镜像源都会比原来的远程仓库快,不然该配置就没有意义)
maven镜像源说明
maven镜像源其实就是标准的maven远程仓库,使用其目的在于加速依赖的下载。镜像源地址可以是你的私服仓库地址,也可以是任何提供maven仓库服务的地址。