[アップデート] Amazon Q Developer の Transform で Java 21 へのアップグレードがサポートされました
いわさです。
Amazon Q Devloper の Code Transformation 機能は、アプリケーションコードのランタイムバージョンや依存ライブラリのバージョンを解析し、コード含めてターゲットバージョンへのアップグレードを Amazon Q Developer が良い感じに自動実行してくれる機能です。
昨年の re:Invent 2024 で .NET なども対象に追加されましたが、もともとサポートされていた Java についてはアップグレード先が Java 17 のみという状況で、Java 18 以降のバージョンへのアップグレードは出来ない状態が続いていました。
こちらが先日のアップグレードで Java 21 へのアップグレードをサポートしました。
最新 LTS であり、リリースから 1 年半ほど経っていることもありアップグレードするなら Java 21 まで上げてしまいたいという方も多かったのではないでしょうか。
アップグレード方法については従来と変わらないですが、今回 Visual Studio Code の Q コンソールで適当なプロジェクトをアップグレードしてみましたのでその様子を紹介します。
使ったのは Maven の QuickStart テンプレートです。
Visual Studio Code で Amazon Q Developer の Transformation を実行
実行にあたって前提条件がいくつかあります。
Maven を使って構築・ビルドできること、ローカル環境に現行の対象 JDK バージョンがインストール済み、実行プロジェクトのルートに pm.xml が存在すること、などがあります。
例えば Visual Studio Code のワークスペースルートに pom.xml が存在しない場合は Q Developer が対象プロジェクトを見つけることが出来ません。フォルダ構成など前提条件に注意しましょう。
開始方法ですが Amazon Q メニューを開き「/transform」を入力・選択します。
プロジェクトが前提条件を満たし、変換できる状態であれば次のように現行とターゲットの Java バージョンを指定することができます。
今回のアップデートでこちらの Choose the target code version に 21 を指定できるようになりました。
バージョン指定後に、現行バージョンの JDK パスを指定するステップがあります。
Amazon Q がパスの確認方法なども教えてくれるのでそのとおり実施すれば OK です。
変換には少し時間がかかります。私が試した際には数分で完了しました。
ドキュメントには 55 分以内 と記載されています。
全ての変換ステップが完了した様子です。
どのコードが変換されたかなどを確認できるのと、summary.md が出力されるのでそちらで変換レポートを確認することができます。
こちらが出力された変換レポートです。
マークダウン形式で出力されるのでそのままプレビューしてみました。
junit 関係のモジュールが削除されていることが確認できます。
さいごに
本日は Amazon Q Developer の Transform で Java 21 へのアップグレードがサポートされたので使ってみました。
従来のサポートが Java 17 までということで見送っていた方はぜひ試してみてください。
21 へのアップグレード精度などについては十分評価出来てないのでそのあたりは別途検証してブログ化したいと思います。