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

管理依赖版本-maven工程parent项目巧配置

  本文目标:开发人员,在了解pom文件properties、dependencyManagement标签用法的条件下,进行依赖包版本统一维护,达到统一维护项目依赖jar包版本的程度。

文章目录

    • 1 场景
    • 2 要点
    • 3 总结/练习

1 场景

  maven工程多模块项目,不同项目引用相同包,随着工程体量增大,容易在变更依赖包版本出现遗漏,出现不同模块引用的包版本不同问题。

版本不一致问题
  比如截图例子中,工程包含“mg-fre”、“mg-scr”两个模块,同时在各自的pom文件中,引入“slf4j-api”依赖包,出现版本不一致现象。

2 要点

  在parent项目中,使用“properties”、“dependencyManagement”标签,可以解决该问题。

  “properties”标签用于定义依赖包版本号,“dependencyManagement”标签用于声明引入依赖包时使用的版本。

  parent项目pom文件添加如下内容:

<properties><org.slf4j.version>2.0.8</org.slf4j.version>
</properties><dependencyManagement><dependencies><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>${org.slf4j.version}</version></dependency></dependencies>
</dependencyManagement>

  此时,在真正引入依赖包的位置,删除“version”标签。

  “mg-fre”模块pom文件引入位置修改为:

<dependencies><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId></dependency>
</dependencies>

  “mg-scr”模块pom文件引入位置修改为:

<dependencies><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId></dependency>
</dependencies>

  修改后,重新刷新maven依赖,可以看到,不同模块的“slf4j-api”版本已经统一。

版本统一
  后续再变更maven项目依赖包版本时,只需要在parent项目的pom文件中,统一修改“properties”定义的版本号即可,不同模块引入的依赖包版本会统一变更,不会出现版本不一致问题。

3 总结/练习

  本文介绍了在parent项目pom文件中,统一配置依赖包版本的方法。

  可以尝试在自己的项目中,使用“2 要点”章节的方法,进行依赖包版本统一维护,达到统一维护项目依赖jar包版本的效果。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C语言CRC16_CCITT_FALSE函数法和查表法实现
  • 【梯度下降算法学习笔记】
  • 基于开源鸿蒙(OpenHarmony)的【智能家居综合应用】系统
  • 评价类——熵权法(Entropy Weight Method, EWM),完全客观评价
  • 老年人养生之道:岁月静好,健康常伴
  • 代码随想录 八股文训练营40天总结
  • Cypress初次安装启动常见问题
  • PyQt5 导入ui文件报错 AttributeError: type object ‘Qt‘ has no attribute
  • SpringCloud从零开始简单搭建 - JDK17
  • 【HTTP】请求“报头”,Referer 和 Cookie
  • Windows控制台中文乱码怎么解决?(nes,一些exe窗口程序)
  • k8s证书过期处理
  • 【2025】中医药健康管理小程序(安卓原生开发+用户+管理员)
  • C#基础知识-.NET,变量,容量单位,数据类型
  • MATLAB系列05:自定义函数
  • 【Leetcode】101. 对称二叉树
  • Babel配置的不完全指南
  • css选择器
  • C语言笔记(第一章:C语言编程)
  • download使用浅析
  • ES学习笔记(12)--Symbol
  • Gradle 5.0 正式版发布
  • IndexedDB
  • MySQL-事务管理(基础)
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 关于 Cirru Editor 存储格式
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 优化 Vue 项目编译文件大小
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​​​【收录 Hello 算法】9.4 小结
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • #13 yum、编译安装与sed命令的使用
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • #考研#计算机文化知识1(局域网及网络互联)
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (CVPRW,2024)可学习的提示:遥感领域小样本语义分割
  • (第三期)书生大模型实战营——InternVL(冷笑话大师)部署微调实践
  • (多级缓存)多级缓存
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (一) springboot详细介绍
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (转)编辑寄语:因为爱心,所以美丽
  • .Family_物联网
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .NET Core 中插件式开发实现
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .net MVC中使用angularJs刷新页面数据列表
  • .NET 中什么样的类是可使用 await 异步等待的?
  • /etc/sudoers (root权限管理)
  • [ Linux 长征路第五篇 ] make/Makefile Linux项目自动化创建工具
  • [ 数据结构 - C++] AVL树原理及实现
  • []C/C++读取串口接收到的数据程序
  • [8] CUDA之向量点乘和矩阵乘法
  • [AHOI2009]中国象棋 DP,递推,组合数