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

  • 内部依赖的统一管理
  • 版本发布的规范化
  • 构建产物的集中存储
  • 团队协作的效率提升
相关推荐
1104.北光c°5 分钟前
滑动窗口HotKey探测机制:让你的缓存TTL更智能
java·开发语言·笔记·程序人生·算法·滑动窗口·hotkey
云原生指北3 小时前
GitHub Copilot SDK 入门:五分钟构建你的第一个 AI Agent
java
Leinwin7 小时前
OpenClaw 多 Agent 协作框架的并发限制与企业化规避方案痛点直击
java·运维·数据库
薛定谔的悦7 小时前
MQTT通信协议业务层实现的完整开发流程
java·后端·mqtt·struts
enjoy嚣士8 小时前
springboot之Exel工具类
java·spring boot·后端·easyexcel·excel工具类
罗超驿8 小时前
独立实现双向链表_LinkedList
java·数据结构·链表·linkedlist
盐水冰9 小时前
【烘焙坊项目】后端搭建(12) - 订单状态定时处理,来单提醒和顾客催单
java·后端·学习
凸头9 小时前
CompletableFuture 与 Future 对比与实战示例
java·开发语言
wuqingshun3141599 小时前
线程安全需要保证几个基本特征
java·开发语言·jvm
努力也学不会java9 小时前
【缓存算法】一篇文章带你彻底搞懂面试高频题LRU/LFU
java·数据结构·人工智能·算法·缓存·面试