본문 바로가기

오류/스프링 오류

[스프링 오류] Spring Boot 빌드 오류

원인

   > Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.0.5.

...

project : > org.springframework.boot:org.springframework.boot.gradle.plugin:3.0.5
Caused by: org.gradle.internal.component.NoMatchingConfigurationSelectionException: No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.0.5 was found. The consumer was configured to find a runtime of a library compatible with Java 8, packaged as a jar, and its dependencies declared externally, as well as attribute 'org.gradle.plugin.api-version' with value '7.6.1' but:

 

빌드를 하는 과정에서 발생하는 오류는 두 가지가 있다. 스프링 부트의 버전 오류이거나 JCenter인증서 만료로 인한 Repository 오류이다. 

 

본 프로젝트에서는 스프링 부트 3.0.5  버전의 프레임워크의 자바 버전 문제로 인해 오류가 발생했다. 

 

스프링부트는 3.0 부터 Java 17을 지원한다. 따라서 기존 Java8, 11 등을 사용한다면 에러를 만나게 된다. 

 

Repository 오류와 관련된 해결책과 원인에 대해서는 아래 링크를 남긴다.

https://devfoxstar.github.io/kotlin/spring-boot-gradle-plugin-error/ 

https://ssons.tistory.com/61

https://velog.io/@yangju0411/%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B6%80%ED%8A%B8-build.gradle-%EC%9E%91%EC%84%B1%ED%95%98%EA%B8%B0-%EA%B0%84%EB%8B%A8-%EC%A0%95%EB%A6%AC

 

스프링 부트 build.gradle 작성하기 간단 정리

스프링 부트 책을 보며 간단히 작성

velog.io

 

mavenCentral() vs jcenter() 개념 및 차이점

아래와 같이 springboot gradle 프로젝트를 작업 중에 build.gradle 설정을 해주었습니다. 문득 mavenCentral() 과 jcenter() 두 개의 차이점은 무엇이고 왜 설정해주는 것인가에 대한 근본적인 이유에 대해서

ssons.tistory.com

 

스프링부트 그레이들 빌드 오류 (No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.0.1 was

SpringBoot 프로젝트를 Gradle 로 빌드할 때 발생하는 오류입니다. 해당 오류가 발생하는 원인은 몇 가지가 있습니다. SpringBoot 버전 SpringBoot…

devfoxstar.github.io

해결

이 문제의 해결책은 스프링 부트 2.7.x로 다운그레이드를 해주면 된다. 만약 당장 프로젝트를 생성하고 학습을 이어갈 학생이라면 간단하게 이 해결책을 통해 문제를 넘어가면 된다.

 

하지만 스프링 부트 3.0 이상을 사용하고자 한다면 아래의 해결책을 따라 가면 된다.

 

 

1. JAVA

먼저, 현재 설치된 Java의 버전이 무엇인지 확인한다. cmd 창에서 아래의 명령어를 입력한다.

java -version

만약 17버전 이상이 아닌 경우 Java 17을 설치하고 아래 과정을 진행한다. 

자바 17 설치 참고 (https://coding-factory.tistory.com/823) 자바 17을 설치하고 컴퓨터를 다시 시작을 하면 된다. 

 

2. build.gradle

해당 프로젝트의 sourceCompatibility가 17 이상으로 명시되어 있는지 확인한다. (sourceCompatibility란? https://dlee0129.tistory.com/265

plugins {
    id 'java'
    id 'org.springframework.boot' version '3.0.5'
    id 'io.spring.dependency-management' version '1.1.0'
}

group = 'com.myspring'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '17'

만약 이와 같은 설정만으로도 여전히 빌드가 안된다면 IntelliJ 설정이 안되어 있을 확률이 높다.

 

3. IntelliJ

이 프로그램을 실행하는 IntelliJ가 Java17로 실행시킬 수 있도록 아래의 설정을 따른다. 

 

IntelliJ의 파일/설정 -> 빌드, 실행, 배포 -> 빌드 도구 -> Gradle로 이동한다. 

아래와 같이 Gradle 설정이 나오면, Gradle JVM을 Java 17 이상으로 설정한다. 

 

다음으로 파일 -> 프로젝트 구조로 이동해서 프로젝트의 SDK 버전을 확인해 Java17 이상으로 설정한다. 

 

이제 모든 설정이 끝났으므로 다시 Gradle로 돌아가 Refresh를 실행한다. 

BUILD SUESSFUL in ... 문구가 나온다면 정상적으로 빌드를 마친 것이다.