この記事では、Copilot CLI の GitHub Copilot モダン化 プラグインを使用してJava開発者がアプリケーションを最新化する方法の概要について説明します。 このアプローチを使用することで、開発者はコードの場所を問わずアプリケーションを最新化できます。 このプラグインは、アップグレードや移行からデプロイまで、シームレスでエンドツーエンドのエクスペリエンスを提供し、チームが変革を加速し、生産性を高め、自信を持ってアプリケーションを最新のプラットフォームに移行するのに役立ちます。
注
GitHub Copilot CLI は、GitHub Copilot Pro、GitHub Copilot Pro+、GitHub Copilot Business、GitHub Copilot Enterprise プランで使用できます。 組織からCopilotを受け取る場合は、組織の設定で Copilot CLI ポリシーを有効にする必要があります。
Copilot CLI を使用して最新化を行うことで、IDE に切り替える必要なく、ターミナルから直接モダン化タスクを実行できます。 このアプローチでは、対話型の人間のループワークフローとバッチ ワークフローの両方がサポートされます。
実行可能事項
| 能力 | Description |
|---|---|
| Java アップグレード | Javaバージョン (8 → 11 → 17 → 21 → 25) をアップグレードし、Spring Boot 2.x を 3.x に移行し、javax を jakarta に移行し、非推奨の API を使用する |
| Azure移行 | Java アプリケーションを評価し、Azure サービス (Azure Service Bus、Azure SQL、Redis、Azure Key Vault、Application Insights、マネージド ID) に移行する |
| CVE と脆弱性の修正 | Log4j、Spring、Jackson、OWASP 依存関係分析など、Maven 依存関係の CVE の脆弱性をスキャンして修正する |
| アプリケーションの再設計 | モノリスからマイクロサービスへの分解、レガシ UI の最新化、モジュールの抽出などの構造の書き換え |
| Azure に配置する | アップグレードまたは移行されたJava アプリケーションをAzureに直接デプロイする |
[前提条件]
- GitHub Copilot CLI。
- GitHub Copilot サブスクリプション。 詳細については、「Copilot プランを参照してください。
- Node.js バージョン22以降。
注
Azure アカウントは、リソースをAzureにデプロイする場合にのみ必要であり、コードを変更するためにGitHub Copilotモダン化を使用する場合は必要ありません。
プラグインをインストールする
マーケットプレースを追加し、プラグインをインストールします。
copilot plugin marketplace add microsoft/github-copilot-modernization copilot plugin install github-copilot-modernization@github-copilot-modernizationインストールされているプラグインを一覧表示して、プラグインがインストールされていることを確認します。
/plugin list一覧に
github-copilot-modernization@github-copilot-modernizationが表示されます。
ヒント
新しいバージョンが利用可能になったときにプラグインを更新するには、次のコマンドを実行します。
copilot plugin update github-copilot-modernization@github-copilot-modernization
モダン化タスクを開始する
オプション 1: エージェントから直接開始する
Java プロジェクト フォルダーに移動し、モダン化エージェントCopilot CLI を開始します。
cd /path/to/your/java-app
copilot --agent=github-copilot-modernization:modernize
オプション 2: Copilot CLI 内でエージェントを選択する
既に Copilot CLI セッションに参加している場合は、/agent コマンドを使用してモダン化エージェントに切り替えます。
/agent
一覧から modernize を選択します。
Important
最新化のプロンプトを実行する前に、 github-copilot-modernization:modernize エージェントを選択する必要があります。 エージェントを選択せずに、Copilot CLI は既定のエージェントを使用します。これは、プラグインによって提供される完全なマルチエージェント オーケストレーションと特殊な移行機能を使用することはできません。
モダン化プロンプトを実行する
エージェントがアクティブになったら、自然言語で必要なものを説明します。
modernize my application
または、より具体的に指定します。
upgrade this app to Java 21 and Spring Boot 3.2
migrate this Spring Boot app to Azure
fix CVE vulnerabilities in my project
無人実行の場合は、 --allow-all フラグを使用します。
copilot --agent=github-copilot-modernization:modernize --allow-all
ワークフローのしくみ
プラグインは、自動的に実行される 3 フェーズ ワークフローを使用します。 各フェーズを手動で呼び出す必要はありません。オーケストレーターは、要求に基づいてルーティングを処理します。
フェーズ 1: 評価
- 指定したパスJavaアプリケーションを検出します。
- 依存関係、フレームワーク、およびJavaバージョンを分析します。
- 最新化の機会とリスクを特定します。
- 結果を
.github/modernize/assessment/に保存します。
フェーズ 2: 計画
- 評価結果を読み込みます。
- 実行可能タスク プランを生成します。
- プランを
.github/modernize/<app>/plan.mdしてtasks.jsonに保存します。
フェーズ 3: 実行
- タスクの種類に基づいて、特殊な Executor エージェントにタスクをルーティングします。
- 各 Executor は、移行パターンについてナレッジ ベースを照会します。
- 失敗した場合の自動再試行で進行状況を監視します。
- レビュー用のタスクごとの詳細なコミットを作成します。
オーケストレーターは、意図に応じて複数のエントリ ポイントをサポートします。
| Workflow | 有効になるとき | 何が起きるか |
|---|---|---|
| 広範な意図 | "アプリケーションの最新化" | フル評価→計画→実行パイプライン |
| 特定のタスク | "Java 21 へのアップグレード" | 評価をスキップし、計画→実行に直接進みます |
| 既存のプランを実行する | "プランの実行" | 評価と計画をスキップし、既存のプランを実行します |
| ヘッドレス |
--allow-all を使用した無人実行 |
ユーザー プロンプトのない広範な意図と同じ |
一般的なシナリオ
Java アプリケーションをアップグレードする
Java アプリケーションを新しいランタイムまたはフレームワーク のバージョンにアップグレードするには、次の例を使用します。
copilot --agent=github-copilot-modernization:modernize
upgrade this project to JDK 21 and Spring Boot 3.2
次のスクリーンショットに示すように、アップグレード計画の生成、コード修復の実行、プロジェクトのビルド、脆弱性のチェックなど、モダン化タスクが実行されます。
プロジェクトは JDK 21 と Spring Boot 3.2 に正常にアップグレードされ、アップグレードの概要が表示されます。
Java アプリケーションを Azure に移行する
Java アプリケーションをAzureに移行するには、次の例に示すように、移行シナリオについて説明します。 定義済みの移行タスクの詳細については、「Java 開発者向け GitHub Copilot の最新化のための定義済みタスク」を参照してください。
copilot --agent=github-copilot-modernization:modernize
migrate this application from S3 to Azure Blob Storage
このプロンプトでは、移行タスクが実行され、Copilot CLI で進行状況が表示されます。
プロジェクトが Microsoft Azure Blob Storage に正常に移行されると、移行の概要が表示されます。
Java アプリケーションを Azure にデプロイする
アプリケーションをアップグレードまたは移行した後、次の例を使用して、Copilot CLI から直接デプロイできます。
copilot --agent=github-copilot-modernization:modernize
Scan my project and help me plan how to containerize my application using the #appmod-get-containerization-plan tool. Execute the plan. The end goal is to have Dockerfiles that are able to be built.
このプロンプトを使用すると、デプロイ タスクが実行され、Copilot CLI に進行状況が表示されます。
プロジェクトが正常に配置されると、配置の概要が表示されます。
Troubleshooting
プラグインが見つかりません
# Verify marketplace is added
copilot plugin marketplace list
# Re-add the marketplace if needed
copilot plugin marketplace add microsoft/github-copilot-modernization
# Reinstall
copilot plugin install github-copilot-modernization@github-copilot-modernization
評価に失敗する: Javaアプリケーションが見つかりません
- プロジェクト ルートに
pom.xmlまたはbuild.gradleが存在するかどうかを確認します。 - Copilot CLI を起動する前に、正しいディレクトリにいることを確認してください。
MCP サーバーの問題
プラグインは、その構成で定義されている MCP サーバーを使用します。 問題が発生した場合は、プラグインを再インストールして MCP 構成をリセットしてみてください。
フィードバックを提供する
GitHub Copilotモダン化 プラグインに関するフィードバックがある場合は、 github-copilot-appmod リポジトリで問題を作成します。