如何在gradle中添加com.fasterxml.jackson.core.exc.InputCoercionExce



我得到了java.lang.NoClassDefFoundError:com/fasterxml/jackson/databind/PropertyNamingStrategies,它在另一个项目中使用。我已经把杰克逊-贾也包括在当前的gradle项目中。但是在开始这个项目的时候,我遇到了上面提到的错误。似乎我们需要添加com.fasterxml.jackson.core.exc.InputCoercionException作为依赖项,但我不知道在哪里添加它作为依赖项?有人能帮忙吗?

java.lang.NoClassDefFoundError要么意味着类com/fasterxml/jackson/databind/PropertyNamingStrategies缺少依赖项,要么意味着删除了类,这意味着项目依赖项中使用的jackson-libs版本无法协同工作。

如何开始解决这样的问题。

1,通过IDE尝试查找缺失的类(如果存在(。如果不存在,请尝试在互联网上找到缺少类的jar,并添加为依赖项。若您的IDE显示类存在,那个么问题可能是导入范围。作用域管理因使用的技术而异,因此请提供使用哪种技术的详细信息,或从build.kts粘贴依赖项。如果在项目中导入此类,请确保使用implementation,而不是runtimeOnly

2、您发现类然后尝试打印项目依赖树命令不同于使用的技术。对于等级./gradlew dependencies或子模块./gradlew submoduleName:dependencies,请查看您项目中的jackson版本。

3、通过依赖树列出的版本检查jackson lib是否包含丢失的类。

如何避免类似弹簧靴的问题。

我建议使用springboot项目提供的BOM,其中的版本应该可以协同工作。

对于带有kotlin DSL的gradle,我们像这样导入

import org.springframework.boot.gradle.plugin.SpringBootPlugin

plugins {
id("org.springframework.boot") version "2.6.2"
}
dependencies {
val springBootPlatform = platform(SpringBootPlugin.BOM_COORDINATES)
annotationProcessor(springBootPlatform)
implementation(springBootPlatform)
//this version has to be searched for spring boot version
implementation(platform("org.springframework.cloud:spring-cloud-dependencies:2021.0.0"))

//put desired jackson dependencies
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
}

最新更新