1
- @file:OptIn(ExperimentalKotlinGradlePluginApi :: class , ExperimentalWasmDsl ::class )
1
+ @file:OptIn(ExperimentalWasmDsl ::class )
2
2
3
3
import org.jetbrains.dokka.gradle.engine.parameters.VisibilityModifier
4
- import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
5
4
import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl
6
5
import org.jetbrains.kotlin.gradle.dsl.ExplicitApiMode
7
6
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
12
7
import org.jreleaser.model.Active
13
8
14
9
plugins {
@@ -18,20 +13,18 @@ plugins {
18
13
alias(libs.plugins.dokka)
19
14
alias(libs.plugins.jreleaser)
20
15
`maven- publish`
16
+ signing
21
17
alias(libs.plugins.kotlinx.binary.compatibility.validator)
22
18
}
23
19
24
20
group = " io.modelcontextprotocol"
25
21
version = " 0.6.0"
26
22
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" )
30
25
}
31
26
32
27
publishing {
33
- val javadocJar = configureEmptyJavadocArtifact()
34
-
35
28
publications.withType(MavenPublication ::class ).all {
36
29
if (name.contains(" jvm" , ignoreCase = true )) {
37
30
artifact(javadocJar)
@@ -67,19 +60,29 @@ jreleaser {
67
60
maxRetries = 240
68
61
stagingRepository(layout.buildDirectory.dir(" staging-deploy" ).get().asFile.path)
69
62
// 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
+ }
83
86
}
84
87
}
85
88
}
@@ -133,15 +136,6 @@ fun MavenPom.configureMavenCentralMetadata() {
133
136
}
134
137
}
135
138
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
-
145
139
fun MavenPublication.signPublicationIfKeyPresent () {
146
140
val keyId = project.getSensitiveProperty(" SIGNING_KEY_ID" )
147
141
val signingKey = project.getSensitiveProperty(" SIGNING_KEY_PRIVATE" )
0 commit comments