05-7. OpenRewrite 적용 가이드
개요
- OpenRewrite를 이용해 Spring Boot 3.5.9로 마이그레이션하는 가이드다.
- 참조 문서: 0 2026년도 MP Spring Boot 3.5.9 업그레이드 개발자 가이드
사전 조건
- Java 17 적용
- Gradle 8.14.3 적용
rewrite.yml파일을 프로젝트 루트에 둔다.gradle.properties의 JVM 메모리를 증설한다.
org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512mOpenRewrite 설정
plugins {
id 'org.openrewrite.rewrite' version '7.28.2'
}
ext {
set('openrewriteRecipeBomVersion', '3.26.1')
}
dependencies {
rewrite platform("org.openrewrite.recipe:rewrite-recipe-bom:$openrewriteRecipeBomVersion")
rewrite 'org.openrewrite.recipe:rewrite-spring'
rewrite 'org.openrewrite.recipe:rewrite-migrate-java'
rewrite 'org.openrewrite.recipe:rewrite-openapi'
}
rewrite {
configFile = rootProject.file('rewrite.yml')
activeRecipe('org.openrewrite.java.spring.boot3.SpringBootProperties_3_5')
exportDatatables = true
exclusion('src/generated/**', '**/build/**', '**/node_modules/**')
}
compileJava.dependsOn(compileGeneratedJava)OpenRewrite 수행
먼저 rewriteDryRun으로 사전 검증 후 rewriteRun을 수행한다.
| 명령어 | 설명 |
|---|---|
./gradlew rewriteDryRun -Drewrite.activeRecipe=org.openrewrite.java.spring.boot3.SpringBootProperties_3_5,skt.mno.mpai.mps.MpsSpringBoot3BackendServicesAll -x compileJava -x compileTestJava ... |
스프링 부트 관련 설정 검증 |
./gradlew rewriteDryRun -Drewrite.activeRecipe=skt.mno.mpai.mps.MpsSwagger2ToOpenApi3Annotations ... |
Swagger 관련 설정 검증 |
./gradlew rewriteRun -Drewrite.activeRecipe=org.openrewrite.java.spring.boot3.SpringBootProperties_3_5,skt.mno.mpai.mps.MpsSpringBoot3BackendServicesAll ... |
스프링 부트 관련 설정 적용 |
./gradlew rewriteRun -Drewrite.activeRecipe=skt.mno.mpai.mps.MpsSwagger2ToOpenApi3Annotations ... |
Swagger 관련 설정 적용 |
Spring Boot 3.5.9 업그레이드
build.gradle의 의존성을 3.5.9로 올린다.
Swagger → OpenAPI 의존성 변경
dependencies {
// implementation 'io.swagger:swagger-annotations:1.6.2' // 삭제
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.15' // 추가
}QueryDSL 버전 변경
ext { querydslVersion = "7.1" }
dependencies {
implementation "io.github.openfeign.querydsl:querydsl-jpa:${querydslVersion}"
annotationProcessor "io.github.openfeign.querydsl:querydsl-apt:${querydslVersion}:jpa"
annotationProcessor "jakarta.persistence:jakarta.persistence-api:3.1.0"
annotationProcessor "jakarta.annotation:jakarta.annotation-api:2.1.1"
}컴파일 및 정리
./gradlew compileJava -x test
./gradlew cleanAll
./gradlew generateConsumeSpec
./gradlew generateProvideSpecOpenRewrite 적용 후 설정 제거, bak 디렉터리로 구 파일 이동, .gitignore에 /src/generated 추가한다.
댓글
첫 번째 댓글을 남겨보세요.