@@ -5,16 +5,13 @@ import com.github.jengelman.gradle.plugins.shadow.internal.isAtLeastKgpVersion
5
5
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar.Companion.SHADOW_JAR_TASK_NAME
6
6
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar.Companion.registerShadowJarCommon
7
7
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar.Companion.shadowJar
8
- import kotlin.reflect.full.memberProperties
9
- import kotlin.reflect.jvm.isAccessible
10
8
import org.gradle.api.Plugin
11
9
import org.gradle.api.Project
12
10
import org.gradle.api.plugins.ApplicationPlugin
13
11
import org.gradle.api.tasks.JavaExec
14
12
import org.gradle.api.tasks.bundling.Jar
15
13
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
16
14
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
17
- import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmBinariesDsl
18
15
import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget
19
16
20
17
public abstract class ShadowKmpPlugin : Plugin <Project > {
@@ -62,15 +59,13 @@ public abstract class ShadowKmpPlugin : Plugin<Project> {
62
59
63
60
task.classpath = files(tasks.shadowJar)
64
61
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
+ }
74
69
}
75
70
}
76
71
}
0 commit comments