Skip to content

Upgrade to Gradle 9.8.1 and Java 25 - #34

Merged
gschueler merged 1 commit into
mainfrom
build/java25-gradle9
Oct 19, 2026
Merged

gschueler merged 1 commit into
mainfrom
build/java25-gradle9

Conversation

@gschueler

Copy link
Copy Markdown
Member

Summary

  • Upgrade the Gradle wrapper from 8.12.1 to 9.8.1.
  • Compile all subprojects with a Java 25 toolchain (root build.gradle). Add the foojay resolver plugin in settings.gradle, which downloads JDK 25 if it is not installed.
  • Change the shadow plugin to com.gradleup.shadow 9.6.1. The old com.github.johnrengelman.shadow plugin does not work with Gradle 9.
  • Upgrade the plugins and libraries to versions that work with Gradle 9 and JDK 25:
    • axion 1.21.4
    • lombok 1.18.48 (needed to compile on JDK 25)
    • groovy 4.0.33
    • spock 2.5-groovy-4.0
    • picocli 4.7.7
  • Use rootProject.scmVersion to remove a deprecation that becomes an error in Gradle 10.
  • Build with JDK 25 in the CI and release workflows.

This also fixes the local build error "Type T not present", which occurs when Gradle 8.12 runs on JDK 24 or 25. Gradle 9.8.1 runs on JDK 17 or newer and compiles with the JDK 25 toolchain, so the JDK in your shell no longer matters.

Breaking change

The released jar now needs Java 25 or newer to run. The homebrew formula in rundeck/homebrew-howto-cli-tool does not declare a Java dependency (depends_on is commented out). Users with an older Java will get an error when they run how. Consider adding depends_on "openjdk@25" to the formula, or mention it in the release notes.

Test plan

  • ./gradlew clean build on JDK 25: 77 tests, 0 failures, no deprecation warnings with --warning-mode all
  • Build started from JDK 17 uses the JDK 25 toolchain and passes
  • Class files in the -all.jar are version 69 (Java 25)
  • The installed how CLI and java -jar how-*-all.jar list actions in a sample project
  • CI passes on JDK 25

🤖 Generated with Claude Code

- Upgrade the Gradle wrapper from 8.12.1 to 9.8.1.
- Compile all subprojects with a Java 25 toolchain. Add the foojay
  resolver plugin to download JDK 25 if it is not installed.
- Change the shadow plugin to com.gradleup.shadow 9.6.1, because the
  old plugin does not work with Gradle 9.
- Upgrade axion, lombok, groovy, spock and picocli to versions that
  work with Gradle 9 and JDK 25.
- Use rootProject.scmVersion to remove a Gradle 10 deprecation.
- Build with JDK 25 in CI and release workflows.

The released jar now needs Java 25 or newer to run.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@gschueler
gschueler merged commit c04c51c into main Oct 19, 2026
1 check passed
@gschueler
gschueler deleted the build/java25-gradle9 branch October 19, 2026 16:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant