commit
d6192a0fa1
|
|
@ -36,6 +36,8 @@ import org.gradle.api.tasks.TaskProvider;
|
|||
import org.gradle.jvm.application.scripts.TemplateBasedScriptGenerator;
|
||||
import org.gradle.jvm.application.tasks.CreateStartScripts;
|
||||
|
||||
import org.springframework.boot.gradle.tasks.run.BootRun;
|
||||
|
||||
/**
|
||||
* Action that is executed in response to the {@link ApplicationPlugin} being applied.
|
||||
*
|
||||
|
|
@ -56,6 +58,10 @@ final class ApplicationPluginAction implements PluginApplicationAction {
|
|||
CopySpec binCopySpec = project.copySpec().into("bin").from(bootStartScripts);
|
||||
binCopySpec.setFileMode(0755);
|
||||
distribution.getContents().with(binCopySpec);
|
||||
project.getTasks()
|
||||
.named(SpringBootPlugin.BOOT_RUN_TASK_NAME, BootRun.class)
|
||||
.configure((bootRun) -> bootRun.getConventionMapping()
|
||||
.map("jvmArgs", javaApplication::getApplicationDefaultJvmArgs));
|
||||
}
|
||||
|
||||
private void configureCreateStartScripts(Project project, JavaApplication javaApplication,
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@
|
|||
package org.springframework.boot.gradle.plugin;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.Callable;
|
||||
|
|
@ -201,16 +200,10 @@ final class JavaPluginAction implements PluginApplicationAction {
|
|||
.findByName(SourceSet.MAIN_SOURCE_SET_NAME)
|
||||
.getRuntimeClasspath()
|
||||
.filter(new JarTypeFileSpec());
|
||||
project.getTasks().register("bootRun", BootRun.class, (run) -> {
|
||||
project.getTasks().register(SpringBootPlugin.BOOT_RUN_TASK_NAME, BootRun.class, (run) -> {
|
||||
run.setDescription("Runs this project as a Spring Boot application.");
|
||||
run.setGroup(ApplicationPlugin.APPLICATION_GROUP);
|
||||
run.classpath(classpath);
|
||||
run.getConventionMapping().map("jvmArgs", () -> {
|
||||
if (project.hasProperty("applicationDefaultJvmArgs")) {
|
||||
return project.property("applicationDefaultJvmArgs");
|
||||
}
|
||||
return Collections.emptyList();
|
||||
});
|
||||
run.getMainClass().convention(resolveMainClassName.flatMap(ResolveMainClassName::readMainClassName));
|
||||
configureToolchainConvention(project, run);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -70,6 +70,8 @@ public class SpringBootPlugin implements Plugin<Project> {
|
|||
*/
|
||||
public static final String BOOT_BUILD_IMAGE_TASK_NAME = "bootBuildImage";
|
||||
|
||||
static final String BOOT_RUN_TASK_NAME = "bootRun";
|
||||
|
||||
/**
|
||||
* The name of the {@code developmentOnly} configuration.
|
||||
* @since 2.3.0
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ class NativeImagePluginActionIntegrationTests {
|
|||
@TestTemplate
|
||||
void reachabilityMetadataConfigurationFilesAreCopiedToJar() throws IOException {
|
||||
writeDummySpringApplicationAotProcessorMainClass();
|
||||
BuildResult result = this.gradleBuild.build("bootJar");
|
||||
BuildResult result = this.gradleBuild.expectDeprecationWarningsWithAtLeastVersion("8.2-rc-1").build("bootJar");
|
||||
assertThat(result.task(":bootJar").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
|
||||
File buildLibs = new File(this.gradleBuild.getProjectDir(), "build/libs");
|
||||
File jarFile = new File(buildLibs, this.gradleBuild.getProjectDir().getName() + ".jar");
|
||||
|
|
@ -75,7 +75,7 @@ class NativeImagePluginActionIntegrationTests {
|
|||
writeDummySpringApplicationAotProcessorMainClass();
|
||||
FileSystemUtils.copyRecursively(new File("src/test/resources/reachability-metadata-repository"),
|
||||
new File(this.gradleBuild.getProjectDir(), "reachability-metadata-repository"));
|
||||
BuildResult result = this.gradleBuild.build("bootJar");
|
||||
BuildResult result = this.gradleBuild.expectDeprecationWarningsWithAtLeastVersion("8.2-rc-1").build("bootJar");
|
||||
assertThat(result.task(":bootJar").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
|
||||
File buildLibs = new File(this.gradleBuild.getProjectDir(), "build/libs");
|
||||
File jarFile = new File(buildLibs, this.gradleBuild.getProjectDir().getName() + ".jar");
|
||||
|
|
@ -91,27 +91,31 @@ class NativeImagePluginActionIntegrationTests {
|
|||
@TestTemplate
|
||||
void bootBuildImageIsConfiguredToBuildANativeImage() {
|
||||
writeDummySpringApplicationAotProcessorMainClass();
|
||||
BuildResult result = this.gradleBuild.build("bootBuildImageConfiguration");
|
||||
BuildResult result = this.gradleBuild.expectDeprecationWarningsWithAtLeastVersion("8.2-rc-1")
|
||||
.build("bootBuildImageConfiguration");
|
||||
assertThat(result.getOutput()).contains("paketobuildpacks/builder:tiny").contains("BP_NATIVE_IMAGE = true");
|
||||
}
|
||||
|
||||
@TestTemplate
|
||||
void developmentOnlyDependenciesDoNotAppearInNativeImageClasspath() {
|
||||
writeDummySpringApplicationAotProcessorMainClass();
|
||||
BuildResult result = this.gradleBuild.build("checkNativeImageClasspath");
|
||||
BuildResult result = this.gradleBuild.expectDeprecationWarningsWithAtLeastVersion("8.2-rc-1")
|
||||
.build("checkNativeImageClasspath");
|
||||
assertThat(result.getOutput()).doesNotContain("commons-lang");
|
||||
}
|
||||
|
||||
@TestTemplate
|
||||
void classesGeneratedDuringAotProcessingAreOnTheNativeImageClasspath() {
|
||||
BuildResult result = this.gradleBuild.build("checkNativeImageClasspath");
|
||||
BuildResult result = this.gradleBuild.expectDeprecationWarningsWithAtLeastVersion("8.2-rc-1")
|
||||
.build("checkNativeImageClasspath");
|
||||
assertThat(result.getOutput()).contains(projectPath("build/classes/java/aot"),
|
||||
projectPath("build/resources/aot"), projectPath("build/generated/aotClasses"));
|
||||
}
|
||||
|
||||
@TestTemplate
|
||||
void classesGeneratedDuringAotTestProcessingAreOnTheTestNativeImageClasspath() {
|
||||
BuildResult result = this.gradleBuild.build("checkTestNativeImageClasspath");
|
||||
BuildResult result = this.gradleBuild.expectDeprecationWarningsWithAtLeastVersion("8.2-rc-1")
|
||||
.build("checkTestNativeImageClasspath");
|
||||
assertThat(result.getOutput()).contains(projectPath("build/classes/java/aotTest"),
|
||||
projectPath("build/resources/aotTest"), projectPath("build/generated/aotTestClasses"));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,9 @@ plugins {
|
|||
id 'org.springframework.boot' version '{version}'
|
||||
}
|
||||
|
||||
applicationName = 'custom'
|
||||
application {
|
||||
applicationName = 'custom'
|
||||
}
|
||||
|
||||
bootJar {
|
||||
mainClass = 'com.example.ExampleApplication'
|
||||
|
|
|
|||
|
|
@ -4,7 +4,9 @@ plugins {
|
|||
|
||||
if (project.hasProperty('applyApplicationPlugin')) {
|
||||
apply plugin: 'application'
|
||||
applicationDefaultJvmArgs = ['-Dcom.example.a=alpha', '-Dcom.example.b=bravo']
|
||||
application {
|
||||
applicationDefaultJvmArgs = ['-Dcom.example.a=alpha', '-Dcom.example.b=bravo']
|
||||
}
|
||||
}
|
||||
|
||||
task('taskExists') {
|
||||
|
|
|
|||
|
|
@ -3,8 +3,10 @@ plugins {
|
|||
id 'org.springframework.boot' version '{version}'
|
||||
}
|
||||
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
java {
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
}
|
||||
|
||||
bootBuildImage {
|
||||
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.2"
|
||||
|
|
|
|||
|
|
@ -3,8 +3,10 @@ plugins {
|
|||
id 'org.springframework.boot' version '{version}'
|
||||
}
|
||||
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
java {
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
}
|
||||
|
||||
bootBuildImage {
|
||||
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.2"
|
||||
|
|
|
|||
|
|
@ -3,8 +3,10 @@ plugins {
|
|||
id 'org.springframework.boot' version '{version}'
|
||||
}
|
||||
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
java {
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
}
|
||||
|
||||
bootBuildImage {
|
||||
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.2"
|
||||
|
|
|
|||
|
|
@ -3,8 +3,10 @@ plugins {
|
|||
id 'org.springframework.boot' version '{version}'
|
||||
}
|
||||
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
java {
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
}
|
||||
|
||||
bootBuildImage {
|
||||
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.2"
|
||||
|
|
|
|||
|
|
@ -3,8 +3,10 @@ plugins {
|
|||
id 'org.springframework.boot' version '{version}'
|
||||
}
|
||||
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
java {
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
}
|
||||
|
||||
bootBuildImage {
|
||||
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.2"
|
||||
|
|
|
|||
|
|
@ -3,5 +3,7 @@ plugins {
|
|||
id 'org.springframework.boot' version '{version}'
|
||||
}
|
||||
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
java {
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,8 +3,10 @@ plugins {
|
|||
id 'org.springframework.boot' version '{version}'
|
||||
}
|
||||
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
java {
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
}
|
||||
|
||||
bootBuildImage {
|
||||
imageName = "example/test-image-custom"
|
||||
|
|
|
|||
|
|
@ -3,8 +3,10 @@ plugins {
|
|||
id 'org.springframework.boot' version '{version}'
|
||||
}
|
||||
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
java {
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
}
|
||||
|
||||
bootBuildImage {
|
||||
imageName = "example/test-image-name"
|
||||
|
|
|
|||
|
|
@ -3,8 +3,10 @@ plugins {
|
|||
id 'org.springframework.boot' version '{version}'
|
||||
}
|
||||
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
java {
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
}
|
||||
|
||||
bootJar {
|
||||
launchScript()
|
||||
|
|
|
|||
|
|
@ -7,8 +7,10 @@ if (project.hasProperty('applyWarPlugin')) {
|
|||
apply plugin: 'war'
|
||||
}
|
||||
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
java {
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
}
|
||||
|
||||
bootBuildImage {
|
||||
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.2"
|
||||
|
|
|
|||
|
|
@ -9,8 +9,10 @@ if (project.hasProperty('applyWarPlugin')) {
|
|||
apply plugin: 'war'
|
||||
}
|
||||
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
java {
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
}
|
||||
|
||||
bootBuildImage {
|
||||
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.2"
|
||||
|
|
|
|||
|
|
@ -3,8 +3,10 @@ plugins {
|
|||
id 'org.springframework.boot' version '{version}'
|
||||
}
|
||||
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
java {
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
}
|
||||
|
||||
bootBuildImage {
|
||||
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.2"
|
||||
|
|
|
|||
|
|
@ -3,8 +3,10 @@ plugins {
|
|||
id 'org.springframework.boot' version '{version}'
|
||||
}
|
||||
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
java {
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
}
|
||||
|
||||
bootBuildImage {
|
||||
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.2"
|
||||
|
|
|
|||
|
|
@ -3,8 +3,10 @@ plugins {
|
|||
id 'org.springframework.boot' version '{version}'
|
||||
}
|
||||
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
java {
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
}
|
||||
|
||||
bootBuildImage {
|
||||
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.2"
|
||||
|
|
|
|||
|
|
@ -3,8 +3,10 @@ plugins {
|
|||
id 'org.springframework.boot' version '{version}'
|
||||
}
|
||||
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
java {
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
}
|
||||
|
||||
bootBuildImage {
|
||||
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.2"
|
||||
|
|
|
|||
|
|
@ -3,8 +3,10 @@ plugins {
|
|||
id 'org.springframework.boot' version '{version}'
|
||||
}
|
||||
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
java {
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
}
|
||||
|
||||
bootBuildImage {
|
||||
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.2"
|
||||
|
|
|
|||
|
|
@ -3,8 +3,10 @@ plugins {
|
|||
id 'org.springframework.boot' version '{version}'
|
||||
}
|
||||
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
java {
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
}
|
||||
|
||||
bootBuildImage {
|
||||
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.2"
|
||||
|
|
|
|||
|
|
@ -3,8 +3,10 @@ plugins {
|
|||
id 'org.springframework.boot' version '{version}'
|
||||
}
|
||||
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
java {
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
}
|
||||
|
||||
bootBuildImage {
|
||||
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.2"
|
||||
|
|
|
|||
|
|
@ -7,8 +7,10 @@ if (project.hasProperty('applyWarPlugin')) {
|
|||
apply plugin: 'war'
|
||||
}
|
||||
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
java {
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
}
|
||||
|
||||
bootBuildImage {
|
||||
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.2"
|
||||
|
|
|
|||
|
|
@ -3,10 +3,12 @@ plugins {
|
|||
id 'org.springframework.boot' version '{version}'
|
||||
}
|
||||
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
java {
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
}
|
||||
|
||||
bootBuildImage {
|
||||
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.2"
|
||||
publish = true
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,4 +4,6 @@ plugins {
|
|||
id 'org.springframework.boot' version '{version}'
|
||||
}
|
||||
|
||||
mainClassName = 'com.example.CustomMain'
|
||||
application {
|
||||
mainClass = 'com.example.CustomMain'
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,4 +4,6 @@ plugins {
|
|||
id 'org.springframework.boot' version '{version}'
|
||||
}
|
||||
|
||||
mainClassName = 'com.example.CustomMain'
|
||||
application {
|
||||
mainClass = 'com.example.CustomMain'
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,4 +3,6 @@ plugins {
|
|||
id 'org.springframework.boot' version '{version}'
|
||||
}
|
||||
|
||||
mainClassName = 'com.example.bootrun.main.CustomMainClass'
|
||||
application {
|
||||
mainClass = 'com.example.bootrun.main.CustomMainClass'
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ public final class GradleVersions {
|
|||
}
|
||||
|
||||
public static List<String> allCompatible() {
|
||||
return Arrays.asList("7.5.1", GradleVersion.current().getVersion(), "8.0.2", "8.1.1");
|
||||
return Arrays.asList("7.5.1", GradleVersion.current().getVersion(), "8.0.2", "8.1.1", "8.2-rc-1");
|
||||
}
|
||||
|
||||
public static String minimumCompatible() {
|
||||
|
|
|
|||
Loading…
Reference in New Issue