Files
kotlin-fork/plugins/kapt3/kotlin-annotation-processing-embeddable/build.gradle.kts
T
Nikolay Krasko 7f751c5d61 Fix signing in :kotlin-annotation-processing-embeddable
Problem is reproducible only when singing is enabled.
Register dependencies between publication and signing tasks.
It looks like signing tasks have same output and need to be registered
in all publications.

Error:

* What went wrong:
Some problems were found with the configuration of task ':kotlin-annotation-processing-embeddable:publishMainPublicationToMavenLocal' (type 'PublishToMavenLocal').
  - Gradle detected a problem with the following location: '/Users/Shared/Projects/kotlin/plugins/kapt3/kotlin-annotation-processing-embeddable/build/libs/kotlin-annotation-processing-embeddable-1.9.255-SNAPSHOT-sources.jar.asc'.

    Reason: Task ':kotlin-annotation-processing-embeddable:publishMainPublicationToMavenLocal' uses this output of task ':kotlin-annotation-processing-embeddable:signGradleCompatPublication' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed.

Reproduce:

gradle :kotlin-annotation-processing-embeddable:publishToMavenLocal -Psigning.gnupg.keyName=* -Psigning.gnupg.passphrase=* -PsigningRequired=true

KTI-1282
2023-06-28 18:00:14 +00:00

55 lines
1.9 KiB
Kotlin

import org.gradle.api.publish.internal.PublicationInternal
import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly
import plugins.KotlinBuildPublishingPlugin.Companion.ADHOC_COMPONENT_NAME
import plugins.configureKotlinPomAttributes
import plugins.signLibraryPublication
description = "Annotation Processor for Kotlin (for using with embeddable compiler)"
plugins {
`java-library`
}
dependencies {
embedded(project(":kotlin-annotation-processing")) { isTransitive = false }
}
publish()
// Special compat publication for Kapt/Gradle until we will have minimal
// supported IDEA/Kotlin plugin version 1.9.0
val publications: PublicationContainer = extensions.getByType<PublishingExtension>().publications
val gradleCompatPublication = publications.register<MavenPublication>("gradleCompat") {
artifactId = "kotlin-annotation-processing-gradle"
from(components[ADHOC_COMPONENT_NAME])
// Workaround for https://github.com/gradle/gradle/issues/12324
(this as PublicationInternal<*>).isAlias = true
configureKotlinPomAttributes(project)
}
if (signLibraryPublication) {
tasks.named("publishGradleCompatPublicationToMavenLocal").configure {
dependsOn("signMainPublication")
}
tasks.named("publishGradleCompatPublicationToMavenRepository").configure {
dependsOn("signMainPublication")
}
tasks.named("publishMainPublicationToMavenLocal").configure {
dependsOn("signGradleCompatPublication")
}
tasks.named("publishMainPublicationToMavenRepository").configure {
dependsOn("signGradleCompatPublication")
}
}
val targetName = "${gradleCompatPublication.name.capitalizeAsciiOnly()}Publication"
configureSbom(
target = targetName,
documentName = "kotlin-annotation-processing-gradle",
publication = gradleCompatPublication
)
runtimeJar(rewriteDefaultJarDepsToShadedCompiler())
sourcesJar()
javadocJar()