maven排除依赖冲突问题

今天碰到了一个诡异的问题。
jedis版本原来用的是2.9.0,想要替换成3.0.1,涉及到父pom,搞了半天,试了各种办法,版本都改不过来。
项目依赖的始终是2.9.0,并且从当前pom到父pom,都找不到在哪里指定了2.9.0。

最终,采取下述方法1,问题解决。

maven依赖冲突一般有四种解决方式,按照优先级(从高到低)介绍:

1. 依赖管理(所有版本锁定)

在配置文件pom.xml中先声明要使用哪个版本的相应jar包,声明后其他版本的jar包一律不依赖

<properties> 
<spring.version>4.2.4.RELEASE</spring.version> 
<hibernate.version>5.0.7.Final</hibernate.version> 
<struts.version>2.3.24</struts.version> </properties> 
</properties> 
<!-- 锁定版本,struts2-2.3.24、spring4.2.4、hibernate5.0.7 --> 
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId><version>${spring.version}</version> </dependency> </dependencies></dependencyManagement>

如果是应用在同一个工程内有多个模块时,提取出一个父亲模块来管理子模块共同依赖的 jar 包版本,则子模块相同jar包不需要指定version信息

2. 移除依赖

如果我们不想通过 A->B->C>D1 引入 D1 的话,那么我们在声明引入 A 的时候将 D1 排除掉
举个例子:将 zookeeper 的 jline 依赖排除

    <dependency><groupId>org.apache.hadoop</groupId><artifactId>zookeeper</artifactId><version>3.3.1</version><exclusions><exclusion><groupId>jline</groupId><artifactId>jline</artifactId></exclusion></exclusions></dependency>

3. 第一声明优先原则

在pom.xml配置文件中,如果有两个名称相同版本不同的依赖声明,那么先写的会生效。
所以,先声明自己要用的版本的jar包即可。

4. 最短路径优先

直接依赖优先于传递依赖,如果传递依赖的jar包版本冲突了,那么可以自己声明一个指定版本的依赖jar,即可解决冲突。

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

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

相关文章

OpenCV Stitching 工程搭建

&#xfeff;&#xfeff;转自http://www.tuicool.com/articles/fMbUfaF Opencv中提供Stitcher类&#xff0c;实现了多图像自动拼接&#xff0c;Opencv是开源的&#xff0c;程序实现的源代码都在Opencv安装文件中&#xff0c;以及Opencv提供的函数查询手册和Opencv教程都可以在…

asp.net core 3.0 更新简记

asp.net core 3.0 更新简记Intro最近把活动室预约项目从 asp.net core 2.2 更新到了 asp.net core 3.0&#xff0c;记录一下&#xff0c;升级踩过的坑以及经验总结&#xff0c;包括但不限于TargetFramework ( netcoreapp2.2 需要更新为 netcoreapp3.0)DependencyHost/Environme…

kafka吞吐量高的原因

kafa 吞吐量高的原因 1、顺序读写 kafka的消息是不断追加到文件中的&#xff0c;这个特性使kafka可以充分利用磁盘的顺序读写性能 顺序读写不需要硬盘磁头的寻道时间&#xff0c;只需很少的扇区旋转时间&#xff0c;所以速度远快于随机读写 2、零拷贝 在Linux kernel2.2 之…

【 .NET Core 3.0 】框架之三 || swagger的使用

一、为什么使用Swagger上文中已经说到&#xff0c;单纯的项目接口在前后端开发人员使用是特别不舒服的&#xff0c;那所有要推荐一个&#xff0c;既方便又美观的接口文档说明框架&#xff0c;当当当&#xff0c;就是Swagger&#xff0c;随着互联网技术的发展&#xff0c;现在的…

MQ问题集(kafka主从同步与高可用,MQ重复消费、幂等)

1、kafka主从同步与高可用 https://1028826685.iteye.com/blog/2354570 http://developer.51cto.com/art/201808/581538.htm 2、MQ有可能发生重复消费&#xff0c;如何避免&#xff0c;如何做到幂等 2.1 MQ消息发送 1、发送端MQ-client(消息生产者&#xff1a;Producer)将消…

微软编程题:寻找最小的k个值

转载自&#xff1a;http://blog.csdn.net/v_JULY_v/article/details/6370650 寻找最小的k个数 题目描述&#xff1a;5.查找最小的k个元素 题目&#xff1a;输入n个整数&#xff0c;输出其中最小的k个。 例如输入1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5&#xf…

Bumblebee微服务网关之访问日志处理

记录访问日志可以起到非常重要的作用&#xff0c;它不仅记录了API的使用情况&#xff0c;更可以反映API各种相关数据&#xff1b;通过分析日志可以得到API不同时间的负载情况&#xff0c;访问效率和流量分布&#xff0c;更进一步还能分析出用户的操作历史和行为这是非常有价值的…

