From f322fd96aafe621a15850286a9a4e484c8aa7f72 Mon Sep 17 00:00:00 2001 From: Goooler Date: Tue, 11 Mar 2025 16:54:41 +0800 Subject: [PATCH] With applicationExtension in ShadowApplicationPlugin --- .../plugins/shadow/ShadowApplicationPlugin.kt | 27 +++++++++++-------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/ShadowApplicationPlugin.kt b/src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/ShadowApplicationPlugin.kt index daf9d3e78..31aaa0164 100644 --- a/src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/ShadowApplicationPlugin.kt +++ b/src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/ShadowApplicationPlugin.kt @@ -34,7 +34,6 @@ public abstract class ShadowApplicationPlugin : Plugin { } protected open fun Project.addRunTask() { - val extension = applicationExtension tasks.register(SHADOW_RUN_TASK_NAME, JavaExec::class.java) { task -> task.description = "Runs this project as a JVM application using the shadow jar" task.group = ApplicationPlugin.APPLICATION_GROUP @@ -43,9 +42,12 @@ public abstract class ShadowApplicationPlugin : Plugin { i.destinationDir.resolve("lib/${s.archiveFile.get().asFile.name}") } task.classpath(jarFile) - task.mainModule.set(extension.mainModule) - task.mainClass.set(extension.mainClass) - task.jvmArguments.convention(provider { extension.applicationDefaultJvmArgs }) + + with(applicationExtension) { + task.mainModule.set(mainModule) + task.mainClass.set(mainClass) + task.jvmArguments.convention(provider { applicationDefaultJvmArgs }) + } task.modularity.inferModulePath.convention(javaPluginExtension.modularity.inferModulePath) task.javaLauncher.convention(javaToolchainService.launcherFor(javaPluginExtension.toolchain)) @@ -53,7 +55,6 @@ public abstract class ShadowApplicationPlugin : Plugin { } protected open fun Project.addCreateScriptsTask() { - val extension = applicationExtension tasks.register(SHADOW_SCRIPTS_TASK_NAME, CreateStartScripts::class.java) { task -> task.description = "Creates OS specific scripts to run the project as a JVM application using the shadow jar" task.group = ApplicationPlugin.APPLICATION_GROUP @@ -65,12 +66,16 @@ public abstract class ShadowApplicationPlugin : Plugin { resources.text.fromString(requireResourceAsText("$dir/windowsStartScript.txt")) task.classpath = files(tasks.shadowJar) - task.mainModule.set(extension.mainModule) - task.mainClass.set(extension.mainClass) - task.conventionMapping.map("applicationName", extension::getApplicationName) - task.conventionMapping.map("outputDir") { layout.buildDirectory.dir("scriptsShadow").get().asFile } - task.conventionMapping.map("executableDir", extension::getExecutableDir) - task.conventionMapping.map("defaultJvmOpts", extension::getApplicationDefaultJvmArgs) + + with(applicationExtension) { + task.mainModule.set(mainModule) + task.mainClass.set(mainClass) + task.conventionMapping.map("applicationName", ::getApplicationName) + task.conventionMapping.map("outputDir") { layout.buildDirectory.dir("scriptsShadow").get().asFile } + task.conventionMapping.map("executableDir", ::getExecutableDir) + task.conventionMapping.map("defaultJvmOpts", ::getApplicationDefaultJvmArgs) + } + task.modularity.inferModulePath.convention(javaPluginExtension.modularity.inferModulePath) } }