반응형

Spring Boot 버전을 2.x -> 3.x 버전으로 변경 후, Gradle 빌드를 하면 아래의 메시지와 함께 빌드 에러가 발생하는 경우를 볼 수 있다.

 

- Incompatible because this component declares an API of a component compatible with Java 17 and the consumer needed a runtime of a component compatible with Java 11

 

이는 Java 버전에 따른 문제인데, 2.x 버전의 경우 Java 11을 사용했지만 3.x 버전으로 변경하는 경우 Java 17을 사용해야 한다.

 

Java 17을 설정하고 환경변수를 설정해주면 해결 된다. Ubuntu의 경우 아래와 같이 진행한다.

 

# Java 17 설치
$ sudo apt install openjdk-17-jdk

# 17이 설치된 번호를 입력하여 17로 변경
$ sudo update-alternatives --config java
There are 4 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-11-amazon-corretto/bin/java    11100021  auto mode
  1            /usr/lib/jvm/java-11-amazon-corretto/bin/java    11100021  manual mode
  2            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      manual mode
* 3            /usr/lib/jvm/java-17-openjdk-amd64/bin/java      1711      manual mode
  4            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode

Press <enter> to keep the current choice[*], or type selection number: 3

# environment 파일에서 JAVA_HOME 환경변수 변경후 저장
$ sudo vi /etc/environment
JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64"

# Java 버전 확인
openjdk version "17.0.7" 2023-04-18
OpenJDK Runtime Environment (build 17.0.7+7-Ubuntu-0ubuntu118.04)
OpenJDK 64-Bit Server VM (build 17.0.7+7-Ubuntu-0ubuntu118.04, mixed mode, sharing)

 

반응형

+ Recent posts