마이그레이션 도구(미리 보기 릴리스) - AWS SDK for Java 2.x

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

마이그레이션 도구(미리 보기 릴리스)

는 Java 1.xSDK용 코드를 2.x로 자동 마이그레이션하는 데 도움이 되는 마이그레이션 도구를 AWS SDK for Java 제공합니다. 이 도구는 OpenRewrite오픈 소스, 소스 코드 리팩터링 도구인 를 사용하여 마이그레이션을 수행합니다.

이제 도구를 미리 보기 릴리스로 사용할 수 있습니다. 이 도구는 AmazonS3ClientTransferManagerDynamoDBMapperAPIs와 같은 상위 수준을 제외한 모든 SDK 서비스 클라이언트를 지원합니다. 또한 이 도구에는 이 주제의 끝에 나열된 몇 가지 제한 사항이 있습니다.

마이그레이션 도구 사용

Maven 프로젝트 마이그레이션

아래 지침에 따라 Maven OpenRewrite 플러그인 도구를 사용하여 Java 1.x Maven 기반 프로젝트를 SDK 마이그레이션합니다.

  1. Maven 프로젝트의 루트 디렉터리로 이동합니다.

    터미널(명령줄) 창을 열고 Maven 기반 애플리케이션의 루트 디렉터리로 이동합니다.

  2. 플러그인의 rewrite-maven-plugin 명령을 실행합니다.

    두 가지 모드(Maven 목표) dryRun 및 중에서 선택할 수 있습니다run.

    dryRunMode(모드)

    dryRun 모드에서 플러그인은 콘솔 출력에 diff 로그와 target/rewrite 폴더에 rewrite.patch 이름이 지정된 패치 파일을 생성합니다. 소스 코드 파일에는 변경 사항이 없으므로 이 모드를 사용하면 변경 사항을 미리 볼 수 있습니다.

    다음 예제에서는 dryRun 모드에서 플러그인을 호출하는 방법을 보여줍니다.

    mvn org.openrewrite.maven:rewrite-maven-plugin:dryRun \ -Drewrite.recipeArtifactCoordinates=software.amazon.awssdk:v2-migration:<sdkversion>*-PREVIEW \ -Drewrite.activeRecipes=software.amazon.awssdk.v2migration.AwsSdkJavaV1ToV2

    *교체 <sdkversion> 2.x SDK 버전. Maven Central을 방문하여 최신 버전을 확인합니다.

    dryRun 모드의 콘솔 출력은 다음 출력과 유사해야 합니다.

    [WARNING] These recipes would make changes to project/src/test/resources/maven/before/pom.xml: [WARNING] software.amazon.awssdk.v2migration.AwsSdkJavaV1ToV2 [WARNING] software.amazon.awssdk.v2migration.UpgradeSdkDependencies [WARNING] org.openrewrite.java.dependencies.AddDependency: {groupId=software.amazon.awssdk, artifactId=apache-client, version=2.27.0, onlyIfUsing=com.amazonaws.ClientConfiguration} [WARNING] org.openrewrite.java.dependencies.AddDependency: {groupId=software.amazon.awssdk, artifactId=netty-nio-client, version=2.27.0, onlyIfUsing=com.amazonaws.ClientConfiguration} [WARNING] org.openrewrite.java.dependencies.ChangeDependency: {oldGroupId=com.amazonaws, oldArtifactId=aws-java-sdk-bom, newGroupId=software.amazon.awssdk, newArtifactId=bom, newVersion=2.27.0} [WARNING] org.openrewrite.java.dependencies.ChangeDependency: {oldGroupId=com.amazonaws, oldArtifactId=aws-java-sdk-s3, newGroupId=software.amazon.awssdk, newArtifactId=s3, newVersion=2.27.0} [WARNING] org.openrewrite.java.dependencies.ChangeDependency: {oldGroupId=com.amazonaws, oldArtifactId=aws-java-sdk-sqs, newGroupId=software.amazon.awssdk, newArtifactId=sqs, newVersion=2.27.0} [WARNING] These recipes would make changes to project/src/test/resources/maven/before/src/main/java/foo/bar/Application.java: [WARNING] software.amazon.awssdk.v2migration.AwsSdkJavaV1ToV2 [WARNING] software.amazon.awssdk.v2migration.S3GetObjectConstructorToFluent [WARNING] software.amazon.awssdk.v2migration.ConstructorToFluent [WARNING] software.amazon.awssdk.v2migration.S3StreamingResponseToV2 [WARNING] software.amazon.awssdk.v2migration.ChangeSdkType [WARNING] software.amazon.awssdk.v2migration.ChangeSdkCoreTypes [WARNING] software.amazon.awssdk.v2migration.ChangeExceptionTypes [WARNING] org.openrewrite.java.ChangeType: {oldFullyQualifiedTypeName=com.amazonaws.AmazonClientException, newFullyQualifiedTypeName=software.amazon.awssdk.core.exception.SdkException} [WARNING] org.openrewrite.java.ChangeMethodName: {methodPattern=com.amazonaws.AmazonServiceException getRequestId(), newMethodName=requestId} [WARNING] org.openrewrite.java.ChangeMethodName: {methodPattern=com.amazonaws.AmazonServiceException getErrorCode(), newMethodName=awsErrorDetails().errorCode} [WARNING] org.openrewrite.java.ChangeMethodName: {methodPattern=com.amazonaws.AmazonServiceException getServiceName(), newMethodName=awsErrorDetails().serviceName} [WARNING] org.openrewrite.java.ChangeMethodName: {methodPattern=com.amazonaws.AmazonServiceException getErrorMessage(), newMethodName=awsErrorDetails().errorMessage} [WARNING] org.openrewrite.java.ChangeMethodName: {methodPattern=com.amazonaws.AmazonServiceException getRawResponse(), newMethodName=awsErrorDetails().rawResponse().asByteArray} [WARNING] org.openrewrite.java.ChangeMethodName: {methodPattern=com.amazonaws.AmazonServiceException getRawResponseContent(), newMethodName=awsErrorDetails().rawResponse().asUtf8String} [WARNING] org.openrewrite.java.ChangeType: {oldFullyQualifiedTypeName=com.amazonaws.AmazonServiceException, newFullyQualifiedTypeName=software.amazon.awssdk.awscore.exception.AwsServiceException} [WARNING] software.amazon.awssdk.v2migration.NewClassToBuilderPattern [WARNING] software.amazon.awssdk.v2migration.NewClassToBuilder [WARNING] software.amazon.awssdk.v2migration.V1SetterToV2 [WARNING] software.amazon.awssdk.v2migration.V1GetterToV2 ... [WARNING] software.amazon.awssdk.v2migration.V1BuilderVariationsToV2Builder [WARNING] software.amazon.awssdk.v2migration.NewClassToBuilderPattern [WARNING] software.amazon.awssdk.v2migration.NewClassToBuilder [WARNING] software.amazon.awssdk.v2migration.V1SetterToV2 [WARNING] software.amazon.awssdk.v2migration.HttpSettingsToHttpClient [WARNING] software.amazon.awssdk.v2migration.WrapSdkClientBuilderRegionStr [WARNING] Patch file available: [WARNING] project/src/test/resources/maven/before/target/rewrite/rewrite.patch [WARNING] Estimate time saved: 20m [WARNING] Run 'mvn rewrite:run' to apply the recipes.

    runMode(모드)

    플러그인을 run 모드에서 실행하면 디스크의 소스 코드를 수정하여 변경 사항을 적용합니다. 명령을 실행하기 전에 소스 코드를 백업해야 합니다.

    다음 예제에서는 run 모드에서 플러그인을 호출하는 방법을 보여줍니다.

    mvn org.openrewrite.maven:rewrite-maven-plugin:run \ -Drewrite.recipeArtifactCoordinates=software.amazon.awssdk:v2-migration:<sdkversion>*-PREVIEW \ -Drewrite.activeRecipes=software.amazon.awssdk.v2migration.AwsSdkJavaV1ToV2

    *교체 <sdkversion> 2.x SDK 버전. Maven Central을 방문하여 최신 버전을 확인합니다.

    명령을 실행한 후 애플리케이션을 컴파일하고 테스트를 실행하여 변경 사항을 확인합니다.

