From caf0452c4b8873616a13562925d04fe2372c65d5 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Thu, 2 Feb 2017 14:32:20 +0100 Subject: [PATCH] Clearing up the way dependencies are setup for Gradle plugin --- .../build.gradle | 3 ++ ...ngCloudContractVerifierGradlePlugin.groovy | 9 ------ .../ContractVerifierIntegrationSpec.groovy | 1 - .../plugin/ContractVerifierSpec.groovy | 30 ------------------- .../functionalTest/bootSimple/build.gradle | 25 ++++++++++++---- .../bootSimple/gradle.properties | 5 +--- .../sampleJerseyProject/build.gradle | 23 +++++++++----- .../functionalTest/sampleProject/build.gradle | 19 ++++++++++-- .../scenarioProject/build.gradle | 18 +++++++---- 9 files changed, 68 insertions(+), 65 deletions(-) diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/build.gradle b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/build.gradle index 9d606b53d5..0ef1e3e318 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/build.gradle +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/build.gradle @@ -65,6 +65,9 @@ dependencies { compile("org.springframework.cloud:spring-cloud-contract-stub-runner:${project.version}") { exclude(group: 'org.codehaus.groovy') } + compile("org.springframework.cloud:spring-cloud-starter-contract-verifier:${project.version}") { + exclude(group: 'org.codehaus.groovy') + } testCompile('org.spockframework:spock-core:1.0-groovy-2.4') { exclude(group: 'org.codehaus.groovy') } diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/SpringCloudContractVerifierGradlePlugin.groovy b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/SpringCloudContractVerifierGradlePlugin.groovy index dbe01b6b7f..91ca8769fd 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/SpringCloudContractVerifierGradlePlugin.groovy +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/SpringCloudContractVerifierGradlePlugin.groovy @@ -72,7 +72,6 @@ class SpringCloudContractVerifierGradlePlugin implements Plugin { createGenerateTestsTask(extension, copyContracts) Task clientTask = createAndConfigureGenerateClientStubsFromDslTask(extension, copyContracts) createAndConfigureGenerateWireMockClientStubsFromDslTask(extension, clientTask) - addProjectDependencies(project) addIdeaTestSources(project, extension) } @@ -90,14 +89,6 @@ class SpringCloudContractVerifierGradlePlugin implements Plugin { } } - //TODO: Deprecate this since starting with 1.1.x - private void addProjectDependencies(Project project) { - //TODO: Consider removing this at some point - project.dependencies.add("testCompile", "com.github.tomakehurst:wiremock:2.1.7") - project.dependencies.add("testCompile", "com.toomuchcoding.jsonassert:jsonassert:0.4.8") - project.dependencies.add("testCompile", "org.assertj:assertj-core:2.3.0") - } - private void setConfigurationDefaults(ContractVerifierExtension extension) { extension.with { generatedTestSourcesDir = generatedTestSourcesDir ?: project.file("${project.buildDir}/generated-test-sources/contracts") diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierIntegrationSpec.groovy b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierIntegrationSpec.groovy index 47635b14c2..e80e939147 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierIntegrationSpec.groovy +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierIntegrationSpec.groovy @@ -57,7 +57,6 @@ abstract class ContractVerifierIntegrationSpec extends Specification { classpath fileTree(dir: '$gradlePluginLibsDir', include: '*.jar') } } - """ + buildFile.text // Extending buildscript is required when 'apply' is used. // 'GradleRunner#withPluginClasspath' can be used when plugin is added using 'plugins { id...' diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierSpec.groovy b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierSpec.groovy index caf68dbb48..0b6ca2514f 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierSpec.groovy +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierSpec.groovy @@ -109,36 +109,6 @@ class ContractVerifierSpec extends Specification { publications.findByName("stubs") != null } - def "should add wiremock as a testCompile dependency"() { - given: - project.plugins.apply(SpringCloudContractVerifierGradlePlugin) - - expect: - project.configurations.testCompile.dependencies.find { - it.group == "com.github.tomakehurst" && it.name == "wiremock" - } != null - } - - def "should add jsonassert as a testCompile dependency"() { - given: - project.plugins.apply(SpringCloudContractVerifierGradlePlugin) - - expect: - project.configurations.testCompile.dependencies.find { - it.group == "com.toomuchcoding.jsonassert" && it.name == "jsonassert" - } != null - } - - def "should add assertj-core as a testCompile dependency"() { - given: - project.plugins.apply(SpringCloudContractVerifierGradlePlugin) - - expect: - project.configurations.testCompile.dependencies.find { - it.group == "org.assertj" && it.name == "assertj-core" - } != null - } - def "should compile"() { given: ContractVerifierExtension extension = new ContractVerifierExtension() diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/bootSimple/build.gradle b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/bootSimple/build.gradle index d014559717..472db2f956 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/bootSimple/build.gradle +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/bootSimple/build.gradle @@ -2,35 +2,48 @@ buildscript { repositories { mavenCentral() } + dependencies { + classpath "org.springframework.boot:spring-boot-gradle-plugin:1.4.0.RELEASE" + } } apply plugin: 'groovy' apply plugin: 'spring-cloud-contract' apply plugin: 'maven-publish' +apply plugin: 'spring-boot' group = 'org.springframework.cloud.testprojects' ext { contractsDir = file("repository/mappings") stubsOutputDirRoot = file("${project.buildDir}/production/${project.name}-stubs/repository/") + BOM_VERSION = "Dalston.BUILD-SNAPSHOT" } repositories { mavenCentral() mavenLocal() + maven { url "http://repo.spring.io/snapshot" } + maven { url "http://repo.spring.io/milestone" } + maven { url "http://repo.spring.io/release" } +} + +dependencyManagement { + imports { + mavenBom "org.springframework.cloud:spring-cloud-dependencies:$BOM_VERSION" + } } dependencies { - compile "org.springframework:spring-web:$springVersion" + compile "org.springframework:spring-web" compile "org.springframework:spring-context-support:$springVersion" - compile "org.codehaus.groovy:groovy-all:2.4.5" - compile 'com.jayway.jsonpath:json-path-assert:2.2.0' + compile "org.codehaus.groovy:groovy-all" + compile 'com.jayway.jsonpath:json-path-assert' - testCompile "com.github.tomakehurst:wiremock:2.1.7" + testCompile "com.github.tomakehurst:wiremock" testCompile "org.spockframework:spock-spring:1.0-groovy-2.4" - testCompile "com.jayway.restassured:rest-assured:$restAssuredVersion" - testCompile "com.jayway.restassured:spring-mock-mvc:$restAssuredVersion" testCompile "ch.qos.logback:logback-classic:1.1.2" + testCompile("org.springframework.cloud:spring-cloud-starter-contract-verifier") } contracts { diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/bootSimple/gradle.properties b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/bootSimple/gradle.properties index 3d464da2b1..2138cee1c0 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/bootSimple/gradle.properties +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/bootSimple/gradle.properties @@ -15,8 +15,5 @@ # groupId=org.springframework.cloud.testprojects -jacksonMapper=1.9.13 -restAssuredVersion=2.4.0 -springVersion=4.1.7.RELEASE -springBootVersion=1.3.3.RELEASE \ No newline at end of file +springBootVersion=1.4.3.RELEASE \ No newline at end of file diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/sampleJerseyProject/build.gradle b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/sampleJerseyProject/build.gradle index 440aab9102..05505b950e 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/sampleJerseyProject/build.gradle +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/sampleJerseyProject/build.gradle @@ -29,31 +29,40 @@ allprojects { } ext { - restAssuredVersion = '2.5.0' spockVersion = '1.0-groovy-2.4' - wiremockVersion = '2.0.10-beta' + BOM_VERSION = "Dalston.BUILD-SNAPSHOT" contractVerifierStubsBaseDirectory = 'src/test/resources/stubs' } subprojects { apply plugin: 'groovy' + apply plugin: 'spring-boot' repositories { mavenCentral() mavenLocal() + maven { url "http://repo.spring.io/snapshot" } + maven { url "http://repo.spring.io/milestone" } + maven { url "http://repo.spring.io/release" } + } + + dependencyManagement { + imports { + mavenBom "org.springframework.cloud:spring-cloud-dependencies:$BOM_VERSION" + } } dependencies { - testCompile 'org.codehaus.groovy:groovy-all:2.4.5' + testCompile 'org.codehaus.groovy:groovy-all' testCompile "org.spockframework:spock-core:$spockVersion" - testCompile 'junit:junit:4.12' - testCompile "com.github.tomakehurst:wiremock:$wiremockVersion" + testCompile 'junit:junit' + testCompile "com.github.tomakehurst:wiremock" + testCompile("org.springframework.cloud:spring-cloud-starter-contract-verifier") } } configure([project(':fraudDetectionService'), project(':loanApplicationService')]) { - apply plugin: 'spring-boot' apply plugin: 'maven-publish' ext['jetty.version'] = '9.2.17.v20160517' @@ -81,7 +90,7 @@ configure([project(':fraudDetectionService'), project(':loanApplicationService') testCompile "org.mockito:mockito-core" testCompile "org.springframework:spring-test" testCompile "org.springframework.boot:spring-boot-test" - testCompile("com.github.tomakehurst:wiremock:2.1.7") { + testCompile("com.github.tomakehurst:wiremock") { exclude group: 'org.eclipse.jetty' } } diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/sampleProject/build.gradle b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/sampleProject/build.gradle index ef2bcf34e1..003a87c3f2 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/sampleProject/build.gradle +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/sampleProject/build.gradle @@ -27,7 +27,7 @@ buildscript { ext { restAssuredVersion = '2.5.0' spockVersion = '1.0-groovy-2.4' - wiremockVersion = '2.0.10-beta' + BOM_VERSION = "Dalston.BUILD-SNAPSHOT" contractVerifierStubsBaseDirectory = 'src/test/resources/stubs' } @@ -36,17 +36,28 @@ group = 'org.springframework.cloud.testprojects' subprojects { apply plugin: 'groovy' + apply plugin: 'spring-boot' repositories { mavenCentral() mavenLocal() + maven { url "http://repo.spring.io/snapshot" } + maven { url "http://repo.spring.io/milestone" } + maven { url "http://repo.spring.io/release" } + } + + dependencyManagement { + imports { + mavenBom "org.springframework.cloud:spring-cloud-dependencies:$BOM_VERSION" + } } dependencies { testCompile "org.codehaus.groovy:groovy-all:2.4.5" testCompile "org.spockframework:spock-core:$spockVersion" - testCompile("junit:junit:4.12") - testCompile "com.github.tomakehurst:wiremock:$wiremockVersion" + testCompile "junit:junit" + testCompile "com.github.tomakehurst:wiremock" + testCompile("org.springframework.cloud:spring-cloud-starter-contract-verifier") } } @@ -86,6 +97,8 @@ configure([project(':fraudDetectionService'), project(':loanApplicationService') testCompile "org.springframework.boot:spring-boot-test" testCompile "com.jayway.restassured:rest-assured:$restAssuredVersion" testCompile "com.jayway.restassured:spring-mock-mvc:$restAssuredVersion" + testCompile "com.jayway.restassured:spring-mock-mvc:$restAssuredVersion" + testCompile "com.toomuchcoding.jsonassert:jsonassert:${jsonAssertVersion}" } task cleanup(type: Delete) { diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/build.gradle b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/build.gradle index 678c89a6cd..3c98cef640 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/build.gradle +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/build.gradle @@ -27,7 +27,7 @@ buildscript { ext { restAssuredVersion = '2.5.0' spockVersion = '1.0-groovy-2.4' - wiremockVersion = '2.0.10-beta' + BOM_VERSION = "Dalston.BUILD-SNAPSHOT" contractVerifierStubsBaseDirectory = 'src/test/resources/stubs' } @@ -37,17 +37,27 @@ group = 'org.springframework.cloud.testprojects' subprojects { apply plugin: 'groovy' apply plugin: 'maven-publish' + apply plugin: 'spring-boot' repositories { mavenCentral() mavenLocal() + maven { url "http://repo.spring.io/snapshot" } + maven { url "http://repo.spring.io/milestone" } + maven { url "http://repo.spring.io/release" } + } + + dependencyManagement { + imports { + mavenBom "org.springframework.cloud:spring-cloud-dependencies:$BOM_VERSION" + } } dependencies { - testCompile "org.codehaus.groovy:groovy-all:2.4.5" + testCompile "org.codehaus.groovy:groovy-all" testCompile "org.spockframework:spock-core:$spockVersion" testCompile("junit:junit:4.12") - testCompile "com.github.tomakehurst:wiremock:$wiremockVersion" + testCompile("org.springframework.cloud:spring-cloud-starter-contract-verifier") } } @@ -107,8 +117,6 @@ configure([project(':fraudDetectionService'), project(':loanApplicationService') testCompile "org.mockito:mockito-core" testCompile "org.springframework:spring-test" testCompile "org.springframework.boot:spring-boot-test" - testCompile "com.jayway.restassured:rest-assured:$restAssuredVersion" - testCompile "com.jayway.restassured:spring-mock-mvc:$restAssuredVersion" } task cleanup(type: Delete) {