Add SBOM for gradle plugins

^KTI-1299
This commit is contained in:
Bogdan Mukvich
2023-07-17 14:46:37 +02:00
committed by Space Team
parent b6e8937077
commit 3aee0ab994
3 changed files with 19 additions and 4 deletions
@@ -35,7 +35,7 @@ dependencies {
compileOnly project(':dependencies:intellij-core') compileOnly project(':dependencies:intellij-core')
} }
GradleCommonKt.configureCommonPublicationSettingsForGradle(project, false) GradleCommonKt.configureCommonPublicationSettingsForGradle(project, false, false)
GradleCommonKt.configureKotlinCompileTasksGradleCompatibility(project) GradleCommonKt.configureKotlinCompileTasksGradleCompatibility(project)
GradleCommonKt.excludeGradleCommonDependencies(project, sourceSets.main) GradleCommonKt.excludeGradleCommonDependencies(project, sourceSets.main)
TasksKt.optInToExperimentalCompilerApi(project) TasksKt.optInToExperimentalCompilerApi(project)
@@ -26,7 +26,7 @@ dependencies {
} }
} }
configureCommonPublicationSettingsForGradle(signLibraryPublication) configureCommonPublicationSettingsForGradle(signLibraryPublication, sbom = false)
publishing { publishing {
publications { publications {
@@ -65,18 +65,33 @@ val commonSourceSetName = "common"
*/ */
fun Project.configureCommonPublicationSettingsForGradle( fun Project.configureCommonPublicationSettingsForGradle(
signingRequired: Boolean, signingRequired: Boolean,
sbom: Boolean = true,
) { ) {
plugins.withId("maven-publish") { plugins.withId("maven-publish") {
configureDefaultPublishing(signingRequired)
extensions.configure<PublishingExtension> { extensions.configure<PublishingExtension> {
publications publications
.withType<MavenPublication>() .withType<MavenPublication>()
.configureEach { .configureEach {
configureKotlinPomAttributes(project) configureKotlinPomAttributes(project)
if (sbom) {
if (name == "pluginMaven") {
val sbomTask = configureSbom(target = "PluginMaven")
artifact("$buildDir/spdx/PluginMaven/PluginMaven.spdx.json") {
extension = "spdx.json"
builtBy(sbomTask)
}
} else if (name == "Main") {
val sbomTask = configureSbom()
artifact("$buildDir/spdx/MainPublication/MainPublication.spdx.json") {
extension = "spdx.json"
builtBy(sbomTask)
}
}
}
} }
} }
} }
configureDefaultPublishing(signingRequired)
} }
/** /**