Maven项目中的**分发管理(Distribution Management)**配置,主要用于定义项目构建产物的发布位置和相关策略。
实现细节:
1. 核心功能
XML
<distributionManagement>
<!-- 正式版本发布仓库 -->
<repository>
<id>nexus</id>
<url>http://nexus.xxxx.cn:8081/repository/maven-releases/</url>
</repository>
<!-- 快照版本发布仓库 -->
<snapshotRepository>
<id>nexus</id>
<url>http://nexus.xxxx.cn:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
2. 配置说明
repository(正式版本仓库)
- 用途:存放稳定版本的构件
- 触发条件 :当项目版本号中没有
-SNAPSHOT后缀时 - 特点:不可覆盖,每个版本唯一
snapshotRepository(快照版本仓库)
- 用途:存放开发中的快照版本
- 触发条件 :当项目版本号中包含
-SNAPSHOT后缀时 - 特点:可以覆盖,便于持续集成
3.maven的配置文件
打开maven的setting文件

需要在 ~/.m2/settings.xml 中配置对应服务器的认证信息:
XML
<!-- settings.xml 配置 -->
<settings>
<servers>
<server>
<id>nexus</id> <!-- 必须与此处id一致 -->
<username>your-username</username>
<password>your-password</password>
</server>
</servers>
</settings>
4. 实际使用场景

发布正式版本
bash
# 版本号示例: 1.0.0, 2.1.5 (不带-SNAPSHOT)
mvn clean deploy
构件会发布到 maven-releases 仓库
发布快照版本
bash
# 版本号示例: 1.0.0-SNAPSHOT
mvn clean deploy
构件会发布到 maven-snapshots 仓库
5. Nexus仓库类型说明
| 仓库路径 | 类型 | 用途 |
|---|---|---|
/repository/maven-releases/ |
Release仓库 | 存储稳定版本 |
/repository/maven-snapshots/ |
Snapshot仓库 | 存储开发版本 |
6. 完整的工作流程

7. 版本设置
XML
<!-- 正确 -->
<version>1.0.0</version> <!-- 正式版 -->
<version>1.0.1-SNAPSHOT</version> <!-- 快照版 -->
<!-- 避免 -->
<version>1.0.0-SNAPSHOT</version> <!-- 不要混用 -->
8.总结:
- 内部依赖的统一管理
- 版本发布的规范化
- 构建产物的集中存储
- 团队协作的效率提升