翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
がどのように Amazon Q Developer Agent for code transformation 仕組み
コードを変換するには、Amazon Q Developer Agent for code transformation は、プロジェクトのコード言語バージョンのアップグレードに使用する変換プランを生成します。コードを変換すると、変換の概要とファイル差分が表示され、変更を受け入れる前に変更を確認できます。以下のセクションでは、Amazon Q が変換を実行する方法について詳しく説明します。
コードの構築と変換プランの作成
コードの変換を開始するために、Amazon Q はプロジェクトをローカルで構築し、ソースコード、プロジェクトの依存関係、ビルドログを含むビルドアーティファクトを生成します。
ビルドアーティファクトを生成した後、Amazon Q は安全なビルド環境でコードを構築し、アップグレードするプロジェクトまたはモジュールに合わせてカスタマイズされた変換プランを作成します。変換計画では、Amazon Q が行おうとする特定の変更点の概要を説明します。これには、新しい依存関係バージョン、主要なコード変更、廃止されたコードの推奨される置き換えが含まれます。これらの変更は、コードの予備ビルドに基づいており、変換中に変更される可能性があります。
コードの変換
コードを変換するために、Amazon Q は変換プランで提案された変更に基づいてコードをアップグレードしようとします。変更を加えると、ソースコード内の既存のユニットテストを再構築して実行し、発生したエラーを繰り返し修正します。
Amazon Q は、コードをアップグレードするときに次の変更を試みます。
-
Java 17 の推奨事項に従って、廃止されたコードコンポーネントを更新する
-
一般的なライブラリとフレームワークを Java 17 と互換性のあるバージョンにアップグレードします。これには、次のライブラリとフレームワークを最新の利用可能なメジャーバージョンに更新することが含まれます。
-
Apache Commons IO
-
Apache HttpClient
-
bc-fips
-
キュウリ-JVM
-
休止
-
jackson の注釈
-
JakartaEE
-
Javax
-
javax.servlet
-
jaxb-api
-
jaxb-impl
-
jaxen
-
jcl-over-slf4j
-
json-simple
-
jsr305
-
ジャンティット
-
junit-jupiter-api
-
Log4j
-
マイクロノー
-
モキト
-
モキトコア
-
オキオ
-
PowerMockito
-
クアルカス
-
slf4j
-
slf4j-api
-
スプリングブート
-
スプリングフレームワーク
-
春のセキュリティ
-
スワッガー
-
テスト
-
変換の概要を確認し、変更を受け入れる
変換が完了すると、Amazon Q は、プロジェクト全体がアップグレードされたかどうかを示す最終ビルドのステータスなど、変更の詳細を含む変換の概要を提供します。また、ビルドログの概要を表示して、Amazon Q がアップグレードされたバージョンでコードを構築できない問題を把握することもできます。
変換の概要には、変換プランで提案された変更と、コードのアップグレードのために最終的に Amazon Q が行った変更の違い、および元のプランにない追加の変更も含まれます。
変換の概要を確認したら、Amazon Q が提案している変更をファイル差分ビューで表示できます。Amazon Q が提案するコード変更は、変更を受け入れるまで現在のプロジェクトファイルには影響しません。変換されたコードは、変換の完了から最大 24 時間後に使用できます。
部分的に成功した変換の完了
コードベースの複雑さと詳細によっては、変換が部分的に成功するインスタンスがある場合があります。これは、Amazon Q がプロジェクト内の特定のファイルまたはコード領域のみを変換できたことを意味します。この場合、更新された言語バージョンで構築できるように、プロジェクトの残りのコードを手動で更新する必要があります。
残りのコードを変換するには、 で Amazon Q チャットを使用できますIDE。Amazon Q に部分的に更新されたファイルを確認し、コンパイルエラーなどの問題に対処するための新しいコードを提供するように依頼できます。また、 /devや などの機能を使用して、より多くのプロジェクト@workspaceをコンテキストとして含め、一度に複数のファイルの提案を取得することもできます。