springboot-migration について
既存の Spring Boot アプリケーションをアップグレードするチーム向けの移行スキルです。プロジェクトをスキャンして適用するガイドを選び、段階的な変更と各段階での検証を進めます。
主な機能
- 01ビルドファイルとソースコードをスキャン
- 02適用する移行作業を特定
- 03Boot、Modulith、Testcontainers のガイド
- 04変更を段階ごとに整理
- 05各段階の後に進捗を検証
活用シーン
- 01既存の Spring Boot プロジェクトを評価
- 02関連する依存関係のアップグレードを計画
- 03次の段階へ進む前に移行状況を検証
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ a-pavithraa/ springboot-skills-marketplace --skill springboot-migrationインストール後、Claude Code で/springboot-migrationを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/migration-overview.mdspring-boot-4-migration.mdspring-modulith-2-migration.mdtestcontainers-2-migration.mdscripts/scan_migration_issues.py詳細
Spring Boot の移行
目的
既存の Spring Boot アプリケーションを段階的にアップグレードする際に、このスキルを使用します。このスキルでは、移行スキャナー、Boot 4/Modulith 2/Testcontainers 2 のリファレンスガイド、変更を一度に詰め込みすぎない厳密な移行順序を活用できます。
重要なルール
- やみくもに移行しないでください。まずコードベースをスキャンしてください。
- すべての移行を一度に適用しないでください。段階的にアップグレードしてください。
- ユーザーがより限定的な対象を指定しない限り、このスキルでは Spring Boot 4、Spring Modulith 2、Testcontainers 2 を目標スタックとして扱ってください。Boot 4 の Java ベースラインは 17 です。新しいコンパイルターゲットには Java 25 を推奨しますが、移行に実際に必要な範囲を超えてアップグレードを強制しないでください。
- 各フェーズの後に検証し、問題が発生したら中止してください。
ワークフロー
ステップ 1:プロジェクトをスキャンする
計画や編集を始める前に、移行スキャナーを使用してください。プロジェクトにある pom.xml、build.gradle、または build.gradle.kts のいずれかに加え、Java ソース、プロパティファイル、Flyway のマイグレーションを読み取ります。
python3 "${CLAUDE_SKILL_DIR}/scripts/scan_migration_issues.py" /path/to/project
スキャン結果を使って、以下を特定してください。
- 現在の Spring Boot のバージョン
- スターターの名称変更が必要な箇所
- アノテーションとインポートの移行
- 設定の変更
- Spring Modulith との互換性
- Testcontainers との互換性
ステップ 2:適用する移行を特定する
コードベースに該当するリファレンスのみを読み込んでください。
| 移行 | 適用条件 | 参照先 |
|---|---|---|
| Spring Boot 4.0 | Boot 3.x から 4.x へのアップグレード | references/spring-boot-4-migration.md |
| Spring Modulith 2.0 | Modulith 1.x を既に使用している | references/spring-modulith-2-migration.md |
| Testcontainers 2.x | Testcontainers 1.x を既に使用している | references/testcontainers-2-migration.md |
| 複数の領域にまたがるシナリオと注意点 | 複数のアップグレードの計画 | references/migration-overview.md |
ステップ 3:移行を段階的に計画する
リファレンスガイドを使い、以下の順序で計画と実行を行ってください。
フェーズ 1:依存関係
pom.xmlまたはbuild.gradleを更新する- 必要に応じてスターターの名称を変更する
- 目標スタックに必要な依存関係を追加または削除する
- バージョンプロパティをそろえる
フェーズ 2:ソースコードの変更
- インポートとパッケージ名を更新する
- テストアノテーションを移行する
- Jackson 3 の問題を修正する
- 該当する場合は Testcontainers API の変更に対応する
フェーズ 3:設定
application.propertiesまたはapplication.ymlを更新する- Boot 4 のデフォルト設定を意図的に適用する
- 該当する場合は Spring Modulith のイベントストア設定を更新する
フェーズ 4:検証
- 単体テストを実行する
- 統合テストを実行する
- コンテナーを使ったテストがあれば実行する
- 非推奨項目と起動時の失敗を確認する
ステップ 4:複数の領域にまたがるアップグレードでは、適切な移行順序を使う
複数のエコシステムが関係する場合は、以下の順序を使用してください。
- Spring Boot 4
- Spring Modulith 2
- Testcontainers 2
この順序を変更する場合は、事前に references/migration-overview.md を読んでください。
ステップ 5:各フェーズの後に進捗を報告する
各フェーズの後に、以下を報告してください。
- 変更した内容
- 残っている作業
- 問題が発生した場合はその内容
- 続行しても安全かどうか
リファレンスの読み込みガイド
- Spring Boot 4 の移行の詳細:
references/spring-boot-4-migration.md - Spring Modulith 2 の移行の詳細:
references/spring-modulith-2-migration.md - Testcontainers 2 の移行の詳細:
references/testcontainers-2-migration.md - 複数の領域にまたがるシナリオと一般的な問題:
references/migration-overview.md
利用可能なスクリプト
scripts/scan_migration_issues.py
出力形式
移行を計画または報告する際は、以下の形式で出力してください。
## Migration scope
- Current versions:
- Target versions:
## Planned phases
1. ...
2. ...
3. ...
## Files expected to change
- `path/to/file`
## Verification
- Tests or checks to run
このスキルを使用しない場合
- Spring Boot プロジェクトを新規作成する場合
- 実際の移行作業を伴わない、広範なアーキテクチャに関するアドバイス
spring-data-jpaに属する、JPA 固有の実装作業
コメント
Markdown 対応