SKILL.md
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
Skill Contents
Sections
- [When to Use](#when-to-use) (L22-L28)
- [Target Versions](#target-versions) (L48-L60)
- [Quick Start](#quick-start) (L61-L107)
- [References](#references) (L108-L113)
- [Plugin Migration Details](#plugin-migration-details) (L114-L155)
- [Related Skills](#related-skills) (L156-L160)
- [Related Commands](#related-commands) (L161-L167)
Available Resources
📚 references/ - Detailed documentation
- [plugin compatibility](references/plugin-compatibility.md)
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
1. Update Gradle Wrapper
./gradlew wrapper --gradle-version=9.2.1
2. 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
}
3. 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'
}
}
}
4. Validate
./gradlew clean build test
References
| Reference | Content |
|---|---|
| [references/plugin-compatibility.md](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 firstjava-25- Java 25 requires Gradle 9
Related Commands
This skill is referenced by:
- [
/prepare-to-gradle-9](../../commands/prepare-to-gradle-9.md) - Prepare for Gradle 9 upgrade - [
/prepare-to-java-25](../../commands/prepare-to-java-25.md) - Java 25 preparation (requires Gradle 9)
<!-- AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY --> <!-- Source: bitsoex/ai-code-instructions → java/skills/gradle-9/SKILL.md --> <!-- To modify, edit the source file and run the distribution workflow -->