Skip to content

Upgrade to Java 21 with Gradle 9 and modern tooling#5

Merged
arakelian merged 1 commit intomainfrom
arakelian/java21-publish-upgrade
Feb 24, 2026
Merged

Upgrade to Java 21 with Gradle 9 and modern tooling#5
arakelian merged 1 commit intomainfrom
arakelian/java21-publish-upgrade

Conversation

@arakelian
Copy link
Owner

Summary

  • Upgrade Gradle from 8.1.1 to 9.3.1 with full Gradle 9 API compliance
  • Upgrade Java from 11 to 21 (sourceCompatibility/targetCompatibility)
  • Switch from sonatype/nexus-staging to vanniktech maven-publish plugin
  • Modernize GitHub Actions to latest versions (checkout v4, setup-java v4, gradle/actions/setup-gradle v4)
  • Remove deprecated org.inferred.processors plugin, use standard annotationProcessor config
  • Add comprehensive javadoc to all Java source and test files
  • Fix all Gradle 9 deprecations (tasks.withType.configureEach, tasks.register, tasks.named)
  • Upgrade dependencies: more-commons (5.1.0), guava (33.4.0-jre), immutables (2.10.1), error-prone (2.36.0), log4j (2.24.3), junit-jupiter (5.11.4), SLF4J (2.0.16)

Test plan

  • All tests pass with Gradle 9.3.1 and Java 21
  • Project builds successfully with Java 21
  • Annotation processors work correctly without org.inferred.processors plugin
  • Maven publishing configuration validated with vanniktech plugin

🤖 Generated with Claude Code

…avadoc

- Upgrade Gradle wrapper from 8.1.1 to 9.3.1 with Gradle 9 API compliance
- Upgrade Java target from 11 to 21, requiring sourceCompatibility/targetCompatibility updates
- Upgrade all dependencies: more-commons (5.1.0), guava (33.4.0-jre), immutables (2.10.1),
  error-prone (2.36.0), log4j (2.24.3), junit-jupiter (5.11.4), SLF4J (2.0.16)
- Switch from sonatype/nexus-staging to com.vanniktech.maven.publish (0.36.0) for Maven Central
- Modernize GitHub Actions: checkout v4, setup-java v4, gradle/actions/setup-gradle v4, Java 21
- Remove org.inferred.processors plugin (incompatible with Gradle 9), use annotationProcessor config
- Add junit-platform-launcher as testRuntimeOnly (required by Gradle 9)
- Switch from testsJar to java-test-fixtures plugin
- Add comprehensive class-level and method-level javadoc to all Java source and test files
- Fix Gradle 9 deprecations: use .configureEach for tasks.withType, tasks.register, tasks.named

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@arakelian arakelian merged commit 49eff39 into main Feb 24, 2026
1 check passed
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