Jar包冲突问题原理及解决方案
作者:来自海上的鱼 发布时间:2023-03-05 09:40:02
标签:Jar,包,冲突
背景:
新需求需要引入新jar包,引入后发现本地启动没有报错,发到测试环境提示某个bean无法创建,nested exception is java.lang.VerifyError: Bad type on operand stack。
解决:
1,没有引入新jar包之前是没有提示这个报错了,猜测是jar包冲突。
2,到测试环境的lib目录根据新引入jar包的关键字找到如图所示的jar,图中最下面三个jar是新功能需要引入的jar,多了excelmagic-1.3-20190806.100559-3.jar这个包,基本确定是这个jar造成的冲突。
3,通过idea自带的show dependencies没有找到这个jar是哪个包引入的
4,通过maven helper没有找到关于这个jar的冲突记录
5,快11点了下班回家。回到家灵机一动,能否从jenkins构建日志查查。最终根据这个jar的关键字找到如图构建日志:
6,在引入这个baseinfo包的地方exclusion掉excelmagic之后,重新构建成功。
<exclusion>
<artifactId>excelmagic</artifactId>
<groupId>com.隐藏.fop.fnp.excelmagic</groupId>
</exclusion>
7,回过头来用maven helper查看,至此不明白的地方在于为何这个excelmagic包没有体现在baseinfo包上,并且这个networkinit包在pom里是已经做了exclude的
8,把目光集中在引入baseinfo包的exclusion的写法上,如下:
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
这个用法没怎么用过,不清楚啥原理。将其注释后,在maven helper能找到excelmagic这个包是由baseinfo引入的。
来源:https://www.cnblogs.com/frankwin608/p/13296878.html


猜你喜欢
- @PropertySource读取配置文件通过@Value参数注入有参数文件如下test.propertiesproject.author=
- 1,编写一个程序,读取文件test.txt的内容并在控制台输出。如果源文件不存在,则显示相应的错误信息。 package src;impor
- 错误信息Exception in thread "main" java.lang.ClassCastException:
- 本文详细讲述了Android平台基于Pull方式对XML文件解析与写入方法。分享给大家供大家参考,具体如下:XML技术在跨平台的情况下的数据
- 为什么要使用Lambda?可以对一个接口进行非常简洁的实现。Lambda对接口的要求?接口中定义的抽象方法有且只有一个才可以。传统实现一个接
- Kotlin JSON解析开发环境就是下面这个…一、添加依赖在build.gradle.kts文件中添加下面依赖。de
- 本文实例讲述了Android开发实现判断通知栏是否打开及前往设置页面的方法。分享给大家供大家参考,具体如下:项目中用到日程提醒功能,如果应用
- 我计划在后续的一段时间内,写一系列关于java 9的文章,虽然java 9 不像Java 8或者Java 11那样的核心java版本,但是还
- 将Excel转为PDF格式时,通常情况下转换出来的PDF页面都是默认的宽度大小;如果Excel表格数据的设计或布局比较宽或者数据内较少的情况
- 一、前言尽管Unity有一个像样的脚本编辑器(Mono),但很多人喜欢使用另一个编辑器。这篇短文解释了如何更改脚本编辑器,并介绍了Mono的
- 目录前言开始总结前言小伙伴们都知道,现在市面上最流行的web开发框架就是springboot了,在springboot开始流行之前,我们都用
- 需求在配置类中,从application.properties中读取一个复杂list。如List<Person>或者初始化一个m
- 实现官方文档说明:com.baomidou.mybatisplus.annotations.TableFieldTableField注解新增
- 前言:在没有接触java8的时候,我们遍历一个集合都是用循环的方式,从第一条数据遍历到最后一条数据,现在思考一个问题,为什么要使用循环,因为
- Android中的Adapter在自定义显示列表时非常有用,比如SimpleAdapter,它的构造函数是:public SimpleAda
- 一、在spring的应用中我们存在两种过滤的用法,一种是 * 、另外一种当然是过滤器。我们这里介绍过滤器在springboot的用法,在sp
- 本文实例讲述了Android实现Activity水平和垂直滚动条的方法。分享给大家供大家参考,具体如下:<ScrollView xml
- 1.定义每一个函数都占用一段内存单元,它们有一个起始地址,指向函数入口地址的指针称为函数指针。2.语法指向函数的指针变量的一般定义形式为:数
- 引言在前面的内容中,我们先是一一介绍了Collection集合中都有哪些种类的集合,并且详细地讲解了List集合中的相关知识,那么今天我们来
- Filter过滤器中访问getSession()要进行转化public void doFilter(ServletRequest reque