负载均衡基础

1、什么是负载均衡&#xff08;Load balancing&#xff09; 在网站创立初期&#xff0c;我们一般都使用单台机器对台提供集中式服务&#xff0c;但是随着业务量越来越大&#xff0c;无论是性能上还是稳定性上都有了更大的挑战。这时候我们就会想到通过扩容的方式来提供更好的服…

调试opencv程序显示应用程序无法正常启动,0xc000007b

几种可能的解决方案&#xff1a; 1. 没有添加opencv环境变量; 2. 安装Direct X 9.0 C; 3. 安装Visual Studio SDK;

Bumblebee微服务网关之并发限制

对于服务应用来说支持的并发越高越好&#xff0c;但很多时候资源有限&#xff0c;超负载的并发则会给整体应用带来更大的危险性&#xff08;更何况有些并发来源是恶意的&#xff09;。作为微服务网关应该具有一定的挡洪作用&#xff0c;这样可以一定程度保障后台逻辑服务的稳定…

opencv 常见细碎问题解决

&#xfeff;&#xfeff;无法启动此程序 因为计算机中丢失opencv_xxxxd.dll 将opencv\build\x64\vc10\bin下的所有.dll文件拷贝到debug文件中。 无法启动此程序&#xff0c;因为计算机中丢失MSVCP100D.dll.尝试重新安装该程序以解决此问题 把MSVCP100D.dll和MSVCR100D.dll…

[ASP.NET Core 3框架揭秘] 跨平台开发体验: Mac OS

除了微软自家的Windows平台&#xff0c; .NET Core针对Mac OS以及各种Linux Distribution&#xff08;RHEL、Ubuntu、Debian、Fedora、CentOS和SUSE等&#xff09;都提供了很好的支持。我们先来体验一下使用Mac来开发.NET Core应用&#xff0c;在这之前我们照例先得在Mac OS上构…

监控h264视频不能正常解码怎么办

很多监控设施有自己的编码特质&#xff0c;很可能会影响到我们正常的解码&#xff0c;为了处理极特殊情况&#xff0c;我们可以采取以下工具&#xff1a; 1. 另外随便找一个能够用脚本解码的h264文件&#xff0c;对照不能解码的h264文件&#xff0c;依照h264编码的格式和关键字…

接雨水

题目描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图&#xff0c;在这种情况下&#xff0c;可以接 6 个单位的雨水&#xff08;蓝色部分表示…

使用RabbitMQ实现接口补偿

业务背景在我们的日常开发中&#xff0c;经常需要调用第三方接口来进行数据传递&#xff0c;在调用接口的过程中&#xff0c;会因为各种原因导致调用的失败。这时我们希望能有一种机制实现对失败的接口的重复调用&#xff0c;并且能够实现人工干预。实现思路1、当接口调用失败&…

新方法-根据上排给出十个数,在其下排填出对应的十个数

给你10分钟时间&#xff0c;根据上排给出十个数&#xff0c;在其下排填出对应的十个数 要求下排每个数都是先前上排那十个数在下排出现的次数。 上排的十个数如下&#xff1a; 【0&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5&#xff0c;6&am…

HashMap实现LRU(最近最少使用)缓存更新算法

最近阿里巴巴电话面试被问到了如何使用固定容量的HashMap&#xff0c;实现LRU算法。当时一脸懵逼&#xff0c;平时用HashMap也就用来快速存取数据而已&#xff0c;容量都是不限的。 想了半天&#xff0c;想到对node节点进行扩展&#xff0c;加入引用计数&#xff0c;然后到达指…

集群环境下,你不得不注意的ASP.NET Core Data Protection 机制

引言最近线上环境遇到一个问题&#xff0c;就是ASP.NET Core Web应用在单个容器使用正常&#xff0c;扩展多个容器无法访问的问题。查看容器日志&#xff0c;发现以下异常&#xff1a;System.Security.Cryptography.CryptographicException: The key {efbb9f35-3a49-4f7f-af19-…

程序无法启动ALL_BUILD 拒绝访问

用cmake编译完opencv3.0后&#xff0c;发现编译没有问题&#xff0c;但尝试调试的时候报错无法启动.../ALL_BUILD拒绝访问. 调了很久才解决&#xff0c;方法是&#xff0c;卸载所有无关工程&#xff0c;只保留一个你需要的工程&#xff0c;这时候ZERO_CHECK以及ALL_BUILD都没有…

.NET斗鱼直播弹幕客户端(上)

前言现在直播平台由于弹幕的存在&#xff0c;主播与观众可以更轻松地进行互动&#xff0c;非常受年轻群众的欢迎。斗鱼TV就是一款非常流行的直播平台&#xff0c;弹幕更是非常火爆。看到有不少主播接入 弹幕语音播报器、 弹幕点歌等模块&#xff0c;这都需要首先连接斗鱼弹幕。…