You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Kotlin至2.0.21后Jackson KotlinModule构造方法私有导致编译错误的解决方案咨询

升级Kotlin至2.0.21后Jackson KotlinModule构造方法私有导致编译错误的解决方案咨询

我们正尝试将一个项目从JDK 11迁移到JDK 17,但我们的Kotlin版本更老!整个应用都在使用Kotlin 1.4.0,所以在迁移过程中我们决定同时升级Kotlin版本。

当我把pom文件中的JAR依赖从1.4.0更新到2.0.21后,有个类不兼容这个变更,抛出了如下异常:

[ERROR] C:/Users/sam2004/git/app/develop/app-common/src/main/java/com/trial/app/ui/util/CacheConfig.kt:[53,64] Cannot access 'constructor(reflectionCacheSize: Int = ..., nullToEmptyCollection: Boolean = ..., nullToEmptyMap: Boolean = ..., nullIsSameAsDefault: Boolean = ..., singletonSupport: SingletonSupport = ..., strictNullChecks: Boolean = ..., useKotlinPropertyNameForGetter: Boolean = ..., useJavaDurationConversion: Boolean = ...): KotlinModule': it is private in 'com/fasterxml/jackson/module/kotlin/KotlinModule'.

涉及的依赖如下:

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.module/jackson-module-kotlin -->
<dependency>
    <groupId>com.fasterxml.jackson.module</groupId>
    <artifactId>jackson-module-kotlin</artifactId>
    <version>2.18.1</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-stdlib-jdk8 -->
<dependency>
    <groupId>org.jetbrains.kotlin</groupId>
    <artifactId>kotlin-stdlib-jdk8</artifactId>
    <version>2.0.21</version>
</dependency>

我能看出这个错误来自Jackson的JAR包。

导致问题的代码行是:

private val mapper = ObjectMapper().apply { registerModule(KotlinModule()) }

有没有解决这个问题的方案?还是说我只能回退到旧版本,因为这可能会导致大量代码变更?

备注:内容来源于stack exchange,提问作者hell_storm2004

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 10:49:31