Quick Start¶
From zero to your first modernization run in three steps.
Before you start¶
-
A Maven project
pom.xmlat the root. Single- or multi-module. -
Its own git repo
.gitnext topom.xml. If not, rungit init. -
A passing build
./mvnw clean installsucceeds today.
Run every command below from your project root.
Check prerequisites¶
You're set when it prints Ready.
What the script checks
| Item | Why |
|---|---|
claude |
Runs the pipeline |
git |
Isolates builds and changes in worktrees |
java and mvn (or ./mvnw) |
Builds your project |
jq |
Reads the pipeline's state files |
python3 |
Writes the determine-phase reports |
bash |
Runs the pipeline's scripts |
grype (optional) |
Vulnerability scan. Skipped without it |
pom.xml and .git |
The project is Maven, in its own git repository |
--install uses Homebrew on macOS, or apt / dnf on Linux. It installs JDK 21 if no JDK is
found. To pick another, end the command with | JDK_VERSION=25 bash -s -- --install.
Maven's JDK must be at least the Java version you upgrade to. The script prints it.
Add the agent to your project¶
curl -fsSL https://github.com/paul58914080/java-springboot-modernization-claude-agent/archive/main.tar.gz \
| tar -xz --strip-components=2 \
java-springboot-modernization-claude-agent-main/final/CLAUDE.md \
java-springboot-modernization-claude-agent-main/final/.claude
This adds CLAUDE.md and .claude/ to your project.
Already have a CLAUDE.md or .claude/?
They will be overwritten. Back them up first, then merge your settings back into
.claude/settings.json.
Optional: change the defaults
Edit the env block in .claude/settings.json before you start:
MODERNIZATION_TESTABILITY_THRESHOLD(default80): below this score, the test phase runs.MODERNIZATION_TARGET_JAVA_VERSIONandMODERNIZATION_TARGET_SPRING_BOOT_VERSION: the targets offered to you.
Start the pipeline¶
Then type:
What happens next
The pipeline pauses for your approval after each phase and asks which Java and Spring Boot
versions to target. Nothing is committed to your branch. The upgrade lands on its own
modernization/* branch for you to review and merge. See About for how it works.