plugins { id "groovy" id "org.springframework.boot" id "io.spring.dependency-management" id "maven-publish" id "maven" id "org.springframework.cloud.contract" } group = 'com.example' version = '0.0.1' repositories { mavenCentral() mavenLocal() maven { url "https://repo.spring.io/snapshot" } maven { url "https://repo.spring.io/milestone" } maven { url "https://repo.spring.io/release" } } dependencyManagement { imports { mavenBom "org.springframework.cloud:spring-cloud-dependencies:$BOM_VERSION" mavenBom "org.springframework.cloud:spring-cloud-contract-dependencies:${project.findProperty('verifierVersion') ?: verifierVersion}" } } dependencies { compile("org.springframework.boot:spring-boot-starter-webflux") compile("org.springframework.boot:spring-boot-starter-actuator") testCompile 'org.springframework.boot:spring-boot-starter-test' testCompile 'org.springframework.restdocs:spring-restdocs-webtestclient' testCompile 'org.springframework.cloud:spring-cloud-contract-wiremock' } contracts { failOnNoContracts = false } test { systemProperty 'spring.profiles.active', 'gradle' testLogging { exceptionFormat = 'full' } afterSuite { desc, result -> if (!desc.parent) { println "Results: (${result.testCount} tests, ${result.successfulTestCount} successes, ${result.failedTestCount} failures, ${result.skippedTestCount} skipped)" if (result.testCount == 0) { throw new IllegalStateException("No tests were found. Failing the build") } } } } task stubsJar(type: Jar, dependsOn: ['copySnippets', 'copySources', 'copyClasses']) { baseName = project.name classifier = 'stubs' from project.file("${project.buildDir}/stubs") } artifacts { archives stubsJar } task copySnippets(type: Copy, dependsOn: test) { from "target/snippets/stubs" into "${project.buildDir}/stubs/META-INF/${project.group}/${project.name}/${project.version}/mappings" } task copySources(type: Copy) { from "src/main/java" include '**/model/Fraud*.*' into "${project.buildDir}/stubs/" } task copyClasses(type: Copy) { from "${project.buildDir}/classes/main/" include '**/model/Fraud*.*' into "${project.buildDir}/stubs/" } clean.doFirst { delete 'target/snippets/stubs' delete "~/.m2/repository/com/example/http-server-restdocs-gradle" } task resolveDependencies { doLast { project.rootProject.allprojects.each { subProject -> subProject.buildscript.configurations.each { configuration -> configuration.resolve() } subProject.configurations.each { configuration -> configuration.resolve() } } } }