Merge branch '1.3.x'
This commit is contained in:
commit
fc463afb89
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2015 the original author or authors.
|
||||
* Copyright 2012-2016 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -18,30 +18,55 @@ package org.springframework.boot.gradle;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import org.gradle.tooling.BuildException;
|
||||
import org.gradle.tooling.ProjectConnection;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* Tests for configuring a project's main class
|
||||
*
|
||||
* @author Dave Syer
|
||||
* @author Andy Wilkinson
|
||||
*/
|
||||
public class MainClassTests {
|
||||
|
||||
private static ProjectConnection project;
|
||||
|
||||
private static final String BOOT_VERSION = Versions.getBootVersion();
|
||||
|
||||
private static ProjectConnection project;
|
||||
|
||||
@BeforeClass
|
||||
public static void createProject() throws IOException {
|
||||
project = new ProjectCreator().createProject("main-in-boot-run");
|
||||
project = new ProjectCreator().createProject("main-class");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void mainFromBootRun() {
|
||||
project.newBuild().forTasks("build")
|
||||
.withArguments("-PbootVersion=" + BOOT_VERSION, "--info").run();
|
||||
.withArguments("-PbootVersion=" + BOOT_VERSION, "-PbootRunMain=true")
|
||||
.run();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void nonJavaExecRunTaskIsIgnored() {
|
||||
try {
|
||||
project.newBuild().forTasks("build").withArguments(
|
||||
"-PbootVersion=" + BOOT_VERSION, "-PnonJavaExecRun=true").run();
|
||||
}
|
||||
catch (BuildException ex) {
|
||||
Throwable rootCause = getRootCause(ex);
|
||||
assertThat(rootCause.getMessage()).isEqualTo("Unable to find main class");
|
||||
}
|
||||
}
|
||||
|
||||
private Throwable getRootCause(Throwable ex) {
|
||||
Throwable candidate = ex;
|
||||
while (candidate.getCause() != null) {
|
||||
candidate = candidate.getCause();
|
||||
}
|
||||
return candidate;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -14,10 +14,17 @@ apply plugin: 'spring-boot'
|
||||
group = 'installer'
|
||||
version = '0.0.0'
|
||||
|
||||
bootRun {
|
||||
main = 'org.springframework.boot.SpringApplication'
|
||||
if (project.hasProperty('bootRunMain')) {
|
||||
bootRun {
|
||||
main = 'org.springframework.boot.SpringApplication'
|
||||
}
|
||||
}
|
||||
|
||||
if (project.hasProperty('nonJavaExecRun')) {
|
||||
task run { }
|
||||
}
|
||||
|
||||
|
||||
jar {
|
||||
baseName = 'installer'
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2015 the original author or authors.
|
||||
* Copyright 2012-2016 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -24,6 +24,7 @@ import org.gradle.api.Task;
|
||||
import org.gradle.api.plugins.ApplicationPluginConvention;
|
||||
import org.gradle.api.plugins.ExtraPropertiesExtension;
|
||||
import org.gradle.api.tasks.Input;
|
||||
import org.gradle.api.tasks.JavaExec;
|
||||
import org.gradle.api.tasks.SourceSetOutput;
|
||||
import org.gradle.api.tasks.TaskAction;
|
||||
|
||||
@ -85,9 +86,9 @@ public class FindMainClassTask extends DefaultTask {
|
||||
mainClass = application.getMainClassName();
|
||||
}
|
||||
|
||||
Task runTask = project.getTasks().findByName("run");
|
||||
JavaExec runTask = findRunTask(project);
|
||||
if (mainClass == null && runTask != null) {
|
||||
mainClass = (String) runTask.property("main");
|
||||
mainClass = runTask.getMain();
|
||||
}
|
||||
|
||||
if (mainClass == null) {
|
||||
@ -122,9 +123,17 @@ public class FindMainClassTask extends DefaultTask {
|
||||
application.setMainClassName(mainClass);
|
||||
}
|
||||
if (runTask != null && !runTask.hasProperty("main")) {
|
||||
runTask.setProperty("main", mainClass);
|
||||
runTask.setMain(mainClass);
|
||||
}
|
||||
|
||||
return mainClass;
|
||||
}
|
||||
|
||||
private JavaExec findRunTask(Project project) {
|
||||
Task runTask = project.getTasks().findByName("run");
|
||||
if (runTask instanceof JavaExec) {
|
||||
return (JavaExec) runTask;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user