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");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with 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 java.io.IOException;
|
||||||
|
|
||||||
|
import org.gradle.tooling.BuildException;
|
||||||
import org.gradle.tooling.ProjectConnection;
|
import org.gradle.tooling.ProjectConnection;
|
||||||
import org.junit.BeforeClass;
|
import org.junit.BeforeClass;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests for configuring a project's main class
|
* Tests for configuring a project's main class
|
||||||
*
|
*
|
||||||
* @author Dave Syer
|
* @author Dave Syer
|
||||||
|
* @author Andy Wilkinson
|
||||||
*/
|
*/
|
||||||
public class MainClassTests {
|
public class MainClassTests {
|
||||||
|
|
||||||
private static ProjectConnection project;
|
|
||||||
|
|
||||||
private static final String BOOT_VERSION = Versions.getBootVersion();
|
private static final String BOOT_VERSION = Versions.getBootVersion();
|
||||||
|
|
||||||
|
private static ProjectConnection project;
|
||||||
|
|
||||||
@BeforeClass
|
@BeforeClass
|
||||||
public static void createProject() throws IOException {
|
public static void createProject() throws IOException {
|
||||||
project = new ProjectCreator().createProject("main-in-boot-run");
|
project = new ProjectCreator().createProject("main-class");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void mainFromBootRun() {
|
public void mainFromBootRun() {
|
||||||
project.newBuild().forTasks("build")
|
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'
|
group = 'installer'
|
||||||
version = '0.0.0'
|
version = '0.0.0'
|
||||||
|
|
||||||
bootRun {
|
if (project.hasProperty('bootRunMain')) {
|
||||||
main = 'org.springframework.boot.SpringApplication'
|
bootRun {
|
||||||
|
main = 'org.springframework.boot.SpringApplication'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (project.hasProperty('nonJavaExecRun')) {
|
||||||
|
task run { }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
jar {
|
jar {
|
||||||
baseName = 'installer'
|
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");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with 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.ApplicationPluginConvention;
|
||||||
import org.gradle.api.plugins.ExtraPropertiesExtension;
|
import org.gradle.api.plugins.ExtraPropertiesExtension;
|
||||||
import org.gradle.api.tasks.Input;
|
import org.gradle.api.tasks.Input;
|
||||||
|
import org.gradle.api.tasks.JavaExec;
|
||||||
import org.gradle.api.tasks.SourceSetOutput;
|
import org.gradle.api.tasks.SourceSetOutput;
|
||||||
import org.gradle.api.tasks.TaskAction;
|
import org.gradle.api.tasks.TaskAction;
|
||||||
|
|
||||||
@ -85,9 +86,9 @@ public class FindMainClassTask extends DefaultTask {
|
|||||||
mainClass = application.getMainClassName();
|
mainClass = application.getMainClassName();
|
||||||
}
|
}
|
||||||
|
|
||||||
Task runTask = project.getTasks().findByName("run");
|
JavaExec runTask = findRunTask(project);
|
||||||
if (mainClass == null && runTask != null) {
|
if (mainClass == null && runTask != null) {
|
||||||
mainClass = (String) runTask.property("main");
|
mainClass = runTask.getMain();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mainClass == null) {
|
if (mainClass == null) {
|
||||||
@ -122,9 +123,17 @@ public class FindMainClassTask extends DefaultTask {
|
|||||||
application.setMainClassName(mainClass);
|
application.setMainClassName(mainClass);
|
||||||
}
|
}
|
||||||
if (runTask != null && !runTask.hasProperty("main")) {
|
if (runTask != null && !runTask.hasProperty("main")) {
|
||||||
runTask.setProperty("main", mainClass);
|
runTask.setMain(mainClass);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 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