项目引入多个连接池,导致使用其他连接池,maven分析学习

news2024/12/29 13:03:04

第一步在命令行中执行

mvn  dependency:tree > excludeParentstart.log

如果你的settings文件不是项目使用的setting配置,那么就使用下面的命令

mvn -gs 你的路径/apache-maven-3.8.2/conf/settings-person.xml dependency:tree > excludeParentstart.log

然后打开这个输出的 excludeParentstart.log文件

然后得到了一堆密密麻麻的文件
在这里插入图片描述
这个玩意怎么看呢?我们得先知道依赖加载顺序

  • 执行命令 mvn dependency:tree
    会输出Maven项目的依赖树,展示所有的依赖项和它们之间的关系。以下是加载顺序的一些概念和说明:

    父级依赖(Parent
    dependency):在Maven项目中,可以通过定义一个父级POM来集中管理一些通用依赖和配置,子模块POM继承了父级POM后就可以共享这些依赖和配置。因此,父级依赖会首先被加载,并且其依赖会在所有子模块之前被解析和加载。

    子模块依赖(Child module dependency):子模块的依赖会在其父级依赖和其他已经解析过的依赖之后被加载。

    传递性依赖(Transitive
    dependency):当一个依赖引入另一个依赖时,它们之间建立了一种“传递性依赖”的关系。比如,如果A依赖于B,而B依赖于C,则A会传递性地依赖于C。传递性依赖会在其直接依赖项之后被加载。

    冲突解决(Dependency conflict
    resolution):当多个依赖项引入不同版本的同一个库时,Maven需要解决依赖冲突。Maven解决冲突的方式是使用最短路径算法,在依赖树中找到最短的路径来解析依赖,从而确定使用哪个版本的库。

    综上所述,这些依赖项的加载顺序是:父级依赖 → 子模块依赖 → 直接依赖项 →
    传递性依赖。在加载依赖时,Maven还会进行依赖冲突解决,确保使用正确的库版本。

我们用到的也就是最短路径的话就时最高优先级。
举个例子。下面有两个连接池,druid和hikariCP。
在这里插入图片描述
因为druid的路径比hikariCP短。
所以使用的是druid的连接池。

但是我想指定为hikariCP的连接池怎么办呢? 我需要在引入的这个项目里,加入exclude druid

            <dependency>
                <exclusions>
                    <exclusion>
                        <groupId>com.alibaba</groupId>
                        <artifactId>druid-spring-boot-starter</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

当然是最外层的配置,因为最外层配置优先级最高。

如果你是在内层有多个配置,那么在内层配置多个同样的exclude

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

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

相关文章

Spring学习---上篇

文章目录 1、Spring1.1、简介1.2、优点1.3、Spring的组成1.4、拓展 2、IOC理论推导3、IOC的本质3.1、IOC概念3.2、IoC是Spring框架的核心内容 3、HelloSpring3.1、实现3.2、思考 4、IOC创建对象的方式5、Spring配置5.1、别名&#xff08;alias&#xff09;5.2、Bean的配置5.3、…

Multi-class classification without multi-class labels (ICLR 2019)

Multi-class classification without multi-class labels (ICLR 2019) 摘要 这项工作提出了针对多分类的新策略&#xff0c;不需要具体的类别标签&#xff0c;取而代之是利用样本之间的两两相似度&#xff0c;这是一种弱化的标注方式。所提方法称作元分类学习&#xff0c;为两…

ModaHub魔搭社区:向量数据库Milvus使用 MySQL 管理元数据教程

目录 使用 MySQL 管理元数据 常见问题 数据管理相关博客 使用 MySQL 管理元数据 Milvus 默认使用 SQLite 作为元数据后台管理服务&#xff0c;SQLite 内嵌于 Milvus 进程中&#xff0c;无需启动额外服务。但是在生产环境中&#xff0c;基于可靠性的考虑&#xff0c;我们强烈…

【数据库管理】十分钟了解啥是三级封锁协议、X锁和S锁

一.为什么要用锁 在多用户共享系统中&#xff0c;许多事务可能同时对同一数据进行操作&#xff0c;称为“并发操作”&#xff0c;此时数据库管理系统的并发控制子系统负责协调并发事务的执行&#xff0c;保证数据库的完整性不受破坏&#xff0c;同时避免用户得到不正确的数据。…

Spring框架概括

spring是什么&#xff1f; Spring是2003年兴起的&#xff0c;它是一个轻量级的&#xff0c;非侵入式的IOC和AOP的一站式框架&#xff0c;为简化企业级应用开发。 它的特点&#xff1a; 轻量级&#xff1a;指的是核心jar包比较小的。 非侵入式的&#xff1a;框架代码不会侵入…

Java——《面试题——MQ篇》

前文 java——《面试题——基础篇》 Java——《面试题——JVM篇》 Java——《面试题——多线程&并发篇》 Java——《面试题——Spring篇》 Java——《面试题——SpringBoot篇》 Java——《面试题——MySQL篇》​​​​​​ Java——《面试题——SpringCloud》 Java…

KingFusion3.6是什么?

哈喽&#xff0c;大家好&#xff0c;我是雷工&#xff01; 今天继续学习KingFusion3.6&#xff0c;以下为学习笔记。 一、KingFusion3.6简介 1、管控一体化全组态平台KingFusion3.6是一款面向工业企业执行层的生产信息化管理系统。 2、KingFusion3.6基于“全组态”技术&#…

