Migrate Spring Boot projects to version 4.0 with Java 25, including Spring Modulith 2.0 and Testcontainers 2.x upgrades. Use when user requests upgrading Spring Boot, migrating to Java 25, updating dependencies to Spring Boot 4, mentions Jackson 3 migration, asks about starter renames (web→webmvc, aop→aspectj), fixing test annotations (@MockBean→@MockitoBean), or needs help with Spring Modulith 2.0 or Testcontainers 2.x compatibility. Analyzes codebase for migration issues and guides through changes with specific file references.
Install with Tessl CLI
npx tessl i github:a-pavithraa/springboot-skills-marketplace --skill springboot-migrationOverall
score
100%
Does it follow best practices?
Evaluation — 97%
↑ 1.39xAgent success when using this skill
Validation for skill structure
NEVER migrate blindly. ALWAYS scan the codebase first to understand the current state.
NEVER apply all migrations at once. ALWAYS follow the phased approach.
MANDATORY versions: Java 25 + Spring Boot 4.0.x + Spring Modulith 2.0.x + Testcontainers 2.x
Use the migration scanner to identify what needs to be migrated:
# Run from the skill directory
python3 <SKILL_DIR>/scripts/scan_migration_issues.py /path/to/project
# Or if the skill is in .codex:
python3 .codex/springboot-migration/scripts/scan_migration_issues.py /path/to/projectNote: Replace <SKILL_DIR> with the actual path to this skill directory. When copying skills to .codex/, use the second form.
This will analyze:
Based on scan results, determine which migrations apply:
| Migration | Trigger | Reference |
|---|---|---|
| Spring Boot 4.0 | Any Spring Boot 3.x → 4.0 upgrade | references/spring-boot-4-migration.md |
| Spring Modulith 2.0 | Using Spring Modulith 1.x | references/spring-modulith-2-migration.md |
| Testcontainers 2.x | Using Testcontainers 1.x | references/testcontainers-2-migration.md |
Decision tree:
Is project using Spring Boot 3.x?
├─ Yes → Spring Boot 4.0 migration required
│ ├─ Using Spring Modulith? → Also migrate Spring Modulith 2.0
│ ├─ Using Testcontainers? → Also migrate Testcontainers 2.x
│ └─ Read: references/spring-boot-4-migration.md
└─ No → Check individual component versionsCRITICAL: Migrations must be done in phases to ensure stability:
For scenario-specific guidance and common pitfalls, see references/migration-overview.md before planning.
pom.xml / build.gradleReference: Each migration guide's "Dependency Changes" section
Reference: Each migration guide's "Code Changes" section
Reference: Each migration guide's "Configuration Changes" section
For each phase:
Migration order for multi-component upgrades:
After migration, follow the verification sections in the relevant references.
references/spring-boot-4-migration.mdreferences/spring-modulith-2-migration.mdreferences/testcontainers-2-migration.mdreferences/migration-overview.mdscripts/scan_migration_issues.py - Analyzes project for migration issues| Don't | Do | Why |
|---|---|---|
| Migrate everything at once | Migrate in phases | Easier debugging |
| Skip scanning | Scan first | Know the scope |
| Ignore test failures | Fix immediately | Prevents cascading issues |
| Use classic starters permanently | Migrate to modular eventually | Technical debt |
Suppress type errors with @ts-ignore equivalent | Fix root cause | Maintainability |
| Skip reading migration guides | Read before implementing | Avoid mistakes |
Understand before changing. Verify after changing. Never skip testing.
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.