Maven的分发管理与依赖拉取

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.总结

  • 内部依赖的统一管理
  • 版本发布的规范化
  • 构建产物的集中存储
  • 团队协作的效率提升
相关推荐
计科土狗2 分钟前
GESP六级专题之类与对象
java·前端·数据库
Slow菜鸟39 分钟前
第3篇:实操落地篇 · 3套企业标准工作流(IDEA可视化版)
java·ide·intellij-idea
weixin_4407841140 分钟前
Java基础常见题
java·开发语言·python·java基础
掉鱼的猫1 小时前
Hot-Plug 实战:运行期管理 Solon 插件
java·hotfix
markinmarkin1 小时前
Spring 中有哪些方式可以把Bean 注入到IOC 容器?
java·spring
带刺的坐椅1 小时前
Hot-Plug 实战:运行期管理 Solon 插件
java·solon·插件·热插拔
大黄说说1 小时前
SQL Server 执行计划怎么看?快速定位 SQL 慢的根源
java·linux·数据库
雪之下雪乃的代码日记2 小时前
Python快速入门(Java开发者版)
java·开发语言·笔记·python
敲个大西瓜2 小时前
Springboot核心面试题
java·spring boot·后端
器灵科技2 小时前
Seedance2.5 VS MiniMax H3 同日上线:AI短剧创作者该怎么选?
java·人工智能·阿里云·prompt·aigc