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

news2024/9/19 7:38:54

  本文目标:开发人员,在了解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包版本的效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2145803.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据库基础知识---------------------------(2)

MYSQL的存储过程 就是数据库 SQL 语言层面的代码封装与重用 语法格式 delimiter 自定义结束符号 create procedure 存储名({in,out,inout} 参数名,数据类型...) begin sql 语句 end 自定义结束符 delimiter; 变量定义 局部变量 用户自定义 仅在begin / end 块中有效 当将查询…

高效开发,从暗藏玄机的文件系统开始—合宙Air201资产定位模组LuatOS

超低功耗、精准定位、快速量产——迷你小巧的合宙Air201&#xff0c;正给越来越多的行业客户带来高效开发体验。 4G-Cat.1模组的文件系统关乎数据传输速度、存储效率&#xff0c;以及数据安全性等等诸多因素&#xff0c;在应用开发中极为重要。 本期&#xff0c;我们来学习合…

微型导轨在3D打印设备中的应用与实践

微型导轨的应用范围非常广泛&#xff0c;尤其在追求高精度、高效率及低噪音的现代打印技术中扮演着重要角色。微型导轨在3D打印机等精密设备中是常用元件&#xff0c;以提高打印质量和效率。 在打印机中&#xff0c;无论是喷墨式、激光式还是3D打印机&#xff0c;都需要精确的打…

JDBC编程详细总结

一、JDBC编程 JDBC编程有标准步骤(八股文) 注册驱动 将sql语句的运行环境加载到JVM 连接数据库 获得执行SQL的对象 执行SQL语句,获得结果 关流 1、 注册驱动 Class.forName("com.mysql.jdbc.Driver");//5.7版本 加载驱动 Class.forName("com.mysql.cj.jdb…

为什么收录是谷歌seo的底子?

收录是谷歌SEO的基础&#xff0c;因为它决定了网站页面能否被用户找到。只有被谷歌收录的页面&#xff0c;才有机会在搜索结果中出现。如果页面没有被收录&#xff0c;谷歌根本就不知道它的存在&#xff0c;这意味着即使内容再好、关键词再精准&#xff0c;也不会有任何排名 被…

fo-dicom,第一个基于.NET Standard 2.0 开发的DICOM开源库

1. 简介&#xff1a; fo-dicom是一个基于C#开发的库&#xff0c;用于处理DICOM&#xff08;Digital Imaging and Communications in Medicine&#xff09;格式的数据。DICOM是一种用于医学影像和相关信息的标准格式&#xff0c;广泛应用于医学领域。fo-dicom提供了多平台支持&…

