Skip to content

build!: upgrade Gradle 6.9.4 to 8.5#2921

Open
ChristianMurphy wants to merge 1 commit intouPortal-Project:masterfrom
ChristianMurphy:build/gradle-8
Open

build!: upgrade Gradle 6.9.4 to 8.5#2921
ChristianMurphy wants to merge 1 commit intouPortal-Project:masterfrom
ChristianMurphy:build/gradle-8

Conversation

@ChristianMurphy
Copy link
Member

Checklist
Description of change

Blocker for the Spring 5/6 migration — newer Spring plugin ecosystem and dependency management tooling require Gradle 7+.

Changes:

  • Wrapper upgraded from 6.9.4 → 8.5
  • Removed jcenter() (shut down); mavenCentral() only
  • compile/testCompile → implementation/api/testImplementation
  • Replaced 'maven' plugin with 'maven-publish'; publishing block rewritten with POM metadata, WAR support via components.web (afterEvaluate), and backward-compatible install task alias
  • Replaced unmaintained org.openrepose JAXB plugin with Ant-based XJC tasks (uPortal-io-jaxb, uPortal-api-search) — the plugin had unannotated task properties incompatible with Gradle 7+ task validation
  • JaCoCo: reports.xml.enabled → reports.xml.required
  • WAR task: added explicit duplicatesStrategy (required by Gradle 7+)
  • uPortal-webapp: deferred webjar configuration resolution to execution time (Gradle 8 fails on eager resolution during configuration phase)
  • verifyGoogleJavaFormat: added mustRunAfter ordering to avoid implicit dependency on Node plugin outputs
  • sourcesJar/javadocJar: added duplicatesStrategy for generated source overlap
  • Parent module install/uploadArchives tasks replaced with publishToMavenLocal aliases

Verified: 1045 tests pass, verGJF clean, full build succeeds.

Blocker for the Spring 5/6 migration — newer Spring plugin
ecosystem and dependency management tooling require Gradle 7+.

Changes:
- Wrapper upgraded from 6.9.4 → 8.5
- Removed jcenter() (shut down); mavenCentral() only
- compile/testCompile → implementation/api/testImplementation
- Replaced 'maven' plugin with 'maven-publish'; publishing
  block rewritten with POM metadata, WAR support via
  components.web (afterEvaluate), and backward-compatible
  `install` task alias
- Replaced unmaintained org.openrepose JAXB plugin with
  Ant-based XJC tasks (uPortal-io-jaxb, uPortal-api-search)
  — the plugin had unannotated task properties incompatible
  with Gradle 7+ task validation
- JaCoCo: reports.xml.enabled → reports.xml.required
- WAR task: added explicit duplicatesStrategy (required by
  Gradle 7+)
- uPortal-webapp: deferred webjar configuration resolution
  to execution time (Gradle 8 fails on eager resolution
  during configuration phase)
- verifyGoogleJavaFormat: added mustRunAfter ordering to
  avoid implicit dependency on Node plugin outputs
- sourcesJar/javadocJar: added duplicatesStrategy for
  generated source overlap
- Parent module install/uploadArchives tasks replaced with
  publishToMavenLocal aliases

Verified: 1045 tests pass, verGJF clean, full build succeeds.
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR upgrades the Gradle build system from version 6.9.4 to 8.5, which is a blocker for the Spring 5/6 migration that requires Gradle 7+. The upgrade involves migrating from deprecated Gradle APIs and plugins to their modern equivalents while maintaining backward compatibility.

Changes:

  • Gradle wrapper upgraded from 6.9.4 to 8.5 with updated scripts and binary
  • Migrated from deprecated 'maven' plugin to 'maven-publish' with restructured publishing configuration
  • Replaced unmaintained org.openrepose JAXB plugin with Ant-based XJC tasks
  • Updated dependency configurations from compile/testCompile to implementation/api/testImplementation
  • Fixed Gradle 8 compatibility issues: JaCoCo report properties, WAR duplicatesStrategy, task ordering, and deferred configuration resolution

Reviewed changes

Copilot reviewed 16 out of 18 changed files in this pull request and generated no comments.

Show a summary per file
File Description
gradle/wrapper/gradle-wrapper.properties Upgraded distribution URL from 6.9.4 to 8.5, added networkTimeout
gradle/wrapper/gradle-wrapper.jar Updated wrapper JAR binary for Gradle 8.5
gradlew Updated Unix wrapper script with shellcheck fixes and xargs availability check
gradlew.bat Updated Windows wrapper script with improved error handling
build.gradle Removed jcenter and maven plugin; migrated to maven-publish with afterEvaluate; updated JaCoCo and signing configuration; added backward-compatible install task
uPortal-webapp/build.gradle Added task ordering for verifyGoogleJavaFormat; deferred webjar resolution; added WAR duplicatesStrategy
uPortal-security/uPortal-security-filters/build.gradle Migrated compile/testCompile to api/implementation/testImplementation
uPortal-io/uPortal-io-jaxb/build.gradle Replaced JAXB plugin with Ant XJC task; changed compile to api
uPortal-api/uPortal-api-search/build.gradle Replaced JAXB plugin with Ant XJC task; changed compile to api
uPortal-utils/build.gradle, uPortal-soffit/build.gradle, uPortal-security/build.gradle, uPortal-layout/build.gradle, uPortal-io/build.gradle, uPortal-groups/build.gradle, uPortal-content/build.gradle, uPortal-api/build.gradle Updated parent module publishing disablement to use new task types
AGENTS.md Updated documentation to reflect Gradle 8.5 version

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

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.

2 participants