Use app…DefaultJvmArgs as convention for start script's defaultJvmOpts

Closes gh-12631
pull/13388/head
Andy Wilkinson 7 years ago
parent 624946a779
commit 00449bef6a

@ -70,8 +70,10 @@ applied to a project, the Spring Boot plugin will automatically import the
When Gradle's {application-plugin}[`application` plugin] is applied to a project, the
Spring Boot plugin:
1. Creates a `CreateStartScripts` task named `bootStartScripts` that will creates scripts
that launch the artifact in the `bootArchives` configuration using `java -jar`.
1. Creates a `CreateStartScripts` task named `bootStartScripts` that will create scripts
that launch the artifact in the `bootArchives` configuration using `java -jar`. The
task is configured to use the `applicationDefaultJvmArgs` property as a convention
for its `defaultJvmOpts` property.
2. Creates a new distribution named `boot` and configures it to contain the artifact in
the `bootArchives` configuration in its `lib` directory and the start scripts in its
`bin` directory.

@ -77,6 +77,8 @@ final class ApplicationPluginAction implements PluginApplicationAction {
() -> new File(project.getBuildDir(), "bootScripts"));
bootStartScripts.getConventionMapping().map("applicationName",
applicationConvention::getApplicationName);
bootStartScripts.getConventionMapping().map("defaultJvmOpts",
applicationConvention::getApplicationDefaultJvmArgs);
CopySpec binCopySpec = project.copySpec().into("bin").from(bootStartScripts);
binCopySpec.setFileMode(0x755);
distribution.getContents().with(binCopySpec);

@ -73,6 +73,14 @@ public class ApplicationPluginActionIntegrationTests {
.contains("bootStartScripts exists = true");
}
@Test
public void createsBootStartScriptsTaskUsesApplicationPluginsDefaultJvmOpts() {
assertThat(this.gradleBuild
.build("startScriptsDefaultJvmOpts", "-PapplyApplicationPlugin")
.getOutput()).contains(
"bootStartScripts defaultJvmOpts = [-Dcom.example.a=alpha, -Dcom.example.b=bravo]");
}
@Test
public void zipDistributionForJarCanBeBuilt() throws IOException {
assertThat(

@ -8,6 +8,7 @@ apply plugin: 'org.springframework.boot'
if (project.hasProperty('applyApplicationPlugin')) {
apply plugin: 'application'
applicationDefaultJvmArgs = ['-Dcom.example.a=alpha', '-Dcom.example.b=bravo']
}
task('taskExists') {
@ -31,3 +32,11 @@ task('javaCompileEncoding') {
}
}
}
task('startScriptsDefaultJvmOpts') {
doFirst {
tasks.withType(org.springframework.boot.gradle.tasks.application.CreateBootStartScripts) {
println "$name defaultJvmOpts = $defaultJvmOpts"
}
}
}

Loading…
Cancel
Save