Add SBOM configuration for all published artifacts by default

This commit is contained in:
Bogdan Mukvich
2023-05-26 15:09:58 +02:00
committed by Space Team
parent e0a477f16d
commit 303b01b89b
10 changed files with 11 additions and 15 deletions
+6 -4
View File
@@ -8,14 +8,13 @@ import org.gradle.api.artifacts.Configuration
import org.gradle.api.artifacts.ConfigurationContainer
import org.gradle.api.artifacts.PublishArtifact
import org.gradle.api.artifacts.component.ProjectComponentIdentifier
import org.gradle.api.attributes.LibraryElements
import org.gradle.api.attributes.Usage
import org.gradle.api.component.AdhocComponentWithVariants
import org.gradle.api.file.ArchiveOperations
import org.gradle.api.file.DuplicatesStrategy
import org.gradle.api.plugins.BasePluginExtension
import org.gradle.api.plugins.JavaPlugin
import org.gradle.api.plugins.JavaPlugin.*
import org.gradle.api.plugins.JavaPlugin.JAVADOC_ELEMENTS_CONFIGURATION_NAME
import org.gradle.api.plugins.JavaPlugin.SOURCES_ELEMENTS_CONFIGURATION_NAME
import org.gradle.api.plugins.JavaPluginExtension
import org.gradle.api.provider.Provider
import org.gradle.api.publish.PublishingExtension
@@ -271,7 +270,7 @@ fun Project.standardPublicJars() {
javadocJar()
}
fun Project.publish(moduleMetadata: Boolean = false, configure: MavenPublication.() -> Unit = { }) {
fun Project.publish(moduleMetadata: Boolean = false, sbom: Boolean = true, configure: MavenPublication.() -> Unit = { }) {
apply<KotlinBuildPublishingPlugin>()
if (!moduleMetadata) {
@@ -284,6 +283,9 @@ fun Project.publish(moduleMetadata: Boolean = false, configure: MavenPublication
?.publications
?.findByName(mainPublicationName) as MavenPublication
publication.configure()
if (sbom) {
configureSbom()
}
}
fun Project.idePluginDependency(block: () -> Unit) {
+1 -2
View File
@@ -46,8 +46,7 @@ fun Project.configureSbom(
}
val spdxSbomTask = tasks.named<SpdxSbomTask>("spdxSbomFor$targetName")
val sbomFile = spdxSbomTask.map { it.outputDirectory.file("$targetName.spdx.json") }
val sbomFile = layout.buildDirectory.file("spdx/$targetName.spdx.json")
val sbomCfg = configurations.maybeCreate("sbomFor$targetName").apply {
isCanBeResolved = false
isCanBeConsumed = true