ERROR: Stubs could not be found. Please make sure that spring-cloud-contract:convert was invoked
ERROR: Stubs could not be found. Please make sure that spring-cloud-contract:convert was invoked
使用 Spring Cloud Contract 2.1.3.RELEASE
和 spring-boot 2.1.1.RELEASE
,我添加了指南中解释的依赖项和插件:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-contract-verifier</artifactId>
<version>${spring-cloud-contract.version}</version>
<scope>test</scope>
</dependency>
和
<plugin>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-contract-maven-plugin</artifactId>
<version>${spring-cloud-contract.version}</version>
<extensions>true</extensions>
</plugin>
我还在下面添加了:$rootDir/src/test/resources/contracts
:
Groovy 文件:
package contracts
import org.springframework.cloud.contract.spec.Contract
Contract.make {
name("contract_updateNodeV4")
request {
method 'PUT'
url '/v4/nodes'
headers {
header 'Content-Type': 'application/vnd.org.springframework.cloud.contract.verifier.twitter-places-analyzer.v1+json'
}
body(file("updateNodeV4_request.json"))
}
response {
status OK()
body(file("updateNodeV4_response.json"))
}
}
以及相应的 updateNodeV4_request.json
和 updateNodeV4_response.json
(由于它们很大而省略了它们的内容)有效 JSON 个文件。
当 运行 mvn clean install
我希望根据指南创建生成的测试(现在失败)。
相反,我收到以下错误:
[ERROR] Failed to execute goal org.springframework.cloud:spring-cloud-contract-maven-plugin:1.0.0.RELEASE:generateStubs (default-generateStubs) on project xxx: Stubs could not be found: [C:\Users\xxx\git\xxx\target\stubs] .
[ERROR] Please make sure that spring-cloud-contract:convert was invoked
很可能您的联系人不在模块的 src/test/resources/contracts 下,而是在根模块的文件夹下。如果是这种情况,您需要通过查看合同目录插件 属性
来告诉插件
我通过移动插件解决了:
<plugin>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-contract-maven-plugin</artifactId>
<version>${spring-cloud-contract.version}</version>
<extensions>true</extensions>
</plugin>
从根 pom.xml 到我在其中创建合同的特定模块 pom.xml。现在它按预期工作了。
使用 Spring Cloud Contract 2.1.3.RELEASE
和 spring-boot 2.1.1.RELEASE
,我添加了指南中解释的依赖项和插件:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-contract-verifier</artifactId>
<version>${spring-cloud-contract.version}</version>
<scope>test</scope>
</dependency>
和
<plugin>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-contract-maven-plugin</artifactId>
<version>${spring-cloud-contract.version}</version>
<extensions>true</extensions>
</plugin>
我还在下面添加了:$rootDir/src/test/resources/contracts
:
Groovy 文件:
package contracts
import org.springframework.cloud.contract.spec.Contract
Contract.make {
name("contract_updateNodeV4")
request {
method 'PUT'
url '/v4/nodes'
headers {
header 'Content-Type': 'application/vnd.org.springframework.cloud.contract.verifier.twitter-places-analyzer.v1+json'
}
body(file("updateNodeV4_request.json"))
}
response {
status OK()
body(file("updateNodeV4_response.json"))
}
}
以及相应的 updateNodeV4_request.json
和 updateNodeV4_response.json
(由于它们很大而省略了它们的内容)有效 JSON 个文件。
当 运行 mvn clean install
我希望根据指南创建生成的测试(现在失败)。
相反,我收到以下错误:
[ERROR] Failed to execute goal org.springframework.cloud:spring-cloud-contract-maven-plugin:1.0.0.RELEASE:generateStubs (default-generateStubs) on project xxx: Stubs could not be found: [C:\Users\xxx\git\xxx\target\stubs] .
[ERROR] Please make sure that spring-cloud-contract:convert was invoked
很可能您的联系人不在模块的 src/test/resources/contracts 下,而是在根模块的文件夹下。如果是这种情况,您需要通过查看合同目录插件 属性
来告诉插件我通过移动插件解决了:
<plugin>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-contract-maven-plugin</artifactId>
<version>${spring-cloud-contract.version}</version>
<extensions>true</extensions>
</plugin>
从根 pom.xml 到我在其中创建合同的特定模块 pom.xml。现在它按预期工作了。