1- @file:OptIn(ExperimentalKotlinGradlePluginApi :: class , ExperimentalWasmDsl ::class )
1+ @file:OptIn(ExperimentalWasmDsl ::class )
22
33import org.jetbrains.dokka.gradle.engine.parameters.VisibilityModifier
4- import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
54import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl
65import org.jetbrains.kotlin.gradle.dsl.ExplicitApiMode
76import org.jetbrains.kotlin.gradle.dsl.JvmTarget
8- import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
9- import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget
10- import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMetadataTarget
11- import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget
127import org.jreleaser.model.Active
138
149plugins {
@@ -18,20 +13,18 @@ plugins {
1813 alias(libs.plugins.dokka)
1914 alias(libs.plugins.jreleaser)
2015 `maven- publish`
16+ signing
2117 alias(libs.plugins.kotlinx.binary.compatibility.validator)
2218}
2319
2420group = " io.modelcontextprotocol"
2521version = " 0.6.0"
2622
27- val mainSourcesJar = tasks.register<Jar >(" mainSourcesJar" ) {
28- archiveClassifier = " sources"
29- from(kotlin.sourceSets.getByName(" commonMain" ).kotlin)
23+ val javadocJar by tasks.registering(Jar ::class ) {
24+ archiveClassifier.set(" javadoc" )
3025}
3126
3227publishing {
33- val javadocJar = configureEmptyJavadocArtifact()
34-
3528 publications.withType(MavenPublication ::class ).all {
3629 if (name.contains(" jvm" , ignoreCase = true )) {
3730 artifact(javadocJar)
@@ -67,19 +60,29 @@ jreleaser {
6760 maxRetries = 240
6861 stagingRepository(layout.buildDirectory.dir(" staging-deploy" ).get().asFile.path)
6962 // workaround: https://github.com/jreleaser/jreleaser/issues/1784
70- kotlin.targets.forEach { target ->
71- if (target !is KotlinJvmTarget && target !is KotlinAndroidTarget && target !is KotlinMetadataTarget ) {
72- val klibArtifactId = if (target.platformType == KotlinPlatformType .wasm) {
73- " ${name} -wasm-${target.name.lowercase().substringAfter(" wasm" )} "
74- } else {
75- " ${name} -${target.name.lowercase()} "
76- }
77- artifactOverride {
78- artifactId = klibArtifactId
79- jar = false
80- verifyPom = false
81- sourceJar = false
82- javadocJar = false
63+ afterEvaluate {
64+ publishing.publications.forEach { publication ->
65+ if (publication is MavenPublication ) {
66+ val pubName = publication.name
67+
68+ if (! pubName.contains(" jvm" , ignoreCase = true )
69+ && ! pubName.contains(" metadata" , ignoreCase = true )
70+ && ! pubName.contains(" kotlinMultiplatform" , ignoreCase = true )
71+ ) {
72+
73+ artifactOverride {
74+ artifactId = when {
75+ pubName.contains(" wasm" , ignoreCase = true ) ->
76+ " ${project.name} -wasm-${pubName.lowercase().substringAfter(" wasm" )} "
77+
78+ else -> " ${project.name} -${pubName.lowercase()} "
79+ }
80+ jar = false
81+ verifyPom = false
82+ sourceJar = false
83+ javadocJar = false
84+ }
85+ }
8386 }
8487 }
8588 }
@@ -133,15 +136,6 @@ fun MavenPom.configureMavenCentralMetadata() {
133136 }
134137}
135138
136- fun configureEmptyJavadocArtifact (): org.gradle.jvm.tasks.Jar {
137- val javadocJar by project.tasks.creating(Jar ::class ) {
138- archiveClassifier.set(" javadoc" )
139- // contents are deliberately left empty
140- // https://central.sonatype.org/publish/requirements/#supply-javadoc-and-sources
141- }
142- return javadocJar
143- }
144-
145139fun MavenPublication.signPublicationIfKeyPresent () {
146140 val keyId = project.getSensitiveProperty(" SIGNING_KEY_ID" )
147141 val signingKey = project.getSensitiveProperty(" SIGNING_KEY_PRIVATE" )
0 commit comments