使用ROS功能包camera_calibration进行单目相机和双目相机的内参和外参标定

1.概述 本文总结使用ROS标定单目和双目相机的过程&#xff0c;同时提供生成棋盘格文件的方法。 参考链接&#xff1a; [1]使用ros标定相机的内参和外参 [2]ROS下采用camera_calibration进行双目相机标定 2.生成棋盘格文件 棋盘格可以自己买一个&#xff0c;或者打印一个粘在…

日本团队推出 AI 恋爱游戏:主角穿什么,玩家说了算

女主穿什么&#xff0c;还能由玩家决定&#xff1f;&#xff01; IT之家6月25日消息&#xff0c;来自日本的一个两人团队近期发布了一段视频&#xff0c;展示了一款正在开发中的基于 AI 的恋爱游戏。 在游戏初期&#xff0c;女主角会以黑色剪影的形式出现&#xff0c;针对女主…

紫云谷游记

先说重点&#xff0c;TLNR 1.早点去&#xff0c;方便找地方停车&#xff0c;坐渡船不用排队太久。 2.景区里的饭没外面的好吃。 3.溯溪回来再在游泳池游泳&#xff0c;溯溪凉快&#xff0c;游泳太晒。 4.溯溪真的好爽。 导航&#xff1a; 紫云谷乘船码头停车场 景区介绍就不多说…

常见电池容量概念

嵌入式软件做产品一定要考虑功耗问题 功耗是多少&#xff0c;装上电池能用多久。 1、毫安时和毫瓦时 毫安时&#xff08;mAh&#xff09;和毫瓦时&#xff08;mWh&#xff09;是两个不同的物理量&#xff0c;它们分别表示电量和能量的度量单位。下面图片搜18650得到不同结果&…

Elasticsearch介绍与应用

Elasticsearch介绍与应用 Elasticsearch的官方文档。 Elasticsearch官网参考文档&#xff1a;https://www.elastic.co/guide/index.html Elasticsearch官方下载地址&#xff1a;https://www.elastic.co/cn/downloads/elasticsearch mvnrepository依赖库地址&#xff1a;http…

你对工作队列了解多少?Linux中断处理中的workqueue介绍

Linux中断处理中的workqueue介绍 一、workqueue的作用及在Linux中断处理中的应用1.1、workqueue的概述1.2、workqueue在Linux中断处理中的作用 二、workqueue的实现原理2.1、工作队列和工作者线程的关系2.2、工作队列的创建和销毁2.3、工作者线程的创建和销毁2.4、扩展知识&…

2023年的今天,谨慎进入网络安全行业

前言 2023年的今天&#xff0c;慎重进入网安行业吧&#xff0c;目前来说信息安全方向的就业对于学历的容忍度比软件开发要大得多&#xff0c;还有很多高中被挖过来的大佬。 理由很简单&#xff0c;目前来说&#xff0c;信息安全的圈子人少&#xff0c;985、211院校很多都才建…

低代码没前途?那是你“盲盒”没拆好

创新本质是什么&#xff1f;一是让昂贵的东西变得便宜&#xff0c;老百姓能用&#xff1b;二是高门槛东西变得低门槛&#xff0c;普通人可用。琢磨着&#xff0c;这不就是说低代码吗&#xff1f; 低代码&#xff1a;让人找不到工作&#xff1f; 低代码无疑成为开发业务的一种…

基于java springboot博客管理系统设计和实现

基于java springboot博客管理系统设计和实现 博主介绍&#xff1a;5年java开发经验&#xff0c;专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系方式 文章目录 …

前端技术到底是深度重要,还是广度重要?

前言 前几天跟朋友讨论“技术广度和技术深度哪个重要”&#xff0c;再想想自己像过山车一般的前端历程&#xff0c;有感而发&#xff0c;想给小兄弟们一些建议~ 为什么会有这个疑问&#xff1f; 还记得两年前&#xff0c;甚至是一年前&#xff0c;当时想要找到一份好工作&am…

API 网关 vs 负载均衡:选择适合你的网络流量管理组件

由于互联网技术的发展&#xff0c;网络数据的请求数节节攀升&#xff0c;这使得服务器承受的压力越来越大。在早期的系统架构中&#xff0c;通常使用负载均衡来将网络流量平摊到多个服务器中&#xff0c;以此减轻单台服务器的压力。但是现如今&#xff0c;后端服务的种类在不断…

STM32-ADC模拟数字转换器

ADC 1、简介1.2、逐次逼近型ADC1.3 ADC基本结构转换模式触发控制数据对齐转换时间&#xff08;针对高转换速率&#xff09;校准硬件电路 2、软件编写初始化 1、简介 1、ADC&#xff08;Analog-Digital Converter&#xff09;模拟-数字转换器 2、ADC可以将引脚上连续变化的模拟…

【MySQL学习笔记】(一)MySQL数据库基础

MySQL数据库基础 1 MySQL 连接服务器指令2 mysql 和mysqld的区别3 数据库存储 VS 文件存储4 初次使用数据库 理解数据库是什么4.1 使用数据库4.2 小总结 5 主流数据库6 SQL分类7 存储引擎 1 MySQL 连接服务器指令 mysql -h 127.0.0.1 -P 3306 -u root -p-h 指明登录部署了mysq…