728x90
반응형

개요

OpenRewrite는 소스 코드를 자동으로 리팩토링하고 마이그레이션할 수 있는 도구입니다. 이 문서에서는 OpenRewrite를 활용하여 다음과 같은 레시피를 적용해서 마이그레이션을 수행하는 방법을 설명합니다.

  • Spring Boot 3.X으로 마이그레이션
  • Java 17/21로 마이그레이션
  • Java 코드 자동 포맷팅

레시피 선택하기

OpenRewrite는 레시피라는 코드 변환 규칙 세트를 사용합니다. 이번에 살펴 볼 레시피는 다음과 같습니다.

1. Spring Boot 3.0 마이그레이션

Spring Boot 2.x 애플리케이션을 Spring Boot 3.0으로 업그레이드하기 위한 레시피입니다.

org.openrewrite.java.spring.boot3.UpgradeSpringBoot_3_0
 

관련 레시피 : https://docs.openrewrite.org/recipes/java/spring/boot3/upgradespringboot_3_0

2. Java 버전 마이그레이션

Java 17 마이그레이션

org.openrewrite.java.migrate.UpgradeToJava17
 

관련 레시피 : https://docs.openrewrite.org/recipes/java/migrate/upgradetojava17

Java 21 마이그레이션

org.openrewrite.java.migrate.UpgradeToJava21
 

관련 레시피 : https://docs.openrewrite.org/running-recipes/popular-recipe-guides/migrate-to-java-21

3. Java 코드 포맷팅

org.openrewrite.java.format.AutoFormat

관련 레시피 : https://docs.openrewrite.org/recipes/java/format/autoformat

적용 방법

OpenRewrite를 프로젝트에 적용하는 방법은 여러 가지가 있습니다. 여기서는 Gradle을 사용한 방법을 설명합니다.

방법 1: Gradle Init Script 사용

init.gradle 파일을 생성하고 다음 내용을 추가합니다

initscript {
    repositories {
        maven { url "<https://plugins.gradle.org/m2>" }
    }
    dependencies { classpath("org.openrewrite:plugin:latest.release") }
}
rootProject {
    plugins.apply(org.openrewrite.gradle.RewritePlugin)
    dependencies {
        rewrite("org.openrewrite:rewrite-java")
    }
    rewrite {
        // Java 코드 포맷팅 레시피
        activeRecipe("org.openrewrite.java.format.AutoFormat") 
        setExportDatatables(true)
    }
    afterEvaluate {
        if (repositories.isEmpty()) {
            repositories {
                mavenCentral()
            }
        }
    }
}
 

실행

./gradlew --init-script init.gradle rewriteRun

방법 2: Build.Gradle 사용

build.gradle 파일에 다음 내용을 추가합니다

 plugins {
    id("org.openrewrite.rewrite") version("7.2.1")
}

rewrite {
    // Java 코드 포맷팅 레시피
    activeRecipe("org.openrewrite.java.format.AutoFormat")
    setExportDatatables(true)
}

repositories {
    mavenCentral()
}
 

실행

./gradlew --init-script init.gradle rewriteRun

 

728x90
반응형

+ Recent posts