PARA/03_Resources/R001_개발_레퍼런스(참고문서)/Java-Spring-Gradle/05-7. OpenRewrite 적용 가이드.md

05-7. OpenRewrite 적용 가이드

개요

사전 조건

  • Java 17 적용
  • Gradle 8.14.3 적용
  • rewrite.yml 파일을 프로젝트 루트에 둔다.
  • gradle.properties의 JVM 메모리를 증설한다.
org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m

OpenRewrite 설정

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 generateProvideSpec

OpenRewrite 적용 후 설정 제거, bak 디렉터리로 구 파일 이동, .gitignore/src/generated 추가한다.

댓글

첫 번째 댓글을 남겨보세요.