maven依赖jar包冲突的解决思路

注:

目的是提供maven依赖jar包冲突的解决思路

 

 

需求场景:

jackson-databind、fastjson 高危远程代码执行漏洞修复。Jackson-databind,版本号升级为2.10.3;fastjson,版本号升级为1.2.66

 

 

问题描述:

对需求中提到的2个工具包进行版本升级后,出现很多找不到方法的报错,比如:

Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.annotation.JsonMerge

 

 

问题排查:

1、是否方法对应的jar包未引入?

通过查看得知,提到“找不到的方法”来自包jackson-databind,而在maven的依赖架构中可以看到,该jar包已经存在,但是仔细一看,问题浮现眼前

maven依赖jar包冲突的解决思路_第1张图片

 

2、上述问题极有可能是版本冲突导致

根据上图可以看到,已经更新了jackson-databind的版本为2.10.3,但是由于引入了其他jar包,其他jar包又依赖了jackson-databind等json工具相关包,版本是2.4.1

 

 

尝试解决:

1、排除resteasy-jackson2-provider包中json工具相关包的依赖,并重新显示引入2.10.3版本的jar包。

如下:

   org.jboss.resteasy

   resteasy-jackson2-provider

  

      

          jackson-databind

          com.fasterxml.jackson.core

      

      

          jackson-core

          com.fasterxml.jackson.core

      

      

          jackson-annotations

          com.fasterxml.jackson.core

      

      

          jackson-jaxrs-json-provider

          com.fasterxml.jackson.jaxrs

      

  

   com.fasterxml.jackson.core

   jackson-databind

   2.10.3

   com.fasterxml.jackson.jaxrs

   jackson-jaxrs-json-provider

   2.10.3

 

2、再次查看maven依赖架构(eclipse)

maven依赖jar包冲突的解决思路_第2张图片

发现版本都变成统一的2.10.3了。

 

重启应用,问题不再,运气真好!

 

 

附:

查看maven依赖架构,打开工程的pom.xml,选择第3个标签,如下图:

 

 

你可能感兴趣的:(常见问题解决,Java基础,Maven)