Gradle 프로젝트 마이그레이션

아래 지침에 따라 OpenRewrite Gradle 플러그인 도구를 사용하여 Java 1.x 등급 기반 프로젝트를 SDK 마이그레이션합니다.

  1. Maven 프로젝트의 루트 디렉터리로 이동합니다.

    터미널(명령줄) 창을 열고 Gradle 기반 애플리케이션의 루트 디렉터리로 이동합니다.

  2. Gradle init 스크립트 생성

    디렉터리에 다음 내용이 포함된 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("software.amazon.awssdk:v2-migration:latest.release") } afterEvaluate { if (repositories.isEmpty()) { repositories { mavenCentral() } } } }
  3. rewrite 명령을 실행합니다.

    Maven 플러그인과 마찬가지로 dryRun 또는 run 모드에서 Gradle 플러그인을 실행할 수 있습니다.

    dryRunMode(모드)

    다음 예제에서는 dryRun 모드에서 플러그인을 호출하는 방법을 보여줍니다.

    gradle rewriteDryRun --init-script init.gradle \ -Drewrite.activeRecipes=software.amazon.awssdk.v2migration.AwsSdkJavaV1ToV2

    runMode(모드)

    다음 예제에서는 run 모드에서 플러그인을 호출하는 방법을 보여줍니다.

    gradle rewriteRun --init-script init.gradle \ -Drewrite.activeRecipes=software.amazon.awssdk.v2migration.AwsSdkJavaV1ToV2

현재 제한 사항

현재 미리 보기 릴리스는 의 모든 기능을 지원하지 않습니다SDK. 추가 기능에 대한 지원이 곧 추가될 예정입니다.

이 도구는 현재 다음 기능을 지원하지 않습니다. 아래 목록의 링크를 클릭하면 코드를 수동으로 마이그레이션하는 데 도움이 되는 마이그레이션 정보로 이동합니다.