[アップデート] Amazon Q Developer の Transform で Java 21 へのアップグレードがサポートされました

[アップデート] Amazon Q Developer の Transform で Java 21 へのアップグレードがサポートされました

Clock Icon2025.02.19

いわさです。

Amazon Q Devloper の Code Transformation 機能は、アプリケーションコードのランタイムバージョンや依存ライブラリのバージョンを解析し、コード含めてターゲットバージョンへのアップグレードを Amazon Q Developer が良い感じに自動実行してくれる機能です。

https://dev.classmethod.jp/articles/new-feature-amazon-q-code-transformation-now-available-preview/

昨年の re:Invent 2024 で .NET なども対象に追加されましたが、もともとサポートされていた Java についてはアップグレード先が Java 17 のみという状況で、Java 18 以降のバージョンへのアップグレードは出来ない状態が続いていました。
こちらが先日のアップグレードで Java 21 へのアップグレードをサポートしました。

https://aws.amazon.com/about-aws/whats-new/2025/02/amazon-q-developer-upgrade-java-21/

最新 LTS であり、リリースから 1 年半ほど経っていることもありアップグレードするなら Java 21 まで上げてしまいたいという方も多かったのではないでしょうか。
アップグレード方法については従来と変わらないですが、今回 Visual Studio Code の Q コンソールで適当なプロジェクトをアップグレードしてみましたのでその様子を紹介します。

使ったのは Maven の QuickStart テンプレートです。

330CBB5D-4E15-49B2-BFC3-DEDC13E6FA22.png

Visual Studio Code で Amazon Q Developer の Transformation を実行

実行にあたって前提条件がいくつかあります。
Maven を使って構築・ビルドできること、ローカル環境に現行の対象 JDK バージョンがインストール済み、実行プロジェクトのルートに pm.xml が存在すること、などがあります。

https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/code-transformation.html

例えば Visual Studio Code のワークスペースルートに pom.xml が存在しない場合は Q Developer が対象プロジェクトを見つけることが出来ません。フォルダ構成など前提条件に注意しましょう。

A96C65F1-B455-4742-B635-AEA685F825D3.png

開始方法ですが Amazon Q メニューを開き「/transform」を入力・選択します。

0A8FDE26-8DFB-45BE-8648-73FA8D515A3A.png

プロジェクトが前提条件を満たし、変換できる状態であれば次のように現行とターゲットの Java バージョンを指定することができます。
今回のアップデートでこちらの Choose the target code version に 21 を指定できるようになりました。

0C3A94AC-341E-42C5-A684-4A4C25D33908.png

バージョン指定後に、現行バージョンの JDK パスを指定するステップがあります。
Amazon Q がパスの確認方法なども教えてくれるのでそのとおり実施すれば OK です。

31B220BB-0416-4574-A7AB-36C6F691184D.png

変換には少し時間がかかります。私が試した際には数分で完了しました。
ドキュメントには 55 分以内 と記載されています。

284D6F58-38F4-43FE-9F58-349B492103C6.png

全ての変換ステップが完了した様子です。
どのコードが変換されたかなどを確認できるのと、summary.md が出力されるのでそちらで変換レポートを確認することができます。

6EE96ABC-A026-44E9-83CC-8D8B69D5A621.png

こちらが出力された変換レポートです。
マークダウン形式で出力されるのでそのままプレビューしてみました。
junit 関係のモジュールが削除されていることが確認できます。

29FEF18A-6C12-4EB5-984C-E4CC3A8DC832.png

さいごに

本日は Amazon Q Developer の Transform で Java 21 へのアップグレードがサポートされたので使ってみました。

従来のサポートが Java 17 までということで見送っていた方はぜひ試してみてください。
21 へのアップグレード精度などについては十分評価出来てないのでそのあたりは別途検証してブログ化したいと思います。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.