远程仓库声明
POM 中声明项目需要的远程仓库,补充默认中央仓库。
repositories 声明
基本结构
XML
<repositories>
<repository>
<id>company-repo</id>
<name>Company Repository</name>
<url>https://nexus.company.com/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
repository 元素说明
| 元素 | 说明 |
|---|---|
| id | 仓库唯一标识(必填) |
| name | 仓库名称 |
| url | 仓库地址(必填) |
| releases | 正式版是否启用 |
| snapshots | 快照版是否启用 |
releases/snapshots 配置
XML
<repository>
<id>snapshots-repo</id>
<url>https://repo.example.com/snapshots</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>daily</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
<releases>
<enabled>false</enabled>
</releases>
</repository>
配置项说明
| 元素 | 说明 |
|---|---|
| enabled | 是否启用 |
| updatePolicy | 更新检查频率 |
| checksumPolicy | 校验和策略 |
updatePolicy 值
| 值 | 说明 |
|---|---|
| always | 每次构建检查 |
| daily | 每日检查 |
| interval:X | 每 X 分钟检查 |
| never | 不检查 |
checksumPolicy 值
| 值 | 说明 |
|---|---|
| ignore | 忽略校验 |
| warn | 校验失败警告 |
| fail | 校验失败报错 |
pluginRepositories
插件仓库声明:
XML
<pluginRepositories>
<pluginRepository>
<id>company-plugin</id>
<url>https://nexus.company.com/repository/maven-public/</url>
</pluginRepository>
</pluginRepositories>
常用远程仓库
Spring 仓库
XML
<repository>
<id>spring-repo</id>
<url>https://repo.spring.io/release</url>
</repository>
Spring Milestone
XML
<repository>
<id>spring-milestone</id>
<url>https://repo.spring.io/milestone</url>
</repository>
JBoss 仓库
XML
<repository>
<id>jboss</id>
<url>https://repository.jboss.org/nexus/content/groups/public/</url>
</repository>
仓库认证配置
settings.xml 配置认证
XML
<settings>
<servers>
<server>
<id>company-repo</id> <!-- 与 repository id 对应 -->
<username>admin</username>
<password>password123</password>
</server>
</servers>
</settings>
认证元素说明
| 元素 | 说明 |
|---|---|
| id | 对应 repository 的 id |
| username | 用户名 |
| password | 密码 |
settings.xml 中配置仓库
XML
<settings>
<profiles>
<profile>
<id>extra-repos</id>
<repositories>
<repository>
<id>company-repo</id>
<url>https://nexus.company.com/repository/maven-public/</url>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>extra-repos</activeProfile>
</activeProfiles>
</settings>
仓库优先级
查找顺序
Bash
1. 本地仓库
2. settings.xml 中的镜像
3. settings.xml 中 profile 的仓库
4. pom.xml 中的仓库
5. 中央仓库(超级 POM)
同一构件多仓库
text
先找到的仓库优先
按声明顺序查找
验证仓库配置
text
mvn dependency:tree -X
mvn help:effective-pom
要点总结
- repositories 在 POM 中声明远程仓库
- id 必填,与 settings.xml 认证配置对应
- releases/snapshots 控制版本类型启用
- 认证信息在 settings.xml 的 servers 中配置
- 仓库优先级:本地→镜像→profile→pom→中央
📝 发现内容有误?点击此处直接编辑