plugins { id "java" id "org.springframework.boot.conventions" id "org.springframework.boot.integration-test" } description = "Spring Boot Launch Script Integration Tests" configurations { app } dependencies { app project(path: ":spring-boot-project:spring-boot-dependencies", configuration: "mavenRepository") app project(path: ":spring-boot-project:spring-boot-tools:spring-boot-gradle-plugin", configuration: "mavenRepository") app project(path: ":spring-boot-project:spring-boot-starters:spring-boot-starter-web", configuration: "mavenRepository") intTestImplementation(enforcedPlatform(project(":spring-boot-project:spring-boot-parent"))) intTestImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support")) intTestImplementation(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-test")) intTestImplementation("org.testcontainers:testcontainers") } task syncMavenRepository(type: Sync) { from configurations.app into "${buildDir}/int-test-maven-repository" } task syncAppSource(type: Sync) { from "spring-boot-launch-script-tests-app" into "${buildDir}/spring-boot-launch-script-tests-app" filter { line -> line.replace("id \"org.springframework.boot\"", "id \"org.springframework.boot\" version \"${project.version}\"") } } task buildApp(type: GradleBuild) { dependsOn syncAppSource, syncMavenRepository dir = "${buildDir}/spring-boot-launch-script-tests-app" startParameter.buildCacheEnabled = false tasks = ["build"] } intTest { dependsOn buildApp enabled = !JavaVersion.current().java9Compatible }