From 778a3e9cae518d8b44a10a130c3fac3fb8c89b39 Mon Sep 17 00:00:00 2001 From: Goooler Date: Wed, 23 Apr 2025 09:33:19 +0800 Subject: [PATCH 1/5] Test for KMP 2.0.21-RC --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 005b0e8f2..e17d9b8d6 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -kotlin = "2.1.20" +kotlin = "2.0.21-RC" moshi = "1.15.2" pluginPublish = "1.3.1" From c2108f7c217abe8ccea88740a65d22547b8cc3ec Mon Sep 17 00:00:00 2001 From: Goooler Date: Wed, 23 Apr 2025 12:46:26 +0800 Subject: [PATCH 2/5] Use mainClass added from KGP 1.9.0 --- .../github/jengelman/gradle/plugins/shadow/ShadowKmpPlugin.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/ShadowKmpPlugin.kt b/src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/ShadowKmpPlugin.kt index 4245ad93d..6413e5f41 100644 --- a/src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/ShadowKmpPlugin.kt +++ b/src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/ShadowKmpPlugin.kt @@ -30,7 +30,7 @@ public abstract class ShadowKmpPlugin : Plugin { }, ) - if (!isAtLeastKgpVersion(2, 1, 0)) return@registerShadowJarCommon + if (!isAtLeastKgpVersion(1, 9, 0)) return@registerShadowJarCommon @OptIn(ExperimentalKotlinGradlePluginApi::class) target.mainRun { From 3e56d269b40137d377f6110fec77ed54029f2492 Mon Sep 17 00:00:00 2001 From: Goooler Date: Wed, 23 Apr 2025 12:46:45 +0800 Subject: [PATCH 3/5] Test for KMP 1.9.0 --- gradle/libs.versions.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e17d9b8d6..144e071a7 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -kotlin = "2.0.21-RC" +kotlin = "2.1.20" moshi = "1.15.2" pluginPublish = "1.3.1" @@ -19,7 +19,7 @@ moshi = { module = "com.squareup.moshi:moshi", version.ref = "moshi" } moshi-kotlin = { module = "com.squareup.moshi:moshi-kotlin", version.ref = "moshi" } foojayResolver = "org.gradle.toolchains.foojay-resolver-convention:org.gradle.toolchains.foojay-resolver-convention.gradle.plugin:0.10.0" -kotlin-kmp = { module = "org.jetbrains.kotlin.multiplatform:org.jetbrains.kotlin.multiplatform.gradle.plugin", version.ref = "kotlin" } +kotlin-kmp = { module = "org.jetbrains.kotlin.multiplatform:org.jetbrains.kotlin.multiplatform.gradle.plugin", version = "1.9.0" } pluginPublish = { module = "com.gradle.publish:plugin-publish-plugin", version.ref = "pluginPublish" } androidx-gradlePluginLints = "androidx.lint:lint-gradle:1.0.0-alpha03" From e9d4fc503269082af871bc1556b9eb731c0c50c1 Mon Sep 17 00:00:00 2001 From: Goooler Date: Wed, 23 Apr 2025 12:58:32 +0800 Subject: [PATCH 4/5] Revert "Test for KMP 1.9.0" This reverts commit 3e56d269b40137d377f6110fec77ed54029f2492. --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 144e071a7..005b0e8f2 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -19,7 +19,7 @@ moshi = { module = "com.squareup.moshi:moshi", version.ref = "moshi" } moshi-kotlin = { module = "com.squareup.moshi:moshi-kotlin", version.ref = "moshi" } foojayResolver = "org.gradle.toolchains.foojay-resolver-convention:org.gradle.toolchains.foojay-resolver-convention.gradle.plugin:0.10.0" -kotlin-kmp = { module = "org.jetbrains.kotlin.multiplatform:org.jetbrains.kotlin.multiplatform.gradle.plugin", version = "1.9.0" } +kotlin-kmp = { module = "org.jetbrains.kotlin.multiplatform:org.jetbrains.kotlin.multiplatform.gradle.plugin", version.ref = "kotlin" } pluginPublish = { module = "com.gradle.publish:plugin-publish-plugin", version.ref = "pluginPublish" } androidx-gradlePluginLints = "androidx.lint:lint-gradle:1.0.0-alpha03" From 747136d2f2261b6edf55203679363b0fe0abce8f Mon Sep 17 00:00:00 2001 From: Goooler Date: Wed, 23 Apr 2025 13:14:38 +0800 Subject: [PATCH 5/5] Update docs --- docs/changes/README.md | 4 ++++ docs/kotlin-plugins/README.md | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/changes/README.md b/docs/changes/README.md index 6e4ddbc35..cb2aa090f 100644 --- a/docs/changes/README.md +++ b/docs/changes/README.md @@ -2,6 +2,10 @@ ## [Unreleased](https://github.com/GradleUp/shadow/compare/9.0.0-beta12...HEAD) - 2025-xx-xx +**Changed** + +- Set `Main-Class` attr for KMP 1.9.0 or above. ([#1410](https://github.com/GradleUp/shadow/pull/1410)) + **Fixed** - Avoid creating jvm targets eagerly for KMP. ([#1378](https://github.com/GradleUp/shadow/pull/1378)) diff --git a/docs/kotlin-plugins/README.md b/docs/kotlin-plugins/README.md index 88c8ac902..ac5f4ff26 100644 --- a/docs/kotlin-plugins/README.md +++ b/docs/kotlin-plugins/README.md @@ -83,7 +83,7 @@ automatically configure additional tasks for bundling the shadowed JAR for its ` kotlin { @Suppress("OPT_IN_USAGE") jvm().mainRun { - // Optionally, set the main class for `runJvm`, it's available from Kotlin 2.1.0 + // Optionally, set the main class for `runJvm`. mainClass = "myapp.MainKt" } sourceSets { @@ -121,7 +121,7 @@ automatically configure additional tasks for bundling the shadowed JAR for its ` kotlin { jvm().mainRun { - // Optionally, set the main class for `runJvm`, it's available from Kotlin 2.1.0 + // Optionally, set the main class for `runJvm`. it.mainClass.set('myapp.MainKt') } sourceSets {