Skip to content

Commit 4cdb5a8

Browse files
committed
Polish "Default to optimized launch of the JVM when using spring-boot:run"
Closes gh-16941
1 parent 569b850 commit 4cdb5a8

File tree

3 files changed

+20
-7
lines changed

3 files changed

+20
-7
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
invoker.goals=clean verify -X
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
import static org.junit.Assert.assertTrue
2+
13
def file = new File(basedir, "build.log")
2-
return file.text.contains("I haz been run from '$basedir'")
4+
assertTrue file.text.contains("I haz been run from '$basedir'")
5+
assertTrue file.text.contains("JVM argument(s): -Xverify:none -XX:TieredStopAtLevel=1")
36

spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/RunMojo.java

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import java.io.File;
2020
import java.net.URL;
2121
import java.net.URLClassLoader;
22-
import java.util.Collections;
2322
import java.util.List;
2423
import java.util.Map;
2524

@@ -55,8 +54,12 @@ public class RunMojo extends AbstractRunMojo {
5554
*/
5655
private Boolean hasDevtools;
5756

57+
/**
58+
* Whether the JVM's launch should be optimized.
59+
* @since 2.2.0
60+
*/
5861
@Parameter(property = "optimizedLaunch", defaultValue = "true")
59-
private boolean optimizedLaunch = true;
62+
private boolean optimizedLaunch;
6063

6164
@Override
6265
@Deprecated
@@ -72,13 +75,19 @@ protected void logDisabledFork() {
7275
}
7376
}
7477

78+
@Override
79+
protected RunArguments resolveJvmArguments() {
80+
RunArguments jvmArguments = super.resolveJvmArguments();
81+
if (isFork() && this.optimizedLaunch) {
82+
jvmArguments.getArgs().addFirst("-XX:TieredStopAtLevel=1");
83+
jvmArguments.getArgs().addFirst("-Xverify:none");
84+
}
85+
return jvmArguments;
86+
}
87+
7588
@Override
7689
protected void runWithForkedJvm(File workingDirectory, List<String> args,
7790
Map<String, String> environmentVariables) throws MojoExecutionException {
78-
if (this.optimizedLaunch) {
79-
String[] optimizedLaunchArgs = { "-Xverify:none", "-XX:TieredStopAtLevel=1" };
80-
Collections.addAll(args, optimizedLaunchArgs);
81-
}
8291
int exitCode = forkJvm(workingDirectory, args, environmentVariables);
8392
if (exitCode == 0 || exitCode == EXIT_CODE_SIGINT) {
8493
return;

0 commit comments

Comments
 (0)