후.. Java version 맞춰놨더니 또 다른 오류가 뜬다..

인텔리제이에서 Spring Boot 프로젝트를 ./gradlew build 하다가 뜬 오류이다.

 

java.lang.NoSuchMethodError at SpringExtension.java:381

 

결론은 

Spring boot starter 가 이미 가지고 있는 라이브러리를 또 build.gradle에 추가해놔서

library끼리 충돌한 것으로 보인다.

 

나의 경우에 문제가 되었던 library는

test junit
  testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2'
  testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.2'

 

이었고, 해당 코드를 build.gradle에서 주석 처리하고보니 해결이 되었ㄷ ㅏ ㅎㅎ

 

참고 블로그

https://mystria.github.io/archivers/fail-case-java-no-such-method-error

 

금주의 실패사례 - NoSuchMethodError의 정체 « Personal Tech Note

NoSuchMethodError 해결 잘 동작하던 Spring Boot Web Application에서 실행 중 NoSuchMethodError가 발생하기 시작했다. 에러 발생 개요 NoSuchMethodError는 없는 메소드를 호출할 때 발생한다. 그런데 그렇다면 compile

mystria.github.io

 

해당 오류는 인텔리제이에서 Spring Boot를 build 하다가 생긴 오류이다.

오류 내용을 다시 읽어보자.

 

- Incompatible because this component declares a component, compatible with Java 17 and the consumer needed a component, compatible with Java 8

 

핵심은 Incompatible, 호환되지 못한 것 같다.

무엇이 호환되지 못했을까?

 

component가 Java 17 version에 맞게 선언을 하였는데,

소비자는 Java 8 version과 호환되어 있다고 하는 것이다.

 

그러면 Java version을 17로 올려서 호환을 해주어야 해결이 되는 오류일 것이다.

 

다음 명령어를 통해 Gradle version 을 확인해보자.

./gradlew build

 

1. 시스템 환경 변수를 바꿔준다 %JAVA_HOME%

2. intellij 에서 Gradle version 과 Project SDK를 확인해서 변경한다

 

1번으로 해결했따.ㅎ

'CI CD > Gradle' 카테고리의 다른 글

java.lang.NoSuchMethodError at SpringExtension.java:381  (0) 2024.03.16

+ Recent posts