PAR-241
0
Upgrade the monorepo build to Gradle 9.6 (keep Java 21 bytecode target)
Pending ReleaseUnassignedTreasury
Monorepo-wide build modernization (filed under Treasury as the core build; touches every JVM module).
Goal
Move the single-root Gradle build from 8.14.3 → 9.6.0. Keep the Java 21 bytecode target (toolchain 21 + options.release 21) so every artifact still loads on the Java 21 deployment runtime (Paper 1.21.11 MC server, eclipse-temurin:21-jre rest-api image, JDK-21 CI). The Java-25 target bump is deliberately out of scope — it would require moving the prod MC server JVM + Docker base + CI + external API consumers to 25 (decided against for now).
Why
- Gradle 8.14.3's Kotlin DSL can't run on the JDK 25 now on the dev PATH (
IllegalArgumentException: 25.0.3); Gradle 9.1+ supports a Java 25 daemon, so 9.6 fixes that papercut without touching the bytecode target. - The current build already warns it uses features "incompatible with Gradle 9.0" — clear those before they become hard errors.
- Shadow (
com.gradleup.shadow 9.0.2) and Spring Boot (4.0.3) are already Gradle-9-compatible, so the lift is the wrapper bump + deprecation fixes.
Scope
- Bump
gradle/wrapper/gradle-wrapper.propertiesto 9.6.0 (and refresh wrapper jar/scripts via thewrappertask). - Fix any Gradle 9 removals/deprecations surfaced across the root + every module build script.
- Keep toolchain/
releaseat 21; do not change Docker base, MC server JVM, or CI JDK. - Verify
./gradlew build(treasury, treasury-api, business, business-api, treasury-api-plugin, treasury-rest-api, economy-flyway, chestshop) is green, including the 95% coverage gates.
Acceptance
./gradlewruns on Java 25 with no "incompatible with Gradle 9.0" warnings.- All modules compile to Java 21 bytecode and tests/coverage gates pass.
- No artifact's runtime compatibility changes.
Comments
No comments yet.
Activity
- tesks changed status to Status → Pending Release
- tesks created the issue