SpringBoot整合Kotlin接口报NoClassDefFoundError: kotlin/jvm/JvmInline错误
问题原因
- 报错核心是找不到
kotlin.jvm.JvmInline类,该注解是Kotlin 1.5版本才正式发布的特性,用于支持Kotlin内联类(value class)能力 - 从错误堆栈可以定位到是
jackson-module-kotlin:2.13.0版本调用了该类,2.13.x及更高版本的Jackson Kotlin序列化模块最低要求依赖Kotlin 1.5及以上版本,当项目当前使用的Kotlin版本低于1.5时,就会触发类找不到的异常
解决方案
- 方案1(推荐):升级项目Kotlin版本到1.5.0及以上稳定版
- Gradle构建项目修改
build.gradle.kts配置:
plugins { kotlin("jvm") version "1.8.22" // 可替换为任意1.5以上的稳定版本,推荐1.6+版本 kotlin("plugin.spring") version "1.8.22" }- Maven构建项目修改
pom.xml配置:
<properties> <kotlin.version>1.8.22</kotlin.version> </properties> - Gradle构建项目修改
- 方案2:若暂时无法升级Kotlin版本,可降低
jackson-module-kotlin依赖版本到2.12.x系列,该版本的Jackson Kotlin模块兼容低于1.5的Kotlin版本,不会依赖JvmInline类 - 额外校验:升级完成后可通过构建工具命令排查依赖冲突,Gradle执行
./gradlew dependencies、Maven执行mvn dependency:tree,确认所有Kotlin相关依赖版本完全统一,避免多版本混用
内容的提问来源于stack exchange,提问作者facer
相关产品推荐
相关产品推荐

