【发布时间】:2019-02-01 02:03:29
【问题描述】:
我在 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) 杰克逊数据绑定 (2.9.2)
3) 杰克逊注解 (2.8.5)
如您所见,我没有为所有 jars 设置相同的版本。我查看了我项目中的所有 pom,并没有找到添加所有这些依赖项的任何地方。我希望在那里简单地设置版本号。我应该简单地在我的父 pom 文件中添加所有依赖项还是做其他事情?
如何在不损害项目的情况下解决此问题?如何找出这些 jar 的版本不同的原因?
【问题讨论】: