diff --git a/spring-boot-tools/spring-boot-gradle-plugin/src/main/groovy/org/springframework/boot/gradle/task/Repackage.java b/spring-boot-tools/spring-boot-gradle-plugin/src/main/groovy/org/springframework/boot/gradle/task/Repackage.java index 3b3ccc41d2b..dbfe6a4fcdf 100644 --- a/spring-boot-tools/spring-boot-gradle-plugin/src/main/groovy/org/springframework/boot/gradle/task/Repackage.java +++ b/spring-boot-tools/spring-boot-gradle-plugin/src/main/groovy/org/springframework/boot/gradle/task/Repackage.java @@ -23,6 +23,7 @@ import java.util.concurrent.TimeUnit; import org.gradle.api.Action; import org.gradle.api.DefaultTask; import org.gradle.api.Project; +import org.gradle.api.tasks.JavaExec; import org.gradle.api.tasks.TaskAction; import org.gradle.api.tasks.bundling.Jar; import org.springframework.boot.gradle.SpringBootPluginExtension; @@ -71,6 +72,11 @@ public class Repackage extends DefaultTask { else if (extension.getCustomConfiguration() != null) { libraries.setCustomConfigurationName(extension.getCustomConfiguration()); } + JavaExec runner = (JavaExec) project.getTasks().findByName("run"); + if (runner!=null && mainClass==null) { + getLogger().info("Found main in run task: " + runner.getMain()); + setMainClass(runner.getMain()); + } project.getTasks().withType(Jar.class, new RepackageAction(extension, libraries)); }