Skip to content

Commit 058bba1

Browse files
authored
fix deploy for klibs (#153)
* fix deploy for klibs - update gradle wrapper - upgrade jreleaser to 1.19.0 - remove unused code in build.gradle * remove unnecessary check for js * exclude kotlinMultiplatform from publication overrides
1 parent b6bbf40 commit 058bba1

File tree

3 files changed

+29
-35
lines changed

3 files changed

+29
-35
lines changed

build.gradle.kts

Lines changed: 27 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,9 @@
1-
@file:OptIn(ExperimentalKotlinGradlePluginApi::class, ExperimentalWasmDsl::class)
1+
@file:OptIn(ExperimentalWasmDsl::class)
22

33
import org.jetbrains.dokka.gradle.engine.parameters.VisibilityModifier
4-
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
54
import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl
65
import org.jetbrains.kotlin.gradle.dsl.ExplicitApiMode
76
import 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
127
import org.jreleaser.model.Active
138

149
plugins {
@@ -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

2420
group = "io.modelcontextprotocol"
2521
version = "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

3227
publishing {
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-
145139
fun MavenPublication.signPublicationIfKeyPresent() {
146140
val keyId = project.getSensitiveProperty("SIGNING_KEY_ID")
147141
val signingKey = project.getSensitiveProperty("SIGNING_KEY_PRIVATE")

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ coroutines = "1.10.2"
1111
ktor = "3.2.1"
1212
mockk = "1.14.4"
1313
logging = "7.0.7"
14-
jreleaser = "1.17.0"
14+
jreleaser = "1.19.0"
1515
binaryCompatibilityValidatorPlugin = "0.18.0"
1616
slf4j = "2.0.17"
1717
kotest = "5.9.1"

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
44
networkTimeout=10000
55
validateDistributionUrl=true
66
zipStoreBase=GRADLE_USER_HOME

0 commit comments

Comments
 (0)