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-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 'app' into "$buildDir/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/app" startParameter.buildCacheEnabled = false tasks = ['build'] } intTest { dependsOn buildApp enabled = !JavaVersion.current().java9Compatible }