翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 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 と言語レベルの設定を更新する手順は次のとおりです。
-
JetBrains IDE で、[File] を選択し、次に [Project Structure] を選択します。
-
[Project Structure] ウィンドウが開きます。[Project Settings] で [Modules] を選択します。
-
プロジェクト JDK を更新するには、[SDK] の横にあるドロップダウンリストから選択します。
-
プロジェクト言語を更新するには、[Language level] の横にあるドロップダウンから選択します。
-
-
[Project Settings] で [Modules] を選択します。
-
モジュール JDK を更新するには、[SDK] の横にあるドロップダウンリストから選択します。
-
モジュール言語を更新するには、[Language level] の横にあるドロップダウンから選択します。
-
詳細については、JetBrains ドキュメントの「Project structure settings
Maven 設定を更新する
Maven Runner JRE を更新するには、次の手順を実行します。
-
JetBrains IDE で歯車アイコンをクリックし、表示されるメニューで [Settings] を選択します。
-
[Settings] ウィンドウで、[Build, Execution, Deployment]、[Build Tools]、[Maven]、[Runner] の順に選択します。
-
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: プロジェクトを設定する」と「トラブルシューティング」を確認します。
注記
クライアント側のビルドでは安定したネットワーク接続が必要であるため、コード変換中にローカルマシンをオフまたは閉じないでください。
コードプロジェクトまたはコードモジュールの言語バージョンをアップグレードするには、以下のステップを実行します。