maven依赖冲突排除

时间:2024-04-12 17:27:18

引用一个jar包后报了一个错

java.lang.LinkageError: loader constraint violation: when resolving method "org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(Ljavax/servlet/ServletConfig;)Lorg/apache/tomcat/InstanceManager;" the class loader (instance of org/apache/jasper/servlet/JasperLoader) of the current class, org/apache/jsp/WEB_002dINF/views/admin/main_jsp, and the class loader (instance of java/net/URLClassLoader) for the method's defining class, org/apache/jasper/runtime/InstanceManagerFactory, have different Class objects for the type org/apache/tomcat/InstanceManager used in the signature

错误打印一大堆,找到关键字have different Class objects for the type org/apache/tomcat/InstanceManager

有不同的类对象org/apache/tomcat/InstanceManager,加载多个相同的类会出错,这是因为maven传递依赖导致的

一看是tomcat有关的包冲突,打开jar包依赖树,找到冲突的包

maven依赖冲突排除

选中冲突的jar包右键exclude maven artifact即可,知道具体包名可以直接在pom中手动写exclusion

<dependency>
<groupId>net.oschina.likaixuan</groupId>
<artifactId>excelutil</artifactId>
<version>1.5.4</version>
<exclusions>
<exclusion>
<artifactId>spring-boot-starter-tomcat</artifactId>
<groupId>org.springframework.boot</groupId>
</exclusion>
</exclusions>
</dependency>