メモ
GitHub Copilot app modernization – upgrade for Java は、現在パブリック プレビュー段階であり、変更される可能性があります。
はじめに
GitHub Copilot は、Java アプリケーションをアップグレードするプロセスを効率化するのに役立ちます。 "GitHub Copilot app modernization – upgrade for Java" Visual Studio Code 拡張機能は、Java プロジェクトのランタイムやフレームワークのバージョンをアップグレードするすべてのステップを支援します。
- プロジェクトとその依存関係を分析し、アップグレード プランを生成します。
- プランに基づいてコード変換を実行します。
- アップグレード中の問題を自動的に修正します。
- 詳細なログ、コミット履歴、出力を提供します。
- アップグレード後にセキュリティ スキャン (CVE) と動作の整合性チェックを実行します。
- 更新された依存関係や解決済みの問題といった主要な変更点の概要を表示します。
- アップグレード プロセスとは別に単体テストを生成します。
このソリューションでは、Maven と Gradle の両方のビルド ツールがサポートされ、Java バージョン 8、11、17、および 21 間のアップグレードが容易になります。
前提条件
始める前に、以下を用意する必要があります。
- GitHub Copilot Business または GitHub Copilot Enterprise サブスクリプション プランのいずれか。
- Visual Studio Code の最新バージョン。
- Visual Studio Code にインストールされている "GitHub Copilot app modernization – upgrade for Java (preview)" 拡張機能。
- ソース JDK とターゲット JDK の両方のインストール済みバージョン。
- Maven または Gradle を使用する Git ベースの Java プロジェクト。
- Maven ベースのプロジェクトの場合は、パブリック Maven Central Repository へのアクセス。
- Visual Studio Code 設定で
chat.extensionTools.enabled
がtrue
に設定されていることを確認します。 この設定は organization によって制御されている可能性があります。
メモ
Gradle プロジェクトでは、ラッパーベースのビルド (Gradle v5 以降) のみがサポートされます。 Kotlin DSL を使用するプロジェクトは現在サポートされていません。
Java プロジェクトのアップグレード
1.必要な拡張機能をインストールする
まず、Visual Studio Code 用の拡張機能 "GitHub Copilot app modernization – upgrade for Java (preview)" をインストールします。
- Visual Studio Code を開きます。
- [Extensions] をクリックします。
- "GitHub Copilot app modernization – upgrade for Java (preview)" を検索し、[Download] をクリックします。
- Visual Studio Code を再起動します。
2.エージェント モードで GitHub Copilot Chat を使ってアップグレード プランを生成する
拡張機能が追加されました。エージェント モードで GitHub Copilot を引き続き使用し、アップグレードのプランを作成できます。
-
Visual Studio Code で、GitHub Copilot Chat パネルを開きます。
-
チャット パネルの下部にあるモード ドロップダウンから [Agent] を選択します。
-
必要なアップグレード パスを説明するプロンプトを入力します。 次に例を示します。
「Upgrade project to Java 21 and Spring Boot 3.2」
-
メッセージが表示されたら、[Continue] をクリックしてアップグレード プランを生成します
3.アップグレード プランを確認して編集する
GitHub Copilot では、プロジェクトの構造、JDK、依存関係、ビルド ツールが分析されてから、ソースとターゲットの JDK のバージョンと、フレームワークとライブラリのアップグレード パスの概要を示す特定の状況の plan.md
アップグレード プランが生成されます。
- Visual Studio Code の新しい
plan.md
タブをクリックします。 - プランを確認し、必要に応じて編集します。 プランのバージョンが、目標や既に指定したものと一致していることを確認してください。
- 準備ができたら、[Continue] をクリックして進みます。
4. コードの変更を適用してビルドの問題を修正する
次に、GitHub Copilot がプロジェクトの変換を開始します。 この際、OpenRewrite を使用して定義済みのレシピによるコード変更を適用し、ビルド/修正ループを通じて Copilot の残り��問題を繰り返し修正します。
- "Run Upgrade Java code using OpenRewrite" というメッセージが表示されたら、[Continue] をクリックします。 このステップには時間がかかる場合があるので注意してください。
- "Run Build project and fix errors" というメッセージが表示されたら、[Continue] をクリックします。
このフェーズの進行状況は、Visual Studio Code で progress.md
ファイルを表示することで追跡できます。
5.セキュリティの脆弱性 (CVE) とコード動作の変更を確認する
信頼性とセキュリティを確保するため、GitHub Copilot は追加のチェックを実行します。
-
"Run Validate if any modified dependencies have known CVEs" というメッセージが表示されたら、[Continue] をクリックします。
CVE が検出された場合、Copilot はそれらを解決しようとします。 変更を確認して受け入れるか、または拒否することができます。
-
"Run Validate code behavior consistency" というメッセージが表示されたら、[Continue] をクリックします。
不整合が見つかった場合、Copilot は再び修正を試みるため、どちらを保持するかを決定できます。
このプロセスの最後に、ツールによってプロジェクトが再構築され、最終的な検証が 1 つ実行されます。 アップグレードを妨げない軽微な問題のみが残っている場合、このプロセスは終了します。 それ以外の場合は、未処理の問題に対処するためにループ バックします。
6.アップグレードの概要を表示する
アップグレードが完了すると、Copilot は、以下を含む summary.md
ファイルをプロジェクト ディレクトリに生成します。
- プロジェクト メタデータ。
- 変更されたコード行。
- 更新された依存関係。
- コード変更の説明。
- 解決された CVE と不整合。
- 残りの軽微な CVE の問題 (存在する場合)。