目录
1、本地仓库的配置
2、私服
3、远程仓库的配置
4、远程仓库认证
5、部署至远程仓库
6、快照版本
7、镜像
1、本地仓库的配置
Maven缺省的本地仓库路径为${user.home}/.m2/repository
自定义仓库路径:
<localRepository>D:\\repository</localRepository>Eclipse的配置
2、私服
3、远程仓库的配置
在pom.xml中添加远程仓库:
- project -> repositories -> repository
- 可以使用repository配置1个或者多个远程仓库。
- id必须是唯一的。
- id为central的仓库表示中央仓库。
- releases -> enabled true 表示支持发布版的jar下载
- snapshots -> enabled false 表示不支持快照版的jar下载
4、远程仓库认证
- 出于安全考虑,有些远程仓库是需要认证的(账号密码)
- 我们在settings.xml中配置认证信息
- id必须与仓库(repository)的ID一致
- username是用户名password是密码
5、部署至远程仓库
如果要使用mvn clean deploy发布到远程仓库则需要配置distributionManagement
- repository表示发布版的jar
- snapshotRepository表示快照版的jar
- 部署jar的时候,往往需要仓库认证(即第4章)releases和snapshots都要有
<servers> <server> <id>proj-releases</id> <username>admin</username> <password>xxx</password> </server> <server> <id>proj-snapshots</id> <username>admin</username> <password>xxx</password> </server> </servers>6、快照版本
带-SNAPSHOT的版本号被认定为快照版本
<repositories> <repository> <id>company-nexus-public</id> <name>Company Nexus Public</name> <url>http://127.0.0.1:8081/repository/maven-public/</url> <!-- Release包配置 --> <releases> <enabled>true</enabled> <updatePolicy>never</updatePolicy> </releases> <!-- SNAPSHOT包配置 --> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> </repository> </repositories>这样配置:
- 发布版下载过一次之后,就不再访问私服
- 快照版每次构建都会从私服拉取最新的jar
如果私服 Nexus 是分开两个仓库(maven-releases、maven-snapshots,不使用 public 聚合仓),就拆成两个 repository:
<repositories> <!-- release仓库,只拉正式版 --> <repository> <id>nexus-releases</id> <name>Nexus Releases</name> <url>http://127.0.0.1:8081/repository/maven-releases/</url> <releases> <enabled>true</enabled> <updatePolicy>never</updatePolicy> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> <!-- snapshot仓库,只拉快照 --> <repository> <id>nexus-snapshots</id> <name>Nexus Snapshots</name> <url>http://127.0.0.1:8081/repository/maven-snapshots/</url> <releases> <enabled>false</enabled> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> </repository> </repositories>7、镜像
配置中央仓库的镜像(central代表中央仓库),所有访问中央仓库的请求都转发给这个镜像
mirrorOf的值:
- *:匹配所有远程仓库
- external:* 匹配所有不是本机的远程仓库
- repo1,repo2:匹配仓库repo1和repo2
- *,!repo1:匹配所有远程仓库,repo1除外