diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/it/run-fork/invoker.properties b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/it/run-fork/invoker.properties new file mode 100644 index 00000000000..8056f772dae --- /dev/null +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/it/run-fork/invoker.properties @@ -0,0 +1 @@ +invoker.goals=clean verify -X \ No newline at end of file diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/it/run-fork/verify.groovy b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/it/run-fork/verify.groovy index 323ffc863b2..54e7b17fa2a 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/it/run-fork/verify.groovy +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/it/run-fork/verify.groovy @@ -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") diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/RunMojo.java b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/RunMojo.java index 1bddc14f06c..29420c733ba 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/RunMojo.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/RunMojo.java @@ -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 args, Map 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;