diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/build.gradle b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/build.gradle index fc90f32dec7c..603ff3916cc3 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/build.gradle +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/build.gradle @@ -72,6 +72,7 @@ task dependencyVersions(type: org.springframework.boot.build.constraints.Extract tasks.withType(org.asciidoctor.gradle.jvm.AbstractAsciidoctorTask) { dependsOn dependencyVersions + inputs.dir('src/docs/gradle').withPathSensitivity(PathSensitivity.RELATIVE) doFirst { attributes "dependency-management-plugin-version": dependencyVersions.versionConstraints["io.spring.gradle:dependency-management-plugin"] } diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-env-proxy.gradle b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-env-proxy.gradle index a70bf09879a3..45ab0a9d52cc 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-env-proxy.gradle +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-env-proxy.gradle @@ -15,3 +15,9 @@ bootBuildImage { ] } // end::env[] + +task bootBuildImageEnvironment { + doFirst { + bootBuildImage.environment.each { name, value -> println "$name=$value" } + } +} diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-env-proxy.gradle.kts b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-env-proxy.gradle.kts index 8977fde10e9e..723790814c85 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-env-proxy.gradle.kts +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-env-proxy.gradle.kts @@ -1,19 +1,21 @@ -import org.springframework.boot.gradle.tasks.bundling.BootJar +import org.springframework.boot.gradle.tasks.bundling.BootBuildImage plugins { java id("org.springframework.boot") version "{gradle-project-version}" } -tasks.getByName("bootJar") { - mainClassName = "com.example.ExampleApplication" -} - // tag::env[] tasks.getByName("bootBuildImage") { - environment = [ - "HTTP_PROXY" : "http://proxy.example.com", - "HTTPS_PROXY" : "https://proxy.example.com" - ] + environment = mapOf("HTTP_PROXY" to "http://proxy.example.com", + "HTTPS_PROXY" to "https://proxy.example.com") } // end::env[] + +tasks.register("bootBuildImageEnvironment") { + doFirst { + for((name, value) in tasks.getByName("bootBuildImage").environment) { + print(name + "=" + value) + } + } +} diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-env.gradle b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-env.gradle index 48ebb54139af..e349bcc522c1 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-env.gradle +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-env.gradle @@ -12,3 +12,9 @@ bootBuildImage { environment = ["BP_JVM_VERSION" : "13.0.1"] } // end::env[] + +task bootBuildImageEnvironment { + doFirst { + bootBuildImage.environment.each { name, value -> println "$name=$value" } + } +} diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-env.gradle.kts b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-env.gradle.kts index 5fb0396383f9..faf5ccc21df9 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-env.gradle.kts +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-env.gradle.kts @@ -1,16 +1,21 @@ -import org.springframework.boot.gradle.tasks.bundling.BootJar +import org.springframework.boot.gradle.tasks.bundling.BootBuildImage plugins { java id("org.springframework.boot") version "{gradle-project-version}" } -tasks.getByName("bootJar") { - mainClassName = "com.example.ExampleApplication" -} - // tag::env[] tasks.getByName("bootBuildImage") { - environment = ["BP_JVM_VERSION" : "13.0.1"] + environment = mapOf("BP_JVM_VERSION" to "13.0.1") } // end::env[] + +tasks.register("bootBuildImageEnvironment") { + doFirst { + for((name, value) in tasks.getByName("bootBuildImage").environment) { + print(name + "=" + value) + } + } +} + diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/docs/PackagingDocumentationTests.java b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/docs/PackagingDocumentationTests.java index 6be656843abb..1be37abdada0 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/docs/PackagingDocumentationTests.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/docs/PackagingDocumentationTests.java @@ -28,6 +28,7 @@ import java.util.jar.Manifest; import java.util.zip.ZipEntry; +import org.gradle.testkit.runner.BuildResult; import org.junit.jupiter.api.TestTemplate; import org.junit.jupiter.api.extension.ExtendWith; @@ -221,6 +222,21 @@ void bootJarLayeredExcludeTools() throws IOException { } } + @TestTemplate + void bootBuildImageWithCustomBuildpackJvmVersion() throws IOException { + BuildResult result = this.gradleBuild.script("src/docs/gradle/packaging/boot-build-image-env") + .build("bootBuildImageEnvironment"); + assertThat(result.getOutput()).contains("BP_JVM_VERSION=13.0.1"); + } + + @TestTemplate + void bootBuildImageWithCustomProxySettings() throws IOException { + BuildResult result = this.gradleBuild.script("src/docs/gradle/packaging/boot-build-image-env-proxy") + .build("bootBuildImageEnvironment"); + assertThat(result.getOutput()).contains("HTTP_PROXY=http://proxy.example.com") + .contains("HTTPS_PROXY=https://proxy.example.com"); + } + protected void jarFile(File file) throws IOException { try (JarOutputStream jar = new JarOutputStream(new FileOutputStream(file))) { jar.putNextEntry(new ZipEntry("META-INF/MANIFEST.MF"));