由于 java.lang.NoClassDefFoundError 无法运行代码:com/fasterxml/jackson/annotation/JsonMerge
我在Intellij Idea 2018社区版中有一些测试代码,其中包含多个pom文件。当我运行任何testng注释测试时,我收到一个错误,说“没有找到任何测试”。看起来问题是由异常堆栈跟踪的这一部分引起的:
java.lang.NoClassDefFoundError: com/fasterxml/jackson/annotation/JsonMerge
我用谷歌搜索了一个解决方案,发现了这个 - https://github.com/FasterXML/jackson-annotations/issues/119 和这个 https://stackoverflow.com/a/46406070。看起来,当我们在项目中没有相同版本的这些 jar 时,会导致此问题。
1) 杰克逊核心 (2.8.8)
2) jackson-databind (2.9.2)
3) 杰克逊注释 (2.8.5)
如您所见,我没有为所有jars提供相同的版本。我查看了项目中的所有pom,没有找到添加所有这些依赖项的任何地方。我希望简单地在那里设置版本号。我应该简单地在我的父 pom 文件中添加所有依赖项还是执行其他操作?
如何在不损害项目的情况下解决此问题?我如何找出为什么这些罐子的版本不同?