[Spring/스프링] Repository defined in @EnableJpaRepositories declared on DatabaseConfig: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: kotlin/reflect/jvm/ReflectJvmMapping

반응형

기존 Java spring으로 되어있던 프로젝트에서 최근 개발하는 것들은 kotlin 으로 코드를 짜고 있는데

JpaRepository 의 구현체 repository 를 잘 쓰다가 갑자기 빌드를 했더니 아래와 같은 에러가 발생했다.

Repository defined in @EnableJpaRepositories declared on DatabaseConfig: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: kotlin/reflect/jvm/ReflectJvmMapping

 

Maven Repository: org.jetbrains.kotlin » kotlin-reflect (mvnrepository.com)

이 dependency를 추가해주면 해당 에러는 해결된다.

runtimeOnly 'org.jetbrains.kotlin:kotlin-reflect:1.8.10'

이렇게 추가해주었는데 찾아보니 kotlin version 과 일관되면 좋다고 해서

runtimeOnly "org.jetbrains.kotlin:kotlin-reflect:${kotlin_version}"

이렇게 추가해주면 좋다고 한다.

 

 

Reflection 이란 런타임 시에 프로그램 구조를 분석하게 해주는 기능을 제공한다고 한다.

Reflection is a set of language and library features that allows you to introspect the structure of your program at runtime.

 

JVM 환경의 kotlin compiler 에서 reflection 을 사용하려면 kotlin-reflect.jar 로 분리되어있는 친구를 추가해줘야 한다고 한다.

intellij 쓰면 기본으로 포함되면 좋으련만..

반응형