maven仓库分为远程仓库、本地仓库两大类,其中远程仓库分为中央仓库、私服、其他公共仓库。
-
本地仓库,顾名思义就是本地存放构件的地方。在maven第一次构建时会自动创建本地仓库地址,默认为:
C:\Users\${userName}\.m2\repository
目录 -
远程仓库。远程存放构件的服务器地址。中央仓库就是一个maven默认的远程仓库地址,在未指定仓库的时候,所有组件都是默认从中央仓库下载。因为中央仓库的访问比较慢,所以我们会采用本地搭建私服、或者制定中央仓库的镜像地址。
典型镜像的配置如下:
<mirrors>
<mirror>
<id>nexus</id>
<name>omniprime</name>
<!-- 映射的中央仓库地址,支持正则表达式 -->
<mirrorOf>*</mirrorOf>
<!-- 中央仓库镜像地址,可以是本地私服、也可以是公网私服,比如阿里云等开发的maven私服 -->
<url>http://url/repository/maven-public/</url>
</mirror>
</mirrors>
- 私服,从中央仓库下载构件对于网络的依赖太大,所以我们经常会在公司内网搭建maven私服。私服的配置可以做全局配置,也可以在项目的pom文件中设置,建议做成全局配置。
典型的全局配置如下(全局配置文件默认目录:${maven_home}/config/settings.xml
)
<!-- 权限配置,这部分用来保证maven私服的访问权限 -->
<servers>
<server>
<id>nexus</id>
<username>userName</username>
<password>password</password>
</server>
</servers>
<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<!-- 请和权限配置的ID保持一致 -->
<id>nexus</id>
<name>nexus</name>
<url>http://url/repository/maven-public/</url>
<!-- 是否启用release版本 -->
<releases>
<enabled>true</enabled>
</releases>
<!-- 是否启用snapshot版本,这地方如果未配置就会出现maven私服有jar包,无法引用的问题 -->
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>