Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 生成的测试在Spring云契约中失败_Java_Spring Boot_Spring Cloud Contract - Fatal编程技术网

Java 生成的测试在Spring云契约中失败

Java 生成的测试在Spring云契约中失败,java,spring-boot,spring-cloud-contract,Java,Spring Boot,Spring Cloud Contract,我不熟悉spring云合同。只是试图配置我的构建,我得到了错误 这是我的项目结构 项目 |==>模块 在我的项目build.gradle中,类路径有以下依赖项 项目生成文件 buildscript { dependencies { classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.2.1" classpath("org.springframework.boot:spring-boot-gradl

我不熟悉spring云合同。只是试图配置我的构建,我得到了错误

这是我的项目结构

项目
|==>模块

在我的项目build.gradle中,类路径有以下依赖项

项目生成文件

buildscript {
dependencies {
    classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.2.1"
    classpath("org.springframework.boot:spring-boot-gradle-plugin:1.5.4.RELEASE")
    classpath "org.springframework.cloud:spring-cloud-contract-gradle-plugin:1.1.3.RELEASE"
}
apply from: "$projectDir/gradle/app/springcloud.gradle" //Gradle build file in module
}
apply plugin: 'groovy'
apply plugin: 'spring-cloud-contract'
apply plugin: 'org.springframework.boot'
dependencies {
//Spring cloud contract dependencies
compile('org.springframework.boot:spring-boot-starter-actuator')
compile('org.springframework.boot:spring-boot-starter-web')
testCompile('org.springframework.boot:spring-boot-starter-test')
testCompile('org.springframework.cloud:spring-cloud-starter-contract-verifier')
testCompile "org.springframework.cloud:spring-cloud-starter-contract-stub-runner"
testCompile "com.jayway.restassured:rest-assured:2.5.0"
testCompile "com.jayway.restassured:spring-mock-mvc:2.5.0"
}
  //Spring cloud contract dependency management
dependencyManagement {
imports {
    mavenBom "org.springframework.cloud:spring-cloud-dependencies:Dalston.RELEASE"
  }
}
模块构建文件

buildscript {
dependencies {
    classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.2.1"
    classpath("org.springframework.boot:spring-boot-gradle-plugin:1.5.4.RELEASE")
    classpath "org.springframework.cloud:spring-cloud-contract-gradle-plugin:1.1.3.RELEASE"
}
apply from: "$projectDir/gradle/app/springcloud.gradle" //Gradle build file in module
}
apply plugin: 'groovy'
apply plugin: 'spring-cloud-contract'
apply plugin: 'org.springframework.boot'
dependencies {
//Spring cloud contract dependencies
compile('org.springframework.boot:spring-boot-starter-actuator')
compile('org.springframework.boot:spring-boot-starter-web')
testCompile('org.springframework.boot:spring-boot-starter-test')
testCompile('org.springframework.cloud:spring-cloud-starter-contract-verifier')
testCompile "org.springframework.cloud:spring-cloud-starter-contract-stub-runner"
testCompile "com.jayway.restassured:rest-assured:2.5.0"
testCompile "com.jayway.restassured:spring-mock-mvc:2.5.0"
}
  //Spring cloud contract dependency management
dependencyManagement {
imports {
    mavenBom "org.springframework.cloud:spring-cloud-dependencies:Dalston.RELEASE"
  }
}
我有一个groovy文件,它有一个post请求和一个响应。当我进行
gradlebuild
时,测试是自动生成的,但我的构建感觉很好

C:\Users\user\Projects\myProject\module\build\generated-test-sources\contracts\org\springframework\cloud\contract\verifier\tests\ContractVerifierTest.java:3: error: cannot find symbol
import com.jayway.jsonpath.DocumentContext;
                      ^
symbol:   class DocumentContext
location: package com.jayway.jsonpath

C:\Users\user\Projects\myProject\module\build\generated-test-sources\contracts\org\springframework\cloud\contract\verifier\tests\ContractVerifierTest.java:28: error: cannot find symbol
        DocumentContext parsedJson = 
JsonPath.parse(response.getBody().asString());
        ^

我做错什么了吗?我使用的版本是否有任何不匹配之处?

@Marcin感谢您的输入。我就是这样解决这个问题的

构建在生成的测试中失败,并且jayway jsonpath在错误位置没有显示为红色。当我按住Ctrl键并将鼠标悬停在导入上时,它引用的是
com.jayway.jsonpath:json path:2.2.0
,这不是真的。原因是我在Intellij中导入了许多模块,其中一个模块显然也导入了
2.2.0
,Intellij从外部库引用它

因此,我确实使cache intellij无效,关闭了所有不必要的项目,并在一个新窗口(新会话)中重新打开了我正在处理的项目。现在
gradlebuild
,我在生成的测试中再次遇到了相同的错误。但这一次,当我按住Ctrl键并将鼠标悬停在import上时,它引用的是
com.jayway.jsonpath:json路径:0.9.1
,这正是我所期望的

现在为了解决这个问题,我使用下面的命令检查了依赖关系树,并对其执行了一些
grep

allDeps——配置测试运行时

我找到了答案,为什么gradle将
2.2.0
替换为
0.9.1
。我发现一些项目依赖性正在取代它。现在解决这个问题的方法是修改我的模块构建文件以获得JaywayJSON路径,如下所示。之后,我给出了
buildgradle
命令,现在错误消失了

testCompile ('com.jayway.jsonpath:json-path:2.2.0') {
            force = true
}
最后,我遇到了一个异常,
SpringCloudContractAssertions
无法找到

org.springframework.cloud.contract.verifier.assertion.SpringCloudContractAssertions.assertThat

因此,我用
Dalston
替换
Camden
release,如下所示。现在一切都好了

dependencyManagement {
    imports {
        mavenBom "org.springframework.cloud:spring-cloud-dependencies:Dalston.RELEASE"
    }
}

@Marcin感谢您的投入。我就是这样解决这个问题的

构建在生成的测试中失败,并且jayway jsonpath在错误位置没有显示为红色。当我按住Ctrl键并将鼠标悬停在导入上时,它引用的是
com.jayway.jsonpath:json path:2.2.0
,这不是真的。原因是我在Intellij中导入了许多模块,其中一个模块显然也导入了
2.2.0
,Intellij从外部库引用它

因此,我确实使cache intellij无效,关闭了所有不必要的项目,并在一个新窗口(新会话)中重新打开了我正在处理的项目。现在
gradlebuild
,我在生成的测试中再次遇到了相同的错误。但这一次,当我按住Ctrl键并将鼠标悬停在import上时,它引用的是
com.jayway.jsonpath:json路径:0.9.1
,这正是我所期望的

现在为了解决这个问题,我使用下面的命令检查了依赖关系树,并对其执行了一些
grep

allDeps——配置测试运行时

我找到了答案,为什么gradle将
2.2.0
替换为
0.9.1
。我发现一些项目依赖性正在取代它。现在解决这个问题的方法是修改我的模块构建文件以获得JaywayJSON路径,如下所示。之后,我给出了
buildgradle
命令,现在错误消失了

testCompile ('com.jayway.jsonpath:json-path:2.2.0') {
            force = true
}
最后,我遇到了一个异常,
SpringCloudContractAssertions
无法找到

org.springframework.cloud.contract.verifier.assertion.SpringCloudContractAssertions.assertThat

因此,我用
Dalston
替换
Camden
release,如下所示。现在一切都好了

dependencyManagement {
    imports {
        mavenBom "org.springframework.cloud:spring-cloud-dependencies:Dalston.RELEASE"
    }
}

很可能是版本不匹配。请使用spring cloud合同的样本查看此回购协议,并更新您的项目,以查看sameI正在将spring cloud合同应用于现有项目。看起来项目的依赖项中已经有了spring boot。我将尝试查看依赖关系树以找出冲突。@MarcinGrzejszczak我的项目使用了
springBootversion=1.4.3。发布版
,无法更改或升级它。哪个
springcloudcontract-gradle插件
与此版本兼容?我还使用了
springclouddependencies:Camden.SR7
?谢谢你的帮助,因为Dalston需要Boot 1.5,所以你只能使用Camden,但你可以试试。另外
testCompile“com.jayway.restassured:rest assured:2.5.0”testCompile“com.jayway.restassured:spring mock mvc:2.5.0”
这是不必要的,因为它附带了验证器启动器(),很可能是版本不匹配。请使用spring cloud合同的样本查看此回购协议,并更新您的项目,以查看sameI正在将spring cloud合同应用于现有项目。看起来项目的依赖项中已经有了spring boot。我将尝试查看依赖关系树以找出冲突。@MarcinGrzejszczak我的项目使用了
springBootversion=1.4.3。发布版
,无法更改或升级它。哪个
springcloudcontract-gradle插件
与此版本兼容?我还使用了
springclouddependencies:Camden.SR7
?谢谢你的帮助,因为Dalston需要Boot 1.5,所以你只能使用Camden,但你可以试试。另外
testCompile“com.jayway.restassured:rest-assured:2.5.0”testCompile“com.jayway.restassured:spring-mock-mvc:2.5.0”
这是不必要的,因为它附带了