Skip to content

Commit e448ff4

Browse files
committed
Kotlin 2.X, Fix KotlinWithJava publishing
1 parent 1112193 commit e448ff4

File tree

4 files changed

+17
-17
lines changed

4 files changed

+17
-17
lines changed

.idea/kotlinc.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

deployer/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@ plugins {
44
`kotlin-dsl`
55
`java-gradle-plugin`
66
id("io.deepmedia.tools.deployer") version "0.17.0-rc1"
7-
kotlin("plugin.serialization") version "1.9.23"
7+
kotlin("plugin.serialization") version "2.1.20"
88
id("org.jetbrains.dokka") version "1.9.20"
99
}
1010

1111
dependencies {
12-
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.23")
12+
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:2.1.20")
1313

1414
// api("org.jetbrains.dokka:dokka-gradle-plugin:1.8.20")
1515

deployer/src/main/kotlin/io/deepmedia/tools/deployer/inference/KotlinInference.kt

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
99
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
1010
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget
1111
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinOnlyTarget
12+
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinWithJavaTarget
1213

1314
internal class KotlinInference : Inference {
1415
private val pluginIds = listOf(
@@ -22,15 +23,19 @@ internal class KotlinInference : Inference {
2223
// Should use AndroidInference!
2324
return
2425
}
25-
if (target is KotlinOnlyTarget<*>) {
26+
if (target is KotlinOnlyTarget<*> || target is KotlinWithJavaTarget<*, *>) {
2627
create(true) {
27-
fromKotlinTarget(target)
28+
if (target is KotlinOnlyTarget<*>) {
29+
fromKotlinTarget(target)
30+
} else if (target is KotlinWithJavaTarget<*, *>) {
31+
fromKotlinTarget(target)
32+
}
2833
if (multiplatform && target.platformType != KotlinPlatformType.common) {
2934
artifactId.set { "$it-${target.name.lowercase()}" }
3035
}
3136
}
3237
} else {
33-
error("Unexpected kotlin target: $target")
38+
error("Unexpected kotlin target: $target (${target::class})")
3439
}
3540
}
3641

deployer/src/main/kotlin/io/deepmedia/tools/deployer/model/Component.kt

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ import org.gradle.api.provider.Property
1111
import org.gradle.api.publish.PublicationContainer
1212
import org.gradle.api.publish.PublishingExtension
1313
import org.gradle.api.publish.maven.MavenPublication
14-
import org.gradle.api.tasks.TaskProvider
15-
import org.gradle.api.tasks.bundling.Jar
1614
import org.gradle.kotlin.dsl.*
1715
import org.gradle.plugin.devel.PluginDeclaration
1816
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
@@ -122,19 +120,16 @@ open class Component @Inject constructor(private val objects: ObjectFactory) {
122120
// already has the component so no extra configureWhen is needed here. See:
123121
// https://youtrack.jetbrains.com/issue/KT-53300
124122
} else {
125-
fromNonAndroidNonMetadataKotlinTarget(target)
123+
val softwareComponents = (target as KotlinTarget).components
124+
val softwareComponent = softwareComponents.singleOrNull()
125+
softwareComponent ?: error("$target has more/less than 1 component: $softwareComponents")
126+
fromSoftwareComponent(softwareComponent, target)
126127
}
127128
}
128129

129130
fun fromKotlinTarget(target: KotlinWithJavaTarget<*, *>) {
130-
fromNonAndroidNonMetadataKotlinTarget(target)
131-
}
132-
133-
private fun fromNonAndroidNonMetadataKotlinTarget(target: KotlinTarget) {
134-
val softwareComponents = target.components
135-
val softwareComponent = softwareComponents.singleOrNull()
136-
softwareComponent ?: error("$target has more/less than 1 component: ${softwareComponents}")
137-
fromSoftwareComponent(softwareComponent, target)
131+
// target.components doesn't work in this case.
132+
fromSoftwareComponent("java", target)
138133
}
139134

140135
/**

0 commit comments

Comments
 (0)