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' }
