Paradaux

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.properties to 9.6.0 (and refresh wrapper jar/scripts via the wrapper task).
  • Fix any Gradle 9 removals/deprecations surfaced across the root + every module build script.
  • Keep toolchain/release at 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

  • ./gradlew runs 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