maven jar包冲突解决

参考:https://blog.csdn.net/w1014074794/article/details/51892619/

异常信息:

java.lang.IllegalStateException: Failed to introspect Class [org.springframework.cloud.openfeign.ribbon.FeignRibbonClientAutoConfiguration] from ClassLoader [[email protected]]
    at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:656)
    at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:553)
    at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:538)
    at org.springframework.util.ReflectionUtils.getUniqueDeclaredMethods(ReflectionUtils.java:596)
......................
Caused by: java.lang.ClassNotFoundException: org.springframework.cloud.client.loadbalancer.LoadBalancedRetryFactory

 

 

打开pom.xml文件,在Dependency Hierarchy(依赖列表)中查看jar包的依赖层次关系。

 

在过滤栏中输入log4j,右侧出现了log4j相关包的依赖结构,左侧则是pom.xml全部依赖包的列表展示。

直接在右侧选中zookeeper底下的slf4j的jar包,右键选择Exclude,然后保存pom.xml。这样在加载zookeeper的jar包时就不会再加载slf4j的jar包。

修改后对应的dependency文件如下:

 

 
  1. <dependency>

  2. <groupId>org.apache.zookeeper</groupId>

  3. <artifactId>zookeeper</artifactId>

  4. <version>3.4.6</version>

  5. <exclusions>

  6. <exclusion>

  7. <artifactId>slf4j-log4j12</artifactId>

  8. <groupId>org.slf4j</groupId>

  9. </exclusion>

  10. </exclusions>

  11. </dependency>

这样就能通过filter过滤快速找到对应jar,并知道他的依赖关系,快速解决项目中的jar包冲突问题。