翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon Q Developer が Java 言語アップグレードのコードを変換する方法
コードを変換するために、Amazon Q Developer はプロジェクトのコード言語バージョンのアップグレードに使用する変換プランを生成します。コードを変換すると、変換の概要とファイルの差分が表示され、変更を受け入れる前に内容を確認できます。Amazon Q Developer は、アップグレードされたコードをターゲット JDK と互換性を持たせるために必要な最小限の変更を行うため、プロジェクトのライブラリと依存関係をアップグレードするには追加の変換が必要です。以下のセクションでは、Amazon Q が変換を実行する方法について詳しく説明します。
コードをビルドし、変換プランを作成する
コードの変換を開始するために、Amazon Q はプロジェクトをローカルでビルドし、ソースコード、プロジェクトの依存関係、ビルドログを含むビルドアーティファクトを生成します。
ビルドアーティファクトを生成した後、Amazon Q は安全なビルド環境にコードをビルドし、アップグレードするプロジェクトまたはモジュールに合わせてカスタマイズされた変換プランを作成します。変換プランでは、Amazon Q が行おうとしている特定の変更点の概要が説明されます。これには、新しい依存関係バージョン、主要なコード変更、廃止されたコードの代替案が含まれます。こうした変更は、コードの予備ビルドに基づいており、変換中に変更される可能性があります。
コードを変換する
コードを変換するために、Amazon Q は変換プランで提案された変更に基づいてコードをターゲット Java バージョンにアップグレードしようとします。変更を行う際には、ソースコード内の既存のユニットテストを再ビルドして実行し、発生したエラーを繰り返し修正します。JDK のアップグレードは、次のソースコードバージョンからターゲットバージョンに行うことができます。
-
Java 8~17
-
Java 8~21
-
Java 11~17
-
Java 11~21
-
Java 17~21
Amazon Q Developer は、コードをターゲットの Java バージョンと互換性を持たせるために必要な最小限の変更を行います。Java 17 または 21 に正常にアップグレードした後、プロジェクトのライブラリと依存関係をアップグレードするには、追加の変換が必要です。同じソースコードバージョンとターゲットコードバージョン (17~17 など) を選択します。
Amazon Q は、コードをアップグレードする際に次の変更を試みます。
-
ターゲット Java バージョンの推奨事項に従って、非推奨のコードコンポーネントを更新する
-
一般的なライブラリとフレームワークを、ターゲットの Java バージョンと互換性のあるバージョンにアップグレードします。これには、次のライブラリとフレームワークを最新の利用可能なメジャーバージョンに更新することが含まれます。
-
Apache Commons IO
-
Apache HttpClient
-
bc-fips
-
Cucumber-JVM
-
休止
-
jackson-annotations
-
JakartaEE
-
Javax
-
javax.servlet
-
jaxb-api
-
jaxb-impl
-
jaxen
-
jcl-over-slf4j
-
json-simple
-
jsr305
-
junit
-
junit-jupiter-api
-
Log4j
-
Micronaut
-
Mockito
-
mockito-core
-
Okio
-
PowerMockito
-
Quarkus
-
slf4j
-
slf4j-api
-
Spring Boot
-
Spring Framework
-
Spring Security
-
Swagger
-
testng
-
変換の概要を確認し、変更を受け入れる
変換が完了すると、Amazon Q は、プロジェクト全体がアップグレードされたかどうかを示す最終ビルドのステータスなど、変更の詳細を含む変換の概要を用意します。ビルドログの概要を確認して、Amazon Q がアップグレードされたバージョンでコードをビルドできない原因となった問題を解明することもできます。
変換の概要には、変換プランの提案された変更とコードのアップグレードのために最終的に Amazon Q が行った変更の違い、元のプランになかった追加の変更についても記載されています。
変換の概要を確認したら、Amazon Q が提案している変更をファイル差分ビューで表示できます。Amazon Q が提案するコード変更は、変更を受け入れるまで現在のプロジェクトファイルには影響しません。変換されたコードは、変換完了後最大 30 日間使用できます。
部分的に成功した変換を完了する
コードベースの複雑さと詳細によっては、変換が部分的に成功する場合があります。これは、Amazon Q がプロジェクト内の特定のファイルやコード領域のみを変換できたことを意味します。この場合、更新された言語バージョンでビルドできるように、プロジェクトの残りのコードを手動で更新する必要があります。
残りのコードを変換するには、IDE で Amazon Q チャットを使用します。Amazon Q に部分的に更新されたファイルを確認し、コンパイルエラーなどの問題に対処するための新しいコードを提供するようにリクエストします。また、/dev や @workspace などの機能を使用して、コンテキストとして含めるプロジェクトを増やし、一度に複数のファイルの提案を取得することもできます。