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 小时前
Spring Boot 实现 WebSocket 实时通信:从原理到生产级实战
java·开发语言·spring boot·后端·websocket·spring
一只会写代码的猫5 小时前
面向高性能计算与网络服务的C++微内核架构设计与多线程优化实践探索与经验分享
java·开发语言·jvm
萤丰信息6 小时前
智慧园区能源革命:从“耗电黑洞”到零碳样本的蜕变
java·大数据·人工智能·科技·安全·能源·智慧园区
曹牧6 小时前
Eclipse为方法添加注释
java·ide·eclipse
我叫张小白。7 小时前
Spring Boot拦截器详解:实现统一的JWT认证
java·spring boot·web·jwt·拦截器·interceptor
Gerardisite9 小时前
如何在微信个人号开发中有效管理API接口?
java·开发语言·python·微信·php
2501_941147429 小时前
基于 Rust 与 Actix 构建高性能微服务与低延迟分布式系统实践分享
maven
闲人编程10 小时前
Python的导入系统:模块查找、加载和缓存机制
java·python·缓存·加载器·codecapsule·查找器
故渊ZY10 小时前
Java 代理模式:从原理到实战的全方位解析
java·开发语言·架构