この記事では、GitHub Copilot アプリの最新化によって生成される Java プロジェクトアップグレード計画をカスタマイズする方法について説明します。
アップグレード セッションを開始すると、GitHub Copilot によって、アップグレードに必要な手順とタスクの概要を示す plan.md ファイルが生成されます。 このファイルは、プロジェクトのニーズに合わせてカスタマイズできるアップグレード プロセスのブループリントとして機能します。
ツールによって plan.md ファイルが生成されると、Visual Studio Code エディターで自動的に開きます。 この段階では、プランを確認してカスタマイズし、特定のアップグレード目標に合わせて調整できます。
ファイル構造 plan.md 例
次のセクションでは、カスタマイズ ポイントを示すために、ファイル構造 plan.md サンプルについて説明します。
キー パラメーター
次のセクションでは、変更できるプランの主要なパラメーターについて説明します。
[ビルド ツール] コマンド オプション
このオプションは [プロジェクト情報]の下にあり、ビルド ツールを実行するためのカスタム コマンド ライン パラメーターを定義できます。 有効なオプションについては、プロジェクトに応じて Maven CLI または Gradle CLI のドキュメントを参照してください。
例 :
Maven の場合:
Build tool command options: -Dmaven.javadoc.skip=true -s "/path/to/custom/settings.xml"Gradle の場合:
Build tool command options: --info -Penv=production
注
必要に応じて、パスを実際の settings ファイルの場所に置き換えます。 このパスは単なる例です。
テスト検証
[追加タスク] セクションの下にある run tests before and after the upgrade フラグを変更することで、テストの実行を有効または無効にすることができます。
- アップグレードの前後に単体テストを有効にするには、
trueに設定します。 - テスト検証をスキップするには、
falseに設定します。
この設定は、アップグレード中にツールが単体テストを実行して機能の正確性を確認するかどうかを制御します。
これらの設定を調整することで、プロジェクトの要件に合わせてアップグレード プロセスを微調整できます。
アップグレードの目標をカスタマイズし、ガイドラインを提供する
Java のアップグレード シナリオでは、多くの場合、標準の JDK またはフレームワークのアップグレードを超えたカスタマイズが必要になります。たとえば、プロジェクト固有のコード変更を適用したり、ツールが自動的に検出しない内部ライブラリを更新したりします。 これらのニーズをサポートするために、GitHub Copilot アプリの最新化により、アップグレード 計画内でのカスタマイズが可能になりました。 この機能を使用すると、アップグレード プロセスをガイドする独自のレシピ、手順、入力を提供できます。 このカスタマイズは、 アップグレードの目標 と ガイドライン のセクションを変更することで実行できます。
[アップグレードの目標] セクション
[ アップグレードの目標] セクションで、最初のプロンプトで目標と共に、さらに多くのアップグレード ターゲットを指定できるようになりました。 たとえば、主なタスクがプロジェクトを Java 17 から Java 21 にアップグレードするが、プロジェクトで Log4j を 1.x から 2.x にアップグレードする必要がある場合は、次のプロンプトの例に示すように、追加の目標として一覧表示できます。
## Upgrade Goals
- Upgrade from Java 17 to 21
- Upgrade org.apache.logging.log4j:* to 2.24.3
- Upgrade org.internal.lib to 2.0
[ガイドライン] セクション
[ ガイドライン ] セクションでは、Copilot によるアップグレードの実行方法を定義します。 [アップグレードの目標] セクションではアップグレードする必要がある内容に焦点を当てていますが、[ガイドライン] セクションでは、コード変換中の Copilot の動作をガイドする方法論、規則、ツール、およびルールを取り上げます。
次の手順のように、Copilot がコードを変更する方法を指示するのに役立つ任意の手順を含めることができます。
- コードの変更に使用するツール、レシピ、またはフレームワークに関するガイダンス。
- 特定のアップグレード アプローチの制約または禁止。
- コード スタイルまたは規則の要件。
- エージェントがアクセスできる内部ファイル、ドキュメント、またはスクリプトへのリンク。
- エラーの修正やアップグレードの実行に役立つドメイン知識。
- エージェントがコードの変更に注釈を付ける方法またはコメントする方法に関する要件。
- アップグレード プロセス中に作成された一時的な成果物のクリーンアップ手順。
このセクションの内容は、Copilot がアクセスできる限り、プレーン テキスト、ハイパーリンク、またはローカル ファイルへの参照にすることができます。
例 :
## Guidelines
- Do not use Log4j 1 to Log4J 2 API bridge to upgrade to Log4J 2.
- Please follow the code conventions defined in /xxx/bbb/rules.txt.
- Please provide detailed comments explaining why each code change is necessary.
- "com.example:internal-lib:2.0.0" is compatible with Java 21.
- Use our internal MCP tool get_internal_lib_knowledge to retrieve compatibility information for internal libraries.
- After the upgrade, please remove any temporary files created during the process, such as code modification scripts.