Gradle 9 Upgrade
Upgrade from Gradle 8.x to Gradle 9.x with all required plugin updates.
When to Use
-
Recommended for all projects - Gradle 9.2.1 is now the standard
-
Upgrading to Java 25 (requires Gradle 9.x)
-
Need Gradle 9 features
-
Current Gradle 8.x plugins are deprecated
-
When asked to "prepare for Gradle 9"
Skill Contents
Sections
-
When to Use
-
Target Versions
-
Quick Start
-
References
-
Plugin Migration Details
-
Related Skills
-
Available Resources
Available Resources
📚 references/ - Detailed documentation
- plugin compatibility
Target Versions
Component Gradle 8.x Gradle 9.x Notes
Gradle 8.14.3 9.2.1 Recommended for all projects
Lombok Plugin 8.14.2 9.2.0 Freefair for Gradle 9.2.1
Spotless 6.x 8.1.0 Major bump
SonarQube 6.x 7.2.2.6593 Major bump
Develocity 0.1.x 0.2.8 Compatibility
Flyway 10.x 11.19.0 If used
jOOQ 9.x 10.1.1 If used
Protobuf 0.9.x 0.9.6 Gradle 9 compatible
Quick Start
- Update Gradle Wrapper
./gradlew wrapper --gradle-version=9.2.1
- Update Plugin Versions
gradle/libs.versions.toml
[plugins] lombok = "io.freefair.lombok:9.2.0" spotless = "com.diffplug.spotless:8.1.0" sonarqube = "org.sonarqube:7.2.2.6593" protobuf = "com.google.protobuf:0.9.6"
// settings.gradle plugins { id 'bitso.develocity' version "${develocityPluginVersion}" // 0.2.8 id 'org.sonarqube' version "${sonarqubePluginVersion}" // 7.2.2.6593 }
- Add JUnit Platform Launcher
Required for JUnit 5.11+ with Gradle 9:
subprojects { plugins.withType(JavaPlugin).configureEach { dependencies { testRuntimeOnly 'org.junit.platform:junit-platform-launcher' } } }
- Validate
./gradlew clean build test
References
Reference Content
references/plugin-compatibility.md Plugin version mappings and known issues
Plugin Migration Details
Lombok Plugin (Freefair)
Old (Gradle 8.x)
lombok = "io.freefair.lombok:8.14.2"
New (Gradle 9.x)
lombok = "io.freefair.lombok:9.2.0"
Requires Lombok 1.18.42 for Java 25 bytecode support:
lombok { version = libs.versions.lombok.get() // 1.18.42 }
Spotless
Old (Gradle 8.x)
spotless = "com.diffplug.spotless:6.x"
New (Gradle 9.x)
spotless = "com.diffplug.spotless:8.1.0"
For Java 25 formatting, use palantir-java-format 2.74.0.
SonarQube
Old (Gradle 8.x)
sonarqube = "org.sonarqube:6.x"
New (Gradle 9.x)
sonarqube = "org.sonarqube:7.2.2.6593"
Related Skills
-
spring-boot-3-5
-
Upgrade Spring Boot first
-
java-25
-
Java 25 requires Gradle 9