현재는 스프링부트 2.7버전이 공식적으로 지원이 종료되어 start.spring.io(Spring initializr)를 통해 이전 버전의 프로젝트를 생성할 수 없습니다.
3.x 버전의 스프링 부트 프로젝트를 2.x 버전으로 다운그레이드하는 방법에 대해 설명드리겠습니다(Maven, Gradle).
프로젝트 생성 및 다운그레이드 진행에 인텔리제이를 사용했습니다.
프로젝트 생성
우선 스프링부트 3버전 프로젝트를 생성합니다.
프로젝트 이름, 자바 버전 등 원하는 대로 설정합니다.
3버전이기 때문에 자바 버전은 17버전 이상이어야 합니다.
스프링 부트 버전은 3.3.1 버전을 선택하겠습니다.
다운그레이드 할 예정이라 버전은 어떤것을 해도 상관은 없습니다.
웹 서버 실행을 위해 spring-web 의존성을 추가했습니다.
Finish를 눌러 프로젝트 생성을 진행합니다.
프로젝트 생성이 끝나면 프로젝트가 정상적으로 실행되는지 확인합니다.
2버전 다운그레이드를 위한 수정 사항
pom.xml, build.gradle 수정
pom.xml
<!-- 변경 전 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.3.1</version>
<relativePath />
</parent>
<!-- 변경 후 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.18</version>
<relativePath />
</parent>
build.gradle
// 변경 전
plugins {
id 'java'
id 'org.springframework.boot' version '3.3.1'
id 'io.spring.dependency-management' version '1.1.5'
}
// 변경 후
plugins {
id 'java'
id 'org.springframework.boot' version '2.7.18'
id 'io.spring.dependency-management' version '1.1.5'
}
스프링 부트 버전을 3.3.1에서 2.7.18 버전으로 수정합니다.
이 프로젝트는 생성한지 얼마 안된 프로젝트라서 스프링 부트 버전만 수정해도 실행하는데에 문제가 없습니다.
java 버전도 스프링부트 3버전에서 사용했던 17버전을 그대로 사용해도됩니다.
코드 수정
스프링 부트 3버전에서는 javax 패키지가 아니라 jakarta 패키지를 사용하기 때문에 jakarta 패키지를 사용하는 코드를 모두 수정해야합니다.
// 수정 전(예시)
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
// 수정 후(예시)
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
validation 말고도 jakarta를 사용하는 코드가 있다면 javax로 변경하면 됩니다.