기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
마이그레이션 도구(미리 보기 릴리스)
는 Java 1.xSDK용 코드를 2.x로 자동 마이그레이션하는 데 도움이 되는 마이그레이션 도구를 AWS SDK for Java 제공합니다. 이 도구는 OpenRewrite
이제 도구를 미리 보기 릴리스로 사용할 수 있습니다. 이 도구는 AmazonS3Client 및 TransferManager 및 DynamoDBMapperAPIs와 같은 상위 수준을 제외한 모든 SDK 서비스 클라이언트를 지원합니다. 또한 이 도구에는 이 주제의 끝에 나열된 몇 가지 제한 사항이 있습니다.
마이그레이션 도구 사용
Maven 프로젝트 마이그레이션
아래 지침에 따라 Maven OpenRewrite 플러그인
-
Maven 프로젝트의 루트 디렉터리로 이동합니다.
터미널(명령줄) 창을 열고 Maven 기반 애플리케이션의 루트 디렉터리로 이동합니다.
-
플러그인의
rewrite-maven-plugin
명령을 실행합니다.두 가지 모드(Maven 목표)
dryRun
및 중에서 선택할 수 있습니다run
.dryRun
Mode(모드)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.
run
Mode(모드)플러그인을
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 플러그인
-
Maven 프로젝트의 루트 디렉터리로 이동합니다.
터미널(명령줄) 창을 열고 Gradle 기반 애플리케이션의 루트 디렉터리로 이동합니다.
-
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() } } } }
-
rewrite
명령을 실행합니다.Maven 플러그인과 마찬가지로
dryRun
또는run
모드에서 Gradle 플러그인을 실행할 수 있습니다.dryRun
Mode(모드)다음 예제에서는
dryRun
모드에서 플러그인을 호출하는 방법을 보여줍니다.gradle rewriteDryRun --init-script init.gradle \ -Drewrite.activeRecipes=software.amazon.awssdk.v2migration.AwsSdkJavaV1ToV2
run
Mode(모드)다음 예제에서는
run
모드에서 플러그인을 호출하는 방법을 보여줍니다.gradle rewriteRun --init-script init.gradle \ -Drewrite.activeRecipes=software.amazon.awssdk.v2migration.AwsSdkJavaV1ToV2
현재 제한 사항
현재 미리 보기 릴리스는 의 모든 기능을 지원하지 않습니다SDK. 추가 기능에 대한 지원이 곧 추가될 예정입니다.
이 도구는 현재 다음 기능을 지원하지 않습니다. 아래 목록의 링크를 클릭하면 코드를 수동으로 마이그레이션하는 데 도움이 되는 마이그레이션 정보로 이동합니다.
-
S3 클라이언트(AmazonS3Client ), 도구가 현재
putObject
및getObject
메서드를 지원함 -
S3 Transfer Manager(TransferManager)
-
S3 URI 구문 분석(AmazonS3URI)
-
DynamoDB 객체 매핑(DynamoDBMapper)
-
EC2 메타데이터 유틸리티(EC2MetadataUtils)
-
웨이터(AmazonDynamoDBWaiters)
-
IAM 정책 빌더(정책)
-
CloudFront 사전 서명(CloudFrontUrlSigner, CloudFrontCookieSigner)
-
S3 이벤트 알림(S3EventNotification)