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
This commit is contained in:
parent
b6bbf40175
commit
058bba110f
3 changed files with 29 additions and 35 deletions
|
|
@ -1,14 +1,9 @@
|
||||||
@file:OptIn(ExperimentalKotlinGradlePluginApi::class, ExperimentalWasmDsl::class)
|
@file:OptIn(ExperimentalWasmDsl::class)
|
||||||
|
|
||||||
import org.jetbrains.dokka.gradle.engine.parameters.VisibilityModifier
|
import org.jetbrains.dokka.gradle.engine.parameters.VisibilityModifier
|
||||||
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
|
|
||||||
import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl
|
import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl
|
||||||
import org.jetbrains.kotlin.gradle.dsl.ExplicitApiMode
|
import org.jetbrains.kotlin.gradle.dsl.ExplicitApiMode
|
||||||
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
|
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
|
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget
|
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMetadataTarget
|
|
||||||
import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget
|
|
||||||
import org.jreleaser.model.Active
|
import org.jreleaser.model.Active
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
|
|
@ -18,20 +13,18 @@ plugins {
|
||||||
alias(libs.plugins.dokka)
|
alias(libs.plugins.dokka)
|
||||||
alias(libs.plugins.jreleaser)
|
alias(libs.plugins.jreleaser)
|
||||||
`maven-publish`
|
`maven-publish`
|
||||||
|
signing
|
||||||
alias(libs.plugins.kotlinx.binary.compatibility.validator)
|
alias(libs.plugins.kotlinx.binary.compatibility.validator)
|
||||||
}
|
}
|
||||||
|
|
||||||
group = "io.modelcontextprotocol"
|
group = "io.modelcontextprotocol"
|
||||||
version = "0.6.0"
|
version = "0.6.0"
|
||||||
|
|
||||||
val mainSourcesJar = tasks.register<Jar>("mainSourcesJar") {
|
val javadocJar by tasks.registering(Jar::class) {
|
||||||
archiveClassifier = "sources"
|
archiveClassifier.set("javadoc")
|
||||||
from(kotlin.sourceSets.getByName("commonMain").kotlin)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
publishing {
|
publishing {
|
||||||
val javadocJar = configureEmptyJavadocArtifact()
|
|
||||||
|
|
||||||
publications.withType(MavenPublication::class).all {
|
publications.withType(MavenPublication::class).all {
|
||||||
if (name.contains("jvm", ignoreCase = true)) {
|
if (name.contains("jvm", ignoreCase = true)) {
|
||||||
artifact(javadocJar)
|
artifact(javadocJar)
|
||||||
|
|
@ -67,19 +60,29 @@ jreleaser {
|
||||||
maxRetries = 240
|
maxRetries = 240
|
||||||
stagingRepository(layout.buildDirectory.dir("staging-deploy").get().asFile.path)
|
stagingRepository(layout.buildDirectory.dir("staging-deploy").get().asFile.path)
|
||||||
// workaround: https://github.com/jreleaser/jreleaser/issues/1784
|
// workaround: https://github.com/jreleaser/jreleaser/issues/1784
|
||||||
kotlin.targets.forEach { target ->
|
afterEvaluate {
|
||||||
if (target !is KotlinJvmTarget && target !is KotlinAndroidTarget && target !is KotlinMetadataTarget) {
|
publishing.publications.forEach { publication ->
|
||||||
val klibArtifactId = if (target.platformType == KotlinPlatformType.wasm) {
|
if (publication is MavenPublication) {
|
||||||
"${name}-wasm-${target.name.lowercase().substringAfter("wasm")}"
|
val pubName = publication.name
|
||||||
} else {
|
|
||||||
"${name}-${target.name.lowercase()}"
|
if (!pubName.contains("jvm", ignoreCase = true)
|
||||||
}
|
&& !pubName.contains("metadata", ignoreCase = true)
|
||||||
artifactOverride {
|
&& !pubName.contains("kotlinMultiplatform", ignoreCase = true)
|
||||||
artifactId = klibArtifactId
|
) {
|
||||||
jar = false
|
|
||||||
verifyPom = false
|
artifactOverride {
|
||||||
sourceJar = false
|
artifactId = when {
|
||||||
javadocJar = false
|
pubName.contains("wasm", ignoreCase = true) ->
|
||||||
|
"${project.name}-wasm-${pubName.lowercase().substringAfter("wasm")}"
|
||||||
|
|
||||||
|
else -> "${project.name}-${pubName.lowercase()}"
|
||||||
|
}
|
||||||
|
jar = false
|
||||||
|
verifyPom = false
|
||||||
|
sourceJar = false
|
||||||
|
javadocJar = false
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -133,15 +136,6 @@ fun MavenPom.configureMavenCentralMetadata() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun configureEmptyJavadocArtifact(): org.gradle.jvm.tasks.Jar {
|
|
||||||
val javadocJar by project.tasks.creating(Jar::class) {
|
|
||||||
archiveClassifier.set("javadoc")
|
|
||||||
// contents are deliberately left empty
|
|
||||||
// https://central.sonatype.org/publish/requirements/#supply-javadoc-and-sources
|
|
||||||
}
|
|
||||||
return javadocJar
|
|
||||||
}
|
|
||||||
|
|
||||||
fun MavenPublication.signPublicationIfKeyPresent() {
|
fun MavenPublication.signPublicationIfKeyPresent() {
|
||||||
val keyId = project.getSensitiveProperty("SIGNING_KEY_ID")
|
val keyId = project.getSensitiveProperty("SIGNING_KEY_ID")
|
||||||
val signingKey = project.getSensitiveProperty("SIGNING_KEY_PRIVATE")
|
val signingKey = project.getSensitiveProperty("SIGNING_KEY_PRIVATE")
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ coroutines = "1.10.2"
|
||||||
ktor = "3.2.1"
|
ktor = "3.2.1"
|
||||||
mockk = "1.14.4"
|
mockk = "1.14.4"
|
||||||
logging = "7.0.7"
|
logging = "7.0.7"
|
||||||
jreleaser = "1.17.0"
|
jreleaser = "1.19.0"
|
||||||
binaryCompatibilityValidatorPlugin = "0.18.0"
|
binaryCompatibilityValidatorPlugin = "0.18.0"
|
||||||
slf4j = "2.0.17"
|
slf4j = "2.0.17"
|
||||||
kotest = "5.9.1"
|
kotest = "5.9.1"
|
||||||
|
|
|
||||||
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
|
|
@ -1,6 +1,6 @@
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
|
||||||
networkTimeout=10000
|
networkTimeout=10000
|
||||||
validateDistributionUrl=true
|
validateDistributionUrl=true
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue