This is an automated email from the ASF dual-hosted git repository.

jdaugherty pushed a commit to branch feature/sbom
in repository https://gitbox.apache.org/repos/asf/grails-core.git

commit 8d4e4a2c7891be3c0786e9d3c43ee74011cac5b6
Author: James Daugherty <[email protected]>
AuthorDate: Fri Sep 19 01:34:03 2025 -0400

    fix: do not generate jar files for projects that do not publish them
---
 gradle/java-config.gradle                  |  5 ++++
 gradle/publish-config.gradle               | 41 +++++++++++++++++-------------
 grails-forge/gradle/java-config.gradle     |  5 ++++
 grails-forge/gradle/publish-config.gradle  | 36 +++++++++++++-------------
 grails-gradle/gradle/java-config.gradle    |  5 ++++
 grails-gradle/gradle/publish-config.gradle |  2 +-
 6 files changed, 59 insertions(+), 35 deletions(-)

diff --git a/gradle/java-config.gradle b/gradle/java-config.gradle
index 46cb1956ad..46b05c1914 100644
--- a/gradle/java-config.gradle
+++ b/gradle/java-config.gradle
@@ -44,6 +44,11 @@ tasks.withType(GroovyCompile).configureEach {
 // Grails determines the grails version via the META-INF/MANIFEST.MF file
 // Note: we exclude attributes such as Built-By, Build-Jdk, Created-By to 
ensure the build is reproducible.
 tasks.withType(Jar).configureEach {
+    if (project.findProperty('skipJavaComponent')) {
+        it.enabled = false
+        return
+    }
+
     manifest.attributes(
             'Implementation-Title': 'Apache Grails',
             'Implementation-Version': grailsVersion,
diff --git a/gradle/publish-config.gradle b/gradle/publish-config.gradle
index 6552273cc6..b65793ad47 100644
--- a/gradle/publish-config.gradle
+++ b/gradle/publish-config.gradle
@@ -30,29 +30,36 @@ extensions.configure(GrailsPublishExtension) {
     it.developers = findProperty('pomDevelopers') as Map<String, String> ?: 
[graemerocher: 'Graeme Rocher']
     it.pomCustomization = findProperty('pomCustomization') as Closure
     it.publishTestSources = findProperty('pomPublishTestSources') ?: false
-    it.testRepositoryPath = 
rootProject.layout.buildDirectory.dir('local-maven')
+    it.testRepositoryPath = findProperty('skipJavaComponent') ? null : 
rootProject.layout.projectDirectory.dir('../build/local-maven')
 }
 
-tasks.withType(Jar).configureEach {
-    if(it.archiveClassifier.getOrNull() != 'javadoc') {
-        from(rootProject.layout.projectDirectory.file('DISCLAIMER')) {
-            into('META-INF')
-        }
+if (findProperty('skipJavaComponent')) {
+    // since the publish plugin won't register
+    tasks.register('publishAllPublicationsToTestCaseMavenRepoRepository')
+}
 
-        def projectLicense = 
layout.projectDirectory.file('src/main/resources/META-INF/LICENSE')
-        if (!projectLicense.asFile.exists()) {
-            def basicLicense = 
rootProject.layout.projectDirectory.file('licenses/LICENSE-Apache-2.0.txt')
-            from(basicLicense) {
+if (!findProperty('skipJavaComponent')) {
+    tasks.withType(Jar).configureEach {
+        if (it.archiveClassifier.getOrNull() != 'javadoc') {
+            from(rootProject.layout.projectDirectory.file('DISCLAIMER')) {
                 into('META-INF')
-                rename { 'LICENSE' }
             }
-        }
 
-        def projectNotice = 
layout.projectDirectory.file('src/main/resources/META-INF/NOTICE')
-        if (!projectNotice.asFile.exists()) {
-            def basicNotice = 
rootProject.layout.projectDirectory.file('grails-core/src/main/resources/META-INF/NOTICE')
-            from(basicNotice) {
-                into('META-INF')
+            def projectLicense = 
layout.projectDirectory.file('src/main/resources/META-INF/LICENSE')
+            if (!projectLicense.asFile.exists()) {
+                def basicLicense = 
rootProject.layout.projectDirectory.file('licenses/LICENSE-Apache-2.0.txt')
+                from(basicLicense) {
+                    into('META-INF')
+                    rename { 'LICENSE' }
+                }
+            }
+
+            def projectNotice = 
layout.projectDirectory.file('src/main/resources/META-INF/NOTICE')
+            if (!projectNotice.asFile.exists()) {
+                def basicNotice = 
rootProject.layout.projectDirectory.file('grails-core/src/main/resources/META-INF/NOTICE')
+                from(basicNotice) {
+                    into('META-INF')
+                }
             }
         }
     }
diff --git a/grails-forge/gradle/java-config.gradle 
b/grails-forge/gradle/java-config.gradle
index dab7db9cba..3e43348098 100644
--- a/grails-forge/gradle/java-config.gradle
+++ b/grails-forge/gradle/java-config.gradle
@@ -48,6 +48,11 @@ tasks.withType(GroovyCompile).configureEach {
 // Grails determines the grails version via the META-INF/MANIFEST.MF file
 // Note: we exclude attributes such as Built-By, Build-Jdk, Created-By to 
ensure the build is reproducible.
 tasks.withType(Jar).configureEach {
+    if (project.findProperty('skipJavaComponent')) {
+        it.enabled = false
+        return
+    }
+
     manifest.attributes(
             'Implementation-Title': 'Apache Grails',
             'Implementation-Version': projectVersion,
diff --git a/grails-forge/gradle/publish-config.gradle 
b/grails-forge/gradle/publish-config.gradle
index df16ad89be..a30d0710c8 100644
--- a/grails-forge/gradle/publish-config.gradle
+++ b/grails-forge/gradle/publish-config.gradle
@@ -33,26 +33,28 @@ extensions.configure(GrailsPublishExtension) {
     it.publishTestSources = findProperty('pomPublishTestSources') ?: false
 }
 
-tasks.withType(Jar).configureEach {
-    if(it.archiveClassifier.getOrNull() != 'javadoc') {
-        from(rootProject.layout.projectDirectory.file('../DISCLAIMER')) {
-            into('META-INF')
-        }
-
-        def projectLicense = 
layout.projectDirectory.file('src/main/resources/META-INF/LICENSE')
-        if (!projectLicense.asFile.exists()) {
-            def basicLicense = 
rootProject.layout.projectDirectory.file('../licenses/LICENSE-Apache-2.0.txt')
-            from(basicLicense) {
+if (!project.findProperty('skipJavaComponent')) {
+    tasks.withType(Jar).configureEach {
+        if (it.archiveClassifier.getOrNull() != 'javadoc') {
+            from(rootProject.layout.projectDirectory.file('../DISCLAIMER')) {
                 into('META-INF')
-                rename { 'LICENSE' }
             }
-        }
 
-        def projectNotice = 
layout.projectDirectory.file('src/main/resources/META-INF/NOTICE')
-        if (!projectNotice.asFile.exists()) {
-            def basicNotice = 
rootProject.layout.projectDirectory.file('../grails-core/src/main/resources/META-INF/NOTICE')
-            from(basicNotice) {
-                into('META-INF')
+            def projectLicense = 
layout.projectDirectory.file('src/main/resources/META-INF/LICENSE')
+            if (!projectLicense.asFile.exists()) {
+                def basicLicense = 
rootProject.layout.projectDirectory.file('../licenses/LICENSE-Apache-2.0.txt')
+                from(basicLicense) {
+                    into('META-INF')
+                    rename { 'LICENSE' }
+                }
+            }
+
+            def projectNotice = 
layout.projectDirectory.file('src/main/resources/META-INF/NOTICE')
+            if (!projectNotice.asFile.exists()) {
+                def basicNotice = 
rootProject.layout.projectDirectory.file('../grails-core/src/main/resources/META-INF/NOTICE')
+                from(basicNotice) {
+                    into('META-INF')
+                }
             }
         }
     }
diff --git a/grails-gradle/gradle/java-config.gradle 
b/grails-gradle/gradle/java-config.gradle
index c5d538865a..cab40a97ad 100644
--- a/grails-gradle/gradle/java-config.gradle
+++ b/grails-gradle/gradle/java-config.gradle
@@ -58,6 +58,11 @@ tasks.withType(GroovyCompile).configureEach {
 // Grails determines the grails version via the META-INF/MANIFEST.MF file
 // Note: we exclude attributes such as Built-By, Build-Jdk, Created-By to 
ensure the build is reproducible.
 tasks.withType(Jar).configureEach {
+    if (project.findProperty('skipJavaComponent')) {
+        it.enabled = false
+        return
+    }
+
     manifest.attributes(
             'Implementation-Title': 'Apache Grails',
             'Implementation-Version': projectVersion,
diff --git a/grails-gradle/gradle/publish-config.gradle 
b/grails-gradle/gradle/publish-config.gradle
index 59ab250b27..5feed2c895 100644
--- a/grails-gradle/gradle/publish-config.gradle
+++ b/grails-gradle/gradle/publish-config.gradle
@@ -32,7 +32,7 @@ extensions.configure(GrailsPublishExtension) {
     it.developers = findProperty('pomDevelopers') as Map<String, String> ?: 
[graemerocher: 'Graeme Rocher', jeffscottbrown: 'Jeff Scott Brown', puneetbehl: 
'Puneet Behl']
     it.pomCustomization = findProperty('pomCustomization') as Closure
     it.publishTestSources = findProperty('pomPublishTestSources') ?: false
-    it.testRepositoryPath = 
rootProject.layout.projectDirectory.dir('../build/local-maven')
+    it.testRepositoryPath = findProperty('skipJavaComponent') ? null : 
rootProject.layout.projectDirectory.dir('../build/local-maven')
     it.publicationName = findProperty('pomMavenPublicationName') ?: 'maven'
     it.addComponents = project.name != 'grails-gradle-plugins'
 }

Reply via email to