华为OD机试 - 报数问题 - 约瑟夫环(Python/JS/C/C++ 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试真题&#xff08;Python/JS/C/C&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;私信哪吒&#xff0c;备注华为OD&#xff0c;加入华为OD刷题交流群&#xff0c;…

浸没边界法精度相关的论文的阅读笔记

Convergence proof of the velocity field for a stokes flow immersed boundary method https://doi.org/10.1002/cpa.20233 研究对象的选取 他这里为什么能够选取一个周期性边界的流场啊&#xff1f;为什么不是狄利克雷边界或者诺伊曼边界&#xff1f; 方形流场的边界值 …

keil里sprintf的用法

代码&#xff1a; #include<stdio.h> int main(void) {float i-123.45;char zifu[10];sprintf(zifu,"%f",i);while(1);return 0; } 仿真结果 代码&#xff1a; #include<stdio.h> int main(void) {float i123.45;char zifu[10];sprintf(zifu,"%f…

ReKep——李飞飞团队提出的新一代机器人操作方法:基于视觉语言模型和关键点约束

前言 由于工厂、车厂的任务需求场景非常明确&#xff0c;加之自今年年初以来&#xff0c;我司在机器人这个方向的持续大力度投入(包括南京、长沙两地机器人开发团队的先后组建)&#xff0c;使得近期我司七月接到了不少来自车厂/工厂的订单&#xff0c;比如柔性上料、物料分拣、…

Linux嵌入式相机 — 项目总结

main函数执行流程 1、初始化触摸屏 Touch_screen_Init();struct tsdev *ts NULL; ts ts_setup(NULL, 0); //以阻塞打开2、初始化 LCD LCD_Init(void); 通过 ioctl 函数获取 LCD 的固定参数、可变参数&#xff0c;得到分辨率、bpp、一行的长度&#xff08;以字节为单位&a…

如何创建和编辑抖音百科词条,不会的找我们代创建!

如何创建和编辑抖音百科词条&#xff0c;不会的找我们代创建&#xff01; 如何创建抖音百科个人词条&#xff0c;个人抖音百科的创建 #抖音百科 #百科 #推广 做过百度百科的老板们注意了&#xff0c;等一下别划走。 2024 年品宣新风口出现了&#xff0c;抖音百科正在替代百度…

Unity Behavior Designe 可视化有限状态机(Composites篇)

对有限状态机这一个概念你可以看看这两篇文章&#xff1a; Unity 一个比较适合学习的FSM状态机(汉化和功能简述)-CSDN博客 C# x Unity面向对象补全计划 设计模式 之 实现一个简单的有限状态机-CSDN博客 当时我对代码下的有限状态机只有一个想法&#xff0c;设计巧妙&#…

数据结构与算法学习day21-回溯法

一、组合 1.题目 . - 力扣&#xff08;LeetCode&#xff09; 2思路 把组合问题抽象成树形结构&#xff08;N叉树&#xff09; 每次从集合中选取元素&#xff0c;可选择的范围随着选择的进行而收缩&#xff0c;调整可选择的范围。 图中可以发现n相当于树的宽度&#xff0c…

Linux(6)--CentOS目录

文章目录 1. 根目录2. cd目录切换命令3. CentOS目录介绍4. pwd命令介绍5. ls命令介绍5.1 ls5.2 ls -a5.3 ls -l 1. 根目录 Windows电脑的根目录是计算机(我的电脑)&#xff0c;然后C盘、D盘。 Linux系统的根目录是/&#xff0c;我们可以使用cd /进入根目录&#xff0c;然后使…

客户端/服务器的简易实现

目录 一,网络编程套接字 二,UDP/TCP的区别(​编辑) 三,UDP API使用 四,TCP API使用 一,网络编程套接字 socket socket(操作系统给应用程序的API,起了一个名字,就成为socket API) socket API提供了两套API分别为UDP和TCP: 二,UDP/TCP的区别() TCP有链接,可靠传输,面向字…

图解view_transformation(可视化BEV视角转换的过程)

BEV视图生成的流程总结&#xff1a; &#xff08;1&#xff09;生成视锥 &#xff08;2&#xff09;将视锥由uv坐标系转到EGO坐标系 &#xff08;3&#xff09;视锥体素化 &#xff08;4&#xff09;bev_pool &#xff08;1&#xff09;生成视锥 长宽数量: 模型输入图片尺寸//…

Winform登录实现及工具栏切换

1、登录实现 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;namespace LoginApp {public par…

峟思传感器在水库坝体渗漏防治措施中的应用

在水库工程管理中&#xff0c;坝体渗漏是一个不容忽视的问题&#xff0c;它不仅影响水库的正常运行&#xff0c;还可能对下游地区造成严重的安全隐患。因此&#xff0c;采取有效的渗漏防治措施至关重要。在这一过程中&#xff0c;传感器作为关键的技术手段&#xff0c;发挥着不…

react + antDesignPro 企业微信扫码登录

效果 实现步骤 1、项目中document.ejs文件引入企微js链接 注意&#xff1a;技术栈是使用的react antDesignPro&#xff0c;不同的技术栈有不同的入口文件&#xff08;如vue在html文件引入&#xff09; <script src"https://wwcdn.weixin.qq.com/node/wework/wwopen/j…