当前位置: 首页 > news >正文

`<dependencyManagement>`内部的`<dependencies>`和外部的`<dependencies>`的区别:

1. dependencyManagement 内的 dependencies

作用:

  • 依赖版本管理:统一管理依赖的版本号
  • 不会实际引入依赖:仅仅是声明版本信息
  • 提供默认配置:为子模块或实际依赖提供默认的版本和配置

特点:

<dependencyManagement><dependencies><dependency><groupId>com.jd.rec</groupId><artifactId>graph-log-java</artifactId><version>0.2.27</version>  <!-- 定义版本 --></dependency></dependencies>
</dependencyManagement>
  • 📋 仅声明,不引入
  • 🎯 版本控制中心
  • 🔧 配置模板

2. 外部的 dependencies

作用:

  • 实际引入依赖:真正将jar包添加到项目中
  • 可以省略版本号:如果在dependencyManagement中已定义
  • 可以覆盖配置:添加额外的exclusions等

特点:

<dependencies><dependency><groupId>com.jd.rec</groupId><artifactId>graph-log-java</artifactId><!-- 版本号省略,使用dependencyManagement中定义的0.2.27 --><exclusions><exclusion><groupId>com.jd.jrf</groupId><artifactId>config</artifactId></exclusion></exclusions></dependency>
</dependencies>
  • 实际引入依赖
  • 🔄 继承版本信息
  • 可添加额外配置

3. 工作流程示例

<!-- 第一步:在dependencyManagement中声明版本 -->
<dependencyManagement><dependencies><dependency><groupId>com.jd.rec</groupId><artifactId>graph-log-java</artifactId><version>0.2.27</version>  <!-- 统一版本管理 --></dependency></dependencies>
</dependencyManagement><!-- 第二步:在dependencies中实际引入 -->
<dependencies><dependency><groupId>com.jd.rec</groupId><artifactId>graph-log-java</artifactId><!-- 自动使用上面定义的0.2.27版本 --><exclusions><!-- 添加特定的排除配置 --><exclusion><groupId>com.jd.jrf</groupId><artifactId>config</artifactId></exclusion></exclusions></dependency>
</dependencies>

4. 主要优势

方面dependencyManagementdependencies
作用版本管理中心实际依赖引入
是否引入jar❌ 不引入✅ 引入
版本管理📋 定义版本🔄 继承或覆盖版本
适用场景多模块项目统一管理单个模块具体使用

5. 实际效果

在你的配置中:

  • dependencyManagement定义了graph-log-java的版本为0.2.27
  • dependencies中实际引入了graph-log-java,自动使用0.2.27版本
  • 同时在实际引入时添加了额外的exclusions配置

这种方式既保证了版本的统一管理,又允许在具体使用时进行个性化配置。

http://www.dtcms.com/a/317258.html

相关文章:

  • Spring Boot全局异常处理与日志监控实战指南
  • 浙江大学PTA程序设计C语言基础编程练习题6-10
  • Python爬虫实战:研究Photon工具,构建企业信息收集系统
  • 【Java】HashMap的key可以为null吗?如何存储的?
  • 线性代数中矩阵的基本运算运算
  • 【图像处理基石】浅谈3D城市生成中的数据融合技术
  • 分布式微服务--GateWay(1)
  • 【注意】HCIE-Datacom华为数通考试,第四季度将变题!
  • 基于Hadoop的木鸟民宿数据分析与可视化、民宿价格预测模型系统的设计与实现
  • OpenKruise
  • Linux《进程间通信(上)》
  • Git 乱码文件处理全流程指南
  • 记一次ORACLE ORA-00600 [19004] 错误的分析与解决方法
  • HarmonyOS 5 入门系列-鸿蒙HarmonyOS示例项目讲解
  • 铁路通信信号基础知识点(2)轨旁与车载ATP关系
  • 《动手学深度学习》读书笔记—9.5机器翻译与数据集
  • 虚拟机磁盘扩容
  • centos KVM
  • Java技术栈/面试题合集(19)-架构设计篇
  • Vue2中实现数据复制到 Excel
  • 【普通地质学】地球的物质组成
  • 什么是OAuth2.0协议?有哪几种认证方式?什么是JWT令牌?和普通令牌有什么区别?
  • 【JS-7-ajax】AJAX技术:现代Web开发的异步通信核心
  • 数据赋能(381)——数据挖掘——支持异类数据库
  • Springboot 默认注入方式和@Primary
  • 高职5G移动网络运维实验(训)室解决方案
  • Wireshark协助捕获信号波形
  • 【STL源码剖析】从源码看 vector:底层扩容逻辑与内存复用机制
  • 常见类型在内存中的存储
  • 百度华为硬件笔试机试题-卷4