Amazon Q Developer を使用した Java バージョンのアップグレード - Amazon Q Developer

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon Q Developer を使用した Java バージョンのアップグレード

Amazon Q Developer は、統合開発環境 (IDE) で Java アプリケーションを新しい言語バージョンにアップグレードできます。Amazon Q がコードをアップグレードするために実行できる変更には、廃止されたコードコンポーネントと APIs の更新、コード内のライブラリ、フレームワーク、その他の依存関係のアップグレードが含まれます。

コードを変換するために、Amazon Q はまずソース言語バージョンでコードを構築し、変換の実行に必要な情報があることを確認します。Amazon Q がコードを正常に変換したら、IDE で変更を検証して受け入れます。Amazon Q Developer は、アップグレードされたコードをターゲット JDK と互換性を持たせるために必要な最小限の変更を行うため、プロジェクトのライブラリと依存関係をアップグレードするには追加の変換が必要です。Amazon Q がコードを変換する方法の詳細については、「」を参照してくださいAmazon Q Developer が Java 言語アップグレードのコードを変換する方法

サポートされている Java のアップグレードと IDEs

Amazon Q は現在、変換用に次の Java ソースコードバージョンとターゲットバージョンをサポートしています。コードを同じ Java バージョンに変換するには、ソースコードバージョンのライブラリやその他の依存関係のアップグレードが含まれます。

サポートされている Java のアップグレード
ソースコードのバージョン サポートされているターゲットバージョン
Java 8 Java 17 および Java 21
Java 11 Java 17 および Java 21
Java 17 Java 17 および Java 21
Java 21

Java 21

Amazon Q は、次の IDEs で Java アップグレードをサポートしています。

  • IDEs JetBrains のモジュール

  • のプロジェクトとワークスペース Visual Studio Code

ステップ 1: 前提条件

続行する前に、「IDE で Amazon Q のセットアップ」の手順が完了していることを確認してください。

コード変換ジョブを開始する前に、以下の前提条件を満たしていることを確認します。

  • プロジェクトはサポートされているJavaバージョンで記述され、 上に構築されますMaven。

  • プロジェクトは IDE Mavenで を使用して正常に構築されます。 Maven 3.8 以降は現在サポートされています。

  • プロジェクトソース JDK がローカルで利用可能で、ソースコードのバージョンである。例えば、Java 8 コードを変換する場合、ローカルの JDK インストールは JDK 8 である必要があります。

  • プロジェクトのビルドが 55 分以内に完了する。

  • プロジェクトが正しく設定され、正しい JDK バージョンが指定されている。詳細については、「ステップ 2: プロジェクトを設定する」を参照してください。

  • プロジェクトが仮想プライベートクラウド (VPC) やオンプレミスネットワークなど、プライベートネットワーク上のリソースへのアクセスを必要としない。例えば、プロジェクトにネットワーク内のデータベースに接続するユニットテストが含まれている場合、変換は失敗します。

  • プロジェクトが Java プロジェクトで Java 以外の言語をパッケージ化するプラグインを使用していない。例えば、Java ソースコードに加えて、フロントエンド JavaScript コードを実行するために frontend-maven-plugin を使用している場合、変換は失敗します。

  • ローカルネットワークで、Amazon Q がコードの変換に使用する Amazon S3 バケットへのアップロードが許可されている。詳細については、「Allow access to Amazon S3 buckets in data perimeters」を参照してください。

ステップ 2: プロジェクトを設定する

プロジェクトを設定するには、使用している IDE に応じて次の情報を使用します。

JetBrains でプロジェクトを設定する

JetBrains でプロジェクトを設定するには、次のプロジェクト設定とモジュール設定を指定する必要があります。

モジュールがプロジェクトと同じ JDK と言語レベルを使用している場合は、モジュール設定を更新する必要はありません。

  • Project SDK – プロジェクトのコンパイルに使用される JDK。

  • Project language level – プロジェクトで使用される Java バージョン。

  • Module SDK – モジュールをコンパイルするために使用される JDK。

  • Module language level – モジュールで使用される Java バージョン。

  • Maven Runner JRE – モジュールのビルドに使用する JDK。

プロジェクト設定とモジュールの設定を更新する

プロジェクトまたはモジュールの SDK と言語レベルの設定を更新する手順は次のとおりです。

  1. JetBrains IDE で、[File] を選択し、次に [Project Structure] を選択します。

  2. [Project Structure] ウィンドウが開きます。[Project Settings][Modules] を選択します。

    1. プロジェクト JDK を更新するには、[SDK] の横にあるドロップダウンリストから選択します。

    2. プロジェクト言語を更新するには、[Language level] の横にあるドロップダウンから選択します。

  3. [Project Settings] で [Modules] を選択します。

    1. モジュール JDK を更新するには、[SDK] の横にあるドロップダウンリストから選択します。

    2. モジュール言語を更新するには、[Language level] の横にあるドロップダウンから選択します。

