Polish "Default to optimized launch of the JVM when using spring-boot:run"

Closes gh-16941
This commit is contained in:
Stephane Nicoll 2019-05-25 12:22:00 +02:00
parent 569b850fe0
commit 4cdb5a8ecb
3 changed files with 21 additions and 8 deletions

View File

@ -0,0 +1 @@
invoker.goals=clean verify -X

View File

@ -1,3 +1,6 @@
def file = new File(basedir, "build.log")
return file.text.contains("I haz been run from '$basedir'")
import static org.junit.Assert.assertTrue
def file = new File(basedir, "build.log")
assertTrue file.text.contains("I haz been run from '$basedir'")
assertTrue file.text.contains("JVM argument(s): -Xverify:none -XX:TieredStopAtLevel=1")

View File

@ -19,7 +19,6 @@ package org.springframework.boot.maven;
import java.io.File;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@ -55,8 +54,12 @@ public class RunMojo extends AbstractRunMojo {
*/
private Boolean hasDevtools;
/**
* Whether the JVM's launch should be optimized.
* @since 2.2.0
*/
@Parameter(property = "optimizedLaunch", defaultValue = "true")
private boolean optimizedLaunch = true;
private boolean optimizedLaunch;
@Override
@Deprecated
@ -72,13 +75,19 @@ public class RunMojo extends AbstractRunMojo {
}
}
@Override
protected RunArguments resolveJvmArguments() {
RunArguments jvmArguments = super.resolveJvmArguments();
if (isFork() && this.optimizedLaunch) {
jvmArguments.getArgs().addFirst("-XX:TieredStopAtLevel=1");
jvmArguments.getArgs().addFirst("-Xverify:none");
}
return jvmArguments;
}
@Override
protected void runWithForkedJvm(File workingDirectory, List<String> args,
Map<String, String> environmentVariables) throws MojoExecutionException {
if (this.optimizedLaunch) {
String[] optimizedLaunchArgs = { "-Xverify:none", "-XX:TieredStopAtLevel=1" };
Collections.addAll(args, optimizedLaunchArgs);
}
int exitCode = forkJvm(workingDirectory, args, environmentVariables);
if (exitCode == 0 || exitCode == EXIT_CODE_SIGINT) {
return;