@@ -5,16 +5,13 @@ import com.github.jengelman.gradle.plugins.shadow.internal.isAtLeastKgpVersion
55import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar.Companion.SHADOW_JAR_TASK_NAME
66import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar.Companion.registerShadowJarCommon
77import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar.Companion.shadowJar
8- import kotlin.reflect.full.memberProperties
9- import kotlin.reflect.jvm.isAccessible
108import org.gradle.api.Plugin
119import org.gradle.api.Project
1210import org.gradle.api.plugins.ApplicationPlugin
1311import org.gradle.api.tasks.JavaExec
1412import org.gradle.api.tasks.bundling.Jar
1513import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
1614import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
17- import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmBinariesDsl
1815import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget
1916
2017public abstract class ShadowKmpPlugin : Plugin <Project > {
@@ -62,15 +59,13 @@ public abstract class ShadowKmpPlugin : Plugin<Project> {
6259
6360 task.classpath = files(tasks.shadowJar)
6461
65- val binariesDsl = target::class .memberProperties
66- .single { it.name == " binariesDsl" }
67- .apply { isAccessible = true }
68- .getter.call(target) as KotlinJvmBinariesDsl
69-
70- binariesDsl.executable { dsl ->
71- task.mainModule.set(dsl.mainModule)
72- task.mainClass.set(dsl.mainClass)
73- task.jvmArguments.convention(dsl.applicationDefaultJvmArgs)
62+ @OptIn(ExperimentalKotlinGradlePluginApi ::class )
63+ target.binaries {
64+ executable { dsl ->
65+ task.mainModule.set(dsl.mainModule)
66+ task.mainClass.set(dsl.mainClass)
67+ task.jvmArguments.convention(dsl.applicationDefaultJvmArgs)
68+ }
7469 }
7570 }
7671 }
0 commit comments