Check for a mainClass in "run" task if there is one

If there is a run task with an explicit main it can be used
by the repackage task (assuming its own native setting is
not used).

Fixes gh-389
This commit is contained in:
Dave Syer 2014-02-24 08:54:04 +00:00
parent b7802f98bb
commit 511fff05bb

View File

@ -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));
}