詳細については、JetBrains ドキュメントの「Project structure settings」と「Module structure settings」を参照してください。

Maven 設定を更新する

Maven Runner JRE を更新するには、次の手順を実行します。

  1. JetBrains IDE で歯車アイコンをクリックし、表示されるメニューで [Settings] を選択します。

  2. [Settings] ウィンドウで、[Build, Execution, Deployment][Build Tools][Maven][Runner] の順に選択します。

  3. JRE フィールドで、変換するモジュールの構築に使用する JDK を選択します。

VS Code でプロジェクトを設定する

VS Code でプロジェクトを設定するには、プロジェクトに以下が含まれている必要があります。

  • プロジェクトルートフォルダの pom.xml ファイル

  • プロジェクトディレクトリの .java ファイル

プロジェクトに Maven ラッパー実行可能ファイル (macOS の場合は mvnw、Windows の場合は mvnw.cmd) が含まれている場合は、それがプロジェクトのルートにあることを確認してください。Amazon Q はこのラッパーを使用します。他の Maven の設定は必要ありません。

Maven ラッパーを使用しない場合は、Maven をインストールします。詳細については、Apache Maven ドキュメントの「Installing Apache Maven」を参照してください。

Maven をインストールしたら、PATH 変数に追加します。詳細については、「Maven を PATH に追加するにはどうすればよいですか? Your Java runtime variable should also be pointing to a JDK and not to a JRE」を参照してください。設定が正しいことを確認するには、mvn -v を実行します。出力には、Maven のバージョンと、JDK へのパスを指す runtime 変数が表示されます。

ステップ 3: 依存関係のアップグレードファイルを作成する (オプション)

依存関係のアップグレードファイル、プロジェクトの依存関係を一覧表示する YAML ファイル、および変換中にアップグレードするバージョンを Amazon Q に提供できます。依存関係のアップグレードファイルを提供することで、Amazon Q がアップグレードについて認識していないサードパーティーとサードパーティーの依存関係を指定できます。

ファーストパーティの依存関係とは、組織が管理し、ローカルまたは組織のプライベートネットワークでのみ利用できるライブラリ、プラグイン、フレームワークを指します。Amazon Q は、ローカル環境でビルドを実行するときに、ファーストパーティの依存関係にアクセスできます。詳細については、「ローカル環境でのコードの構築」を参照してください。サードパーティーの依存関係は、公開されているか、組織に固有ではないオープンソースの依存関係です。

YAML ファイルでアップグレードするファーストパーティの依存関係を指定できます。Amazon Q は JDK アップグレード中にそれらをアップグレードします (Java 8 から 17 など)。最初の JDK アップグレード後に別の変換 (17~17 または 21~21) を開始して、サードパーティーの依存関係をアップグレードできます。

Amazon Q が最小限の JDK アップグレードを実行したら、別の変換を開始して、すべてのサードパーティーの依存関係をアップグレードできます。または、サードパーティーの依存関係とそのバージョンを YAML ファイルで指定して、ライブラリのアップグレード変換中にのみそれらの依存関係をアップグレードすることもできます。

Amazon Q では、変換中に依存関係のアップグレードファイルを指定するように求められます。指定する場合は、まず ファイルが正しく設定されていることを確認してください。YAML ファイルには、次のフィールドが必要です。

  • name - 依存関係のアップグレードファイルの名前。

  • description (オプション) - 依存関係のアップグレードファイルと変換の説明。

  • dependencyManagement - アップグレードする依存関係とプラグインのリストが含まれます。

  • dependencies - アップグレードするライブラリの名前とバージョンが含まれます。

  • plugins - アップグレードするプラグインの名前とバージョンが含まれます。

  • identifier - ライブラリ、プラグイン、またはその他の依存関係の名前。

  • targetVersion - アップグレード先の依存関係のバージョン。

  • versionProperty (オプション) - アプリケーションの pom.xml ファイルの properties タグで設定されている、定義する依存関係のバージョン。

  • originType - FIRST_PARTY または Third_PARTY のいずれかで指定された、依存関係がファーストパーティかサードパーティーか。

以下は、依存関係のアップグレード YAML ファイルの例と、Amazon Q が解析するために必要な設定です。

