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

  • 内部依赖的统一管理
  • 版本发布的规范化
  • 构建产物的集中存储
  • 团队协作的效率提升
相关推荐
麦麦鸡腿堡32 分钟前
Java_类的加载
java·开发语言
JIngJaneIL41 分钟前
基于java + vue校园快递物流管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js
超级大只老咪1 小时前
数组的正向存储VS反向存储(Java)
java·开发语言·python
毕设源码-赖学姐1 小时前
【开题答辩全过程】以 基于JSP的物流信息网的设计与实现为例,包含答辩的问题和答案
java·开发语言
Honmaple1 小时前
Spring AI 2.x 发布:全面拥抱 Java 21,Redis 史诗级增强
java·人工智能·spring
代码or搬砖2 小时前
Java集合-Set讲解
java·开发语言
渣娃-小晴晴2 小时前
java集合在并发环境下应用时的注意事项
java·后端
北极糊的狐2 小时前
若依系统报错net::ERR_CONNECTION_TIMED_OUT的原因
java·windows·sql·mybatis
FLGB2 小时前
maven漏洞检测报告
java·maven