You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@grails.apache.org by ja...@apache.org on 2026/04/07 18:01:58 UTC
(grails-core) branch spring-boot-4 updated: Fix Micronaut 5 JDK 21 build issues: groovydoc, SBOM, asset-pipeline
This is an automated email from the ASF dual-hosted git repository.
jamesfredley pushed a commit to branch spring-boot-4
in repository https://gitbox.apache.org/repos/asf/grails-core.git
The following commit(s) were added to refs/heads/spring-boot-4 by this push:
new 6cba542dde Fix Micronaut 5 JDK 21 build issues: groovydoc, SBOM, asset-pipeline
6cba542dde is described below
commit 6cba542dde02e72af285442246a732f86e3300fb
Author: James Fredley <ja...@users.noreply.github.com>
AuthorDate: Tue Apr 7 14:01:47 2026 -0400
Fix Micronaut 5 JDK 21 build issues: groovydoc, SBOM, asset-pipeline
Disable groovydoc for Micronaut modules since the Groovydoc task does
not support Gradle toolchains and fails when loading JDK 21 bytecode
on a JDK 17 Gradle daemon.
Add coherence-bom 25.03.2 to SbomPlugin license mapping (UPL-1.0) for
the CycloneDX SBOM generation that comes in via Micronaut 5 transitives.
Disable asset-pipeline compilation on the micronaut test example due to
a pre-existing NPE in asset-pipeline on JDK 21.
Set DuplicatesStrategy.EXCLUDE on the issue-11767 plugin jar to handle
duplicate spring-configuration-metadata.json from Micronaut annotation
processors running in both Java and Groovy compilation outputs.
Assisted-by: Claude Code <Cl...@Claude.ai>
---
.../main/groovy/org/apache/grails/buildsrc/SbomPlugin.groovy | 1 +
grails-micronaut/build.gradle | 4 ++++
grails-test-examples/issue-11767/build.gradle | 4 ++++
grails-test-examples/micronaut-groovy-only/build.gradle | 4 ++++
grails-test-examples/micronaut/build.gradle | 10 ++++++++++
grails-test-examples/plugins/issue-11767/build.gradle | 4 ++++
grails-test-examples/plugins/micronaut-singleton/build.gradle | 4 ++++
7 files changed, 31 insertions(+)
diff --git a/build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/SbomPlugin.groovy b/build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/SbomPlugin.groovy
index 1ccaf89dee..581d030188 100644
--- a/build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/SbomPlugin.groovy
+++ b/build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/SbomPlugin.groovy
@@ -93,6 +93,7 @@ class SbomPlugin implements Plugin<Project> {
'pkg:maven/org.jline/jline@3.23.0?type=jar' : 'BSD-2-Clause', // maps incorrectly because of https://github.com/CycloneDX/cyclonedx-core-java/issues/205
'pkg:maven/org.liquibase.ext/liquibase-hibernate5@4.27.0?type=jar': 'Apache-2.0', // maps incorrectly because of https://github.com/liquibase/liquibase/issues/2445 & the base pom does not define a license
'pkg:maven/com.oracle.coherence.ce/coherence-bom@25.03.1?type=pom': 'UPL-1.0', // does not have map based on license id
+ 'pkg:maven/com.oracle.coherence.ce/coherence-bom@25.03.2?type=pom': 'UPL-1.0', // does not have map based on license id
'pkg:maven/com.oracle.coherence.ce/coherence-bom@22.06.2?type=pom': 'UPL-1.0', // does not have map based on license id
'pkg:maven/opensymphony/sitemesh@2.6.0?type=jar' : 'OpenSymphony', // custom license approved by legal LEGAL-707
'pkg:maven/org.jruby/jzlib@1.1.5?type=jar' : 'BSD-3-Clause'// https://web.archive.org/web/20240822213507/http://www.jcraft.com/jzlib/LICENSE.txt shows it's a 3 clause
diff --git a/grails-micronaut/build.gradle b/grails-micronaut/build.gradle
index e7c6c80eb0..580f3b5375 100644
--- a/grails-micronaut/build.gradle
+++ b/grails-micronaut/build.gradle
@@ -42,6 +42,10 @@ java {
}
}
+tasks.withType(Groovydoc).configureEach {
+ enabled = false
+}
+
dependencies {
compileOnlyApi platform("io.micronaut.platform:micronaut-platform:$micronautPlatformVersion")
compileOnlyApi 'io.micronaut:micronaut-inject-groovy'
diff --git a/grails-test-examples/issue-11767/build.gradle b/grails-test-examples/issue-11767/build.gradle
index 1844269c90..af0482e01f 100644
--- a/grails-test-examples/issue-11767/build.gradle
+++ b/grails-test-examples/issue-11767/build.gradle
@@ -34,6 +34,10 @@ java {
}
}
+tasks.withType(Groovydoc).configureEach {
+ enabled = false
+}
+
dependencies {
implementation platform(project(':grails-bom'))
diff --git a/grails-test-examples/micronaut-groovy-only/build.gradle b/grails-test-examples/micronaut-groovy-only/build.gradle
index 7a23f2cc15..ba05f47580 100644
--- a/grails-test-examples/micronaut-groovy-only/build.gradle
+++ b/grails-test-examples/micronaut-groovy-only/build.gradle
@@ -34,6 +34,10 @@ java {
}
}
+tasks.withType(Groovydoc).configureEach {
+ enabled = false
+}
+
// This module intentionally has NO annotationProcessor dependencies.
// It validates that a Groovy-only Grails application works with
// grails-micronaut without explicit Java annotation processor configuration.
diff --git a/grails-test-examples/micronaut/build.gradle b/grails-test-examples/micronaut/build.gradle
index 7a2adf87a6..788f124ff1 100644
--- a/grails-test-examples/micronaut/build.gradle
+++ b/grails-test-examples/micronaut/build.gradle
@@ -35,8 +35,18 @@ java {
languageVersion = JavaLanguageVersion.of(21)
}
}
+
+tasks.withType(Groovydoc).configureEach {
+ enabled = false
+}
+
apply plugin: 'cloud.wondrify.asset-pipeline'
+// TODO: BOOT4 - asset-pipeline throws NPE on JDK 21. Disable until asset-pipeline is fixed.
+tasks.named('assetCompile') {
+ enabled = false
+}
+
// The grails-gsp Gradle plugin is not needed for running the functional tests.
// It is applied as a smoke test to check that compiling gsp
// for production does not fail during build task.
diff --git a/grails-test-examples/plugins/issue-11767/build.gradle b/grails-test-examples/plugins/issue-11767/build.gradle
index f998e82d57..b5f2005ed2 100644
--- a/grails-test-examples/plugins/issue-11767/build.gradle
+++ b/grails-test-examples/plugins/issue-11767/build.gradle
@@ -34,6 +34,10 @@ java {
}
}
+tasks.withType(Groovydoc).configureEach {
+ enabled = false
+}
+
tasks.withType(Jar).configureEach {
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
}
diff --git a/grails-test-examples/plugins/micronaut-singleton/build.gradle b/grails-test-examples/plugins/micronaut-singleton/build.gradle
index b46eaa4a21..87dcbe9e92 100644
--- a/grails-test-examples/plugins/micronaut-singleton/build.gradle
+++ b/grails-test-examples/plugins/micronaut-singleton/build.gradle
@@ -34,6 +34,10 @@ java {
}
}
+tasks.withType(Groovydoc).configureEach {
+ enabled = false
+}
+
dependencies {
implementation platform(project(':grails-bom'))