Claude-skill-registry java-25
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/java-25" ~/.claude/skills/majiayu000-claude-skill-registry-java-25 && rm -rf "$T"
manifest:
skills/data/java-25/SKILL.mdsource content
Java 25 Upgrade
Upgrade Java projects to Java 25 with all required dependency updates.
When to Use
- Project needs to upgrade from Java 21 to Java 25
- Need features from Java 25 (records, pattern matching improvements, etc.)
- Planning to stay on latest LTS-adjacent releases
- When asked to "prepare for Java 25" or "upgrade to Java 25"
Skill Contents
Sections
- When to Use
- Prerequisites
- Target Versions
- DO NOT Upgrade
- Workflow
- Version Catalog Updates
- Java Toolchain Configuration
- Critical: Do NOT Use groovy-all
- Override Spring Boot's Groovy Version
- References
- Related Skills
Available Resources
📚 references/ - Detailed documentation
Prerequisites
- Spring Boot 3.5.x - Upgrade to Spring Boot 3.5.x first
- sdkman - For managing Java versions
- Java 25 Temurin - Install via:
sdk install java 25.0.1-tem
Target Versions
| Component | Version | Notes |
|---|---|---|
| Java | 25 | Target JDK |
| Gradle | 9.2.1 | Major version required |
| Groovy | 5.0.3 | Java 25 requires Groovy 5.x |
| Spock | 2.4-groovy-5.0 | Must match Groovy version |
| Lombok | 1.18.42 | Java 25 bytecode support |
| Lombok Plugin | 9.2.0 | Freefair plugin for Gradle 9.2.1 |
| Spotless | 8.1.0 | Gradle 9 compatible |
| SonarQube Plugin | 7.2.2.6593 | Gradle 9 compatible |
| ByteBuddy | 1.17.5+ | ASM 9.8 for Java 25 |
⚠️ DO NOT Upgrade
- protobuf: Keep existing version
- grpc: Keep existing version
- Spring Boot: Keep at 3.5.x (already upgraded)
Workflow
Phase 1: Prepare (Local Validation)
# Install and use Java 25 sdk install java 25.0.1-tem sdk use java 25.0.1-tem # Upgrade Gradle wrapper ./gradlew wrapper --gradle-version=9.2.1 # Update version catalog (see below) # Build and test locally ./gradlew clean build test
Phase 2: Commit (After Tests Pass)
Only commit the toolchain change after all tests pass locally.
Version Catalog Updates
# gradle/libs.versions.toml [versions] groovy = "5.0.3" spock = "2.4-groovy-5.0" lombok = "1.18.42" bytebuddy = "1.17.5" # If defined [plugins] lombok = "io.freefair.lombok:9.2.0" spotless = "com.diffplug.spotless:8.1.0" sonarqube = "org.sonarqube:7.2.2.6593"
Java Toolchain Configuration
// root build.gradle allprojects { plugins.withType(JavaPlugin).configureEach { java { toolchain { languageVersion = JavaLanguageVersion.of(25) vendor = JvmVendorSpec.ADOPTIUM } } } }
⚠️ Critical: Do NOT Use groovy-all
The
groovy-all:5.0.3 artifact has broken transitive dependencies:
// ❌ NEVER: groovy-all has broken transitive deps testImplementation 'org.apache.groovy:groovy-all:5.0.3' // ✅ CORRECT: Let spock-core bring in Groovy 5.0.3 transitively testImplementation libs.spock.core testImplementation libs.spock.spring // if using Spring
Override Spring Boot's Groovy Version
// root build.gradle allprojects { ext['groovy.version'] = libs.versions.groovy.get() }
References
| Reference | Content |
|---|---|
| references/preparation.md | Detailed preparation steps and prerequisites |
Related Skills
- Must upgrade firstspring-boot-3-5
- Gradle 9 upgrade patternsgradle-9