Copilot CLI でGitHub Copilotモダン化を使用してJava アプリを最新化する

この記事では、Copilot CLIGitHub Copilot モダン化 プラグインを使用してJava開発者がアプリケーションを最新化する方法の概要について説明します。 このアプローチを使用することで、開発者はコードの場所を問わずアプリケーションを最新化できます。 このプラグインは、アップグレードや移行からデプロイまで、シームレスでエンドツーエンドのエクスペリエンスを提供し、チームが変革を加速し、生産性を高め、自信を持ってアプリケーションを最新のプラットフォームに移行するのに役立ちます。

GitHub Copilotモダン化プロンプトを示すGitHub Copilot CLI のスクリーンショット。

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に直接デプロイする

[前提条件]

Azure アカウントは、リソースをAzureにデプロイする場合にのみ必要であり、コードを変更するためにGitHub Copilotモダン化を使用する場合は必要ありません。

プラグインをインストールする

  1. マーケットプレースを追加し、プラグインをインストールします。

    copilot plugin marketplace add microsoft/github-copilot-modernization
    copilot plugin install github-copilot-modernization@github-copilot-modernization
    
  2. インストールされているプラグインを一覧表示して、プラグインがインストールされていることを確認します。

    /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

次のスクリーンショットに示すように、アップグレード計画の生成、コード修復の実行、プロジェクトのビルド、脆弱性のチェックなど、モダン化タスクが実行されます。

Java アップグレード シナリオでのタスクの実行を示すGitHub Copilot CLI のスクリーンショット。

プロジェクトは JDK 21 と Spring Boot 3.2 に正常にアップグレードされ、アップグレードの概要が表示されます。

Java アップグレードの概要を示す GitHub Copilot CLI のスクリーンショット.

Java アプリケーションを Azure に移行する

Java アプリケーションをAzureに移行するには、次の例に示すように、移行シナリオについて説明します。 定義済みの移行タスクの詳細については、「Java 開発者向け GitHub Copilot の最新化のための定義済みタスク」を参照してください。

copilot --agent=github-copilot-modernization:modernize
migrate this application from S3 to Azure Blob Storage

このプロンプトでは、移行タスクが実行され、Copilot CLI で進行状況が表示されます。

Java移行シナリオでの実行中のタスクを示すGitHub Copilot CLI のスクリーンショット。

プロジェクトが Microsoft Azure Blob Storage に正常に移行されると、移行の概要が表示されます。

Java移行の概要を示す GitHub Copilot CLI のスクリーンショット.

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 に進行状況が表示されます。

Java デプロイメントの詳細を示す GitHub Copilot CLI のスクリーンショット。

プロジェクトが正常に配置されると、配置の概要が表示されます。

Javaデプロイの概要を示す GitHub 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 リポジトリで問題を作成します。

次のステップ