[Spring Boot] No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.X.X was found.
'Import Getting Started Content' has encountered a problem.
NoMatchingConfigurationSelectionException: No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.0.4 was found. The consumer was configured to find a runtime of a library compatible with Java 11, packaged as a jar, and its dependencies declared externally, as well as attribute 'org.gradle.plugin.api-version' with value '7.6.1' but:
- Variant 'apiElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.0.4 declares a library, packaged as a jar, and its dependencies declared externally:
- 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
- Other compatible attribute:
- Doesn't say anything about org.gradle.plugin.api-version (required '7.6.1')
...
신규 프로젝트 개발 진행을 위한 Spring Boot 프로젝트 생성 중 이클립스에서 위와 같은 오류가 발생하였다. Spring Blog에서 찾아보니 Spring Boot 3.0이 출시되면서 Spring Framework 6.0을 기반으로 하며, Java 17 이상이 필요하다고 나온다.
현재 나는 Open JDK11을 쓰고 있는 중이라 발생하는 오류이다. Spring Boot 2. 기반의 프로젝트를 생성할 수 있지만 어차피 향후에는 보안 문제로 업데이트를 진행할 것이 뻔하기에 3.대 기반 프로젝트를 위해 오류를 해결해보자.
- Open JDK17 설치
아래 링크의 절차에 맞게 Open JDK17을 설치하고 환경변수를 등록하자.
- 이클립스(Eclipse) Java의 default Installed JREs 설정
Window - Preferences - Java - Installed JREs 창을 열고 Add를 눌러 설치한 OpenJDK 17을 아래 이미지의 절차대로 등록한다.
- 프로젝트 생성 확인
신규 프로젝트 생성 후 Spring Boot의 버전을 3.x.x 최신버전으로 진행하면 이전과 같은 오류 메세지가 나오지 않고 성공적으로 Gradle 빌드도 수행이 된다.
> Task :nothing UP-TO-DATE
BUILD SUCCESSFUL in 444ms
Working Directory: D:\workspace\demo
Gradle user home: C:\Users\user\.gradle
Gradle Distribution: Gradle wrapper from target build
Gradle Version: 7.6.1
Java Home: D:\Java\jdk-17
- 지속적인 오류 (eclipse.ini)
환경변수 및 이클립스의 Installed JRE 설정을 17로 변경후에도 위와 같은 오류가 지속적으로 발생하는 경우에는 eclipse.ini 파일을 확인해야 한다. 이클립스 우클릭하여 속성을 확인하면 대상 항목에서 위치를 알수 있는데 파일탐색기를 열어 해당위치로 이동하여 eclipse.ini 파일에서 vm 항목을 확인하자.
위와 같이 -vm 옵션으로 JDK의 버전을 명시하면 11로 가상머신이 실행이 되기 때문에 3.대 Spring Boot 빌드를 할 수 없다. 그러므로 해당 -vm 옵션 값을 삭제하거나 새로 추가한 jdk-17로 변경해야 한다.
# 삭제 또는 jdk17로 변경
#-vm
#D:/Java/jdk-11/bin
-vm
D:/Java/jdk-17/bin
'Programming > Spring Boot' 카테고리의 다른 글
[Spring Boot] multiple DataSource 다중 데이터베이스 연결 구성 (0) | 2023.04.26 |
---|---|
[Spring Boot] Gradle을 이용한 Profile(개발/운영) 구분 설정 (0) | 2022.12.02 |
[Spring Boot] Jasypt를 이용한 암호화 (0) | 2022.11.30 |
[Spring Boot] PostgreSQL 연결을 위한 JPA 설정 (0) | 2022.07.28 |
Spring Boot 기본 설정 Port, ContextPath, Session Timeout (0) | 2022.07.22 |
댓글