java-25

Upgrade Java projects to Java 25 with all required dependency updates.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "java-25" with this command: npx skills add bitsoex/bitso-java/bitsoex-bitso-java-java-25

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

  • preparation

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

  • spring-boot-3-5

  • Must upgrade first

  • gradle-9

  • Gradle 9 upgrade patterns

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

gradle-standards

No summary provided by upstream source.

Repository SourceNeeds Review
General

java-coverage

No summary provided by upstream source.

Repository SourceNeeds Review
General

java-standards

No summary provided by upstream source.

Repository SourceNeeds Review