name: dependency-upgrade description: "Custom dependency version management for Java migration from JDK 8/11/17 to JDK 17/21" dependencyManagement: dependencies: - identifier: "com.example:library1" targetVersion: "2.1.0" versionProperty: "library1.version" # Optional originType: "FIRST_PARTY" - identifier: "com.example:library2" targetVersion: "3.0.0" originType: "THIRD_PARTY" plugins: - identifier: "com.example.plugin" targetVersion: "1.2.0" versionProperty: "plugin.version" # Optional originType: "THIRD_PARTY"

ステップ 4: コードを変換する

独自のコードを変換する前に、サンプルプロジェクトを変換して IDE が正しくセットアップされていることをテストすることをおすすめします。コード変換に使える GitHub プロジェクトの例が https://github.com/aws-samples/aws-appconfig-java-sample にあります。

IDE のセットアップをテストするには、サンプルプロジェクトをダウンロードして解凍し、IDE の次の手順を実行します。提案された変更と変換の概要を表示できる場合は、独自のコードプロジェクトを変換する準備ができています。変換が失敗するということは、IDE が正しく設定されていません。設定の問題に対処するには、「ステップ 2: プロジェクトを設定する」と「トラブルシューティング」を確認します。

注記

クライアント側のビルドでは安定したネットワーク接続が必要であるため、コード変換中にローカルマシンをオフまたは閉じないでください。

コードプロジェクトまたはコードモジュールの言語バージョンをアップグレードするには、以下のステップを実行します。

JetBrains
  1. JetBrains でアップグレードするモジュールを開きます。IDE でプロジェクトが正常にビルドされていることを確認します。

  2. Amazon Q ロゴを選択し、開いた Amazon Q チャットパネルに /transform と入力します。

  3. [アプリケーションの変換] ポップアップが表示されます。ドロップダウンリストからアップグレードするプロジェクトを選択し、[変換] を選択します。

  4. Amazon Q では、アップグレード依存関係ファイルを指定するように求められます。アップグレード先の依存関係とバージョンで YAML を設定している場合は、 ファイルを追加します。Amazon Q はファイルを検証して、正しく設定されていることを確認します。エラーが発生した場合は、「」で説明されている形式と必須フィールドを確認してくださいステップ 3: 依存関係のアップグレードファイルを作成する (オプション)

  5. Amazon Q が変換を開始します。進捗状況は、[変換の詳細] タブで確認できます。

  6. 変換が完了したら、プロジェクトを更新する前にアップグレードされたコードを確認できます。新しいコードを表示するには、[変換の詳細] タブに移動し、[差分の表示] を選択します。表示される [パッチを適用] ウィンドウでファイルを選択して、ソースコードとアップグレードされたコードを含む差分ビューを開きます。

  7. Amazon Q が加えた変更を受け入れるには、[差分の表示] を選択して [パッチを適用] ウィンドウを開きます。更新されたファイルをすべて選択し、[OK] を選択してプロジェクトを更新します。

  8. コードのアップグレード方法の詳細と次のステップの提案を確認するには、[変換の詳細] タブで [変換の概要を表示] を選択します。

Visual Studio Code
  1. VS Code でアップグレードするプロジェクトまたはワークスペースを開きます。プロジェクトが IDE で正常にビルドされていることを確認します。

  2. Amazon Q ロゴを選択し、開いた Amazon Q チャットパネルに /transform と入力します。

  3. IDE の上部にある検索バーからアップグレードするプロジェクトを選択します。

  4. Amazon Q でソースコードのバージョンが見つからない場合は、コードバージョンを選択するように求められます。ソースコードが書き込まれるバージョンを選択し、ポップアップで [変換] を選択して続行します。

  5. プロンプトが表示されたら、JDK への JAVA_HOME パスを入力します。プロジェクトの設定の詳細については、「VS Code プロジェクトを設定する」を参照してください。

  6. Amazon Q では、アップグレード依存関係ファイルを指定するように求められます。アップグレード先の依存関係とバージョンで YAML を設定している場合は、 ファイルを追加します。Amazon Q はファイルを検証して、正しく設定されていることを確認します。エラーが発生した場合は、「」で説明されている形式と必須フィールドを確認してくださいステップ 3: 依存関係のアップグレードファイルを作成する (オプション)

  7. Amazon Q が変換を開始します。[変換ハブ] タブで進捗状況を確認できます。

  8. 変換が完了すると、[変更案] タブが開きます。プロジェクトを更新する前にアップグレードされたコードを確認するには、[変更案をダウンロード] を選択します。ファイルを選択して、ソースコードとアップグレードされたコードを含む差分ビューを開きます。

  9. Amazon Q の変更を受け入れるには、[変更案] タブに移動し、[受け入れる] を選択します。

  10. コードのアップグレード方法の詳細と次のステップの提案を確認するには、[変換ハブ][ビューおよびその他のアクション] 省略記号ボタンをクリックし、[変換の概要を表示] を選択します。