线程“main”中的异常 java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/Module

问题描述

我有一个 Scala sbt 项目,我试图在我的 IntelliJ 上运行它,但我面临以下异常:

Exception in thread "main" java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/Module

我已将依赖项包含在我的 build.sbt 中

libraryDependencies += "com.fasterxml.jackson.core" % "jackson-databind" % "2.12.1" 

有人可以告诉我缺少什么吗?

我也认为它可能需要一些与 scala 相关的依赖,所以我添加了虽然我不确定但仍然相同的错误

// https://mvnrepository.com/artifact/com.fasterxml.jackson.module/jackson-module-scala
libraryDependencies += "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.12.3"

大家有什么建议吗?

解决方法

当您的代码依赖于某个类(在您的情况下为 jackson.databind.Module)但在尝试编译时 java 找不到它时会发生此错误,因为依赖地址未作为参数传递给 Java,如果您添加了正确的build.sbt 文件中的依赖项,在 IntelliJ 中试试这个:

sbt reload (in your application terminal or sbt shell)
File > Invalidate cache and restart

只需更新项目并索引项目和依赖项,从而更新编译和运行命令,这可能会解决您的问题。

,

通过添加解决

dependencyOverrides += "com.fasterxml.jackson.core" % "jackson-core" % "2.10.5"
dependencyOverrides += "com.fasterxml.jackson.core" % "jackson-databind" % "2.10.5"
dependencyOverrides += "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.10.5"

构建.sbt文件。