この記事では、GitHub Copilot アプリのモダン化 - Java のアップグレード (プレビュー) の概要について説明します。
企業は開発サイクルを通じて技術的負債を処理することが多く、アップグレードは一般的なタスクです。 Java ランタイム、フレームワーク、依存関係をアップグレードするには、かなりの時間とリソースが必要な場合があります。
GitHub Copilot アプリのモダン化 - Java のアップグレード (プレビュー) は、Java アプリの更新を支援するように設計された AI ベースのソリューションです。 このツールでは、AI を使用して次のタスクを実行します。
- プロジェクトとその依存関係を分析し、アップグレード計画を提案します。
- 計画を実行してプロジェクトを変換します。
- 進行中の問題を自動的に修正します。
- コミット、ログ、出力など、すべての詳細を報告します。
- アップグレード後に、一般的な脆弱性と露出 (CVE) のセキュリティの脆弱性とコードの不整合のチェックを実行します。
- ファイルの変更、更新された依存関係、修正された問題などの概要を表示します。
- アップグレード プロセスとは別に単体テスト ケースを生成します。
このツールは、GitHub Copilot の AI を利用した機能を OpenRewrite などのオープンソース ツールと統合して、複雑なアップグレード手順を自動化します。 Maven プロジェクトと Gradle プロジェクトの両方をサポートし、Java バージョン 8、11、17、および 21 の間のアップグレードをターゲットにします。 このツールは、Spring Boot フレームワークを使用するアプリケーションの最新化に特に重点を置きます。 アップグレード プロセスでは、すべてのログと出力を表示することで、制御が維持され、透明性が確保されます。
次のビデオでは、GitHub Copilot アプリのモダン化 - Java のアップグレード (プレビュー) を使用して Java Spring アプリのバージョンをアップグレードする方法を示します。
一般的なユース ケース
GitHub Copilot アプリのモダン化 - Java のアップグレード (プレビュー) は、次のユース ケースで使用できます。
- Java ランタイム バージョンをアップグレードします。 アプリケーションを Java 8 または 11 から Java 17 や 21 などの新しいバージョンにシームレスにアップグレードします。
- 新しいフレームワーク バージョンにアップグレードします。 Spring Boot 2.7 から 3.2 などのバージョンに移行し、破壊的変更をインテリジェントに処理します。
- CVE の脆弱性を検出します。 アップグレード プロセス中にサードパーティの依存関係の既知のセキュリティ脆弱性を検出して解決します。
- コードの動作の一貫性を確保します。 動作の不整合を検出して解決することで、アプリケーションがアップグレード後に同じように動作することを確認します。
- テスト カバレッジが低いプロジェクトの単体テスト ケースを生成します。 単体テスト生成ツールは、アップグレード プロセスとは別に単体テスト ケースを作成できます。
アプリを Azure に移行するのに役立つ別のツールもあります。 GitHub Copilot App Modernization for Java (プレビュー) は、コードの評価と修復を提供し、1 つのソリューションでビルドを成功させ、開発者のスピード、品質、自信を高める AI を活用したツールです。 詳細については、 GitHub Copilot App Modernization for Java (プレビュー) を参照してください。
概念
GitHub Copilot アプリのモダン化 - Java のアップグレード (プレビュー) は、Visual Studio Code 内のガイド付きマルチフェーズ アップグレード ワークフローに従います。 次のセクションでは、ツールの動作の概念モデルを示します。
1. 最初の指示
Visual Studio Code のエージェント モード ( Java プロジェクトを Java 17 にアップグレードする、Spring Boot 3.2 など) で最初のプロンプトを表示します。
2. プロジェクト分析
このプロンプトに基づいて、ツールは、ビルド ツール (Maven または Gradle - JDK バージョン)、依存関係など、ワークスペース内の現在の Java プロジェクトの構造を評価します。
次に、 plan.md ファイルに 初期アップグレード計画が生成され、計画された変更の概要が示されます。
3. カスタマイズを計画する
この手順では、アップグレード計画を確認および編集して、JDK、フレームワーク、またはサード パーティ製ライブラリのターゲット バージョンを調整できます。 プランを確認すると、アップグレードが開始されます。
4. コード変換の自動化
コード変換が行われる場所を次に示します。 この変換は、主に次の 2 つの主要な手順で構成されます。
- このツールでは、まず OpenRewrite というオープン ソース ツールを使用してコード変換を適用します。
- 残りの問題がある場合、GitHub Copilot は、これ以上問題が発生しない限り、これらの問題に動的に対処します。
このプロセス中、開発者は progress.md ファイルを使用して進行状況を直接確認できます。
5. 検証
前のフェーズが完了すると、ツールは次のチェックを含む追加のチェックを実行します。
- 更新された依存関係の CVE セキュリティの脆弱性。
- コードの動作が変更されます。
このツールは、検出された問題の解決を自動的に試行し、修正プログラムを確認して承認できるようにします。
6. 最終的な検証と概要
検証フェーズが完了すると、ツールによって最終的なチェックが実行され、最終的な概要が表示されます。 このフェーズでは、ツールは次のタスクを実行します。
- プロジェクトを再構築し、検証チェックを再実行します。
- 依存関係の変更、ファイルの相違、コミット ログなど、 summary.md ファイルの包括的なアップグレードの概要を提供します。
GitHub Copilot アプリのモダン化 - Java のアップグレード (プレビュー) は、Java のアップグレードから手動作業と推測作業の多くを削除して、従来のコードベースを最新化するためのより安全かつ迅速なパスを提供することで、ユーザーを支援するように設計されています。
次のステップ
クイック スタート: GitHub Copilot アプリのモダン化を使用して Java プロジェクトをアップグレードする - Java のアップグレード (プレビュー)