spring-cloud-starter-contract-verifier 如何将静态方法导入同一项目中的 groovy DSL 合同文件?

问题描述

在resources/contract.groovy 中定义生产者方合同时,我无法使用静态方法导入java util 类。它抛出“无法解析类”的错误。 我在 bodyMatchers 中使用这个自定义验证方法,byCommand。我知道有一个功能可以通过在 pom.xml 的插件定义中添加依赖项来使用依赖项 jar 文件中的静态方法。或者我们可以在基类中定义方法。 但是我们可以导入在同一个项目的另一个类中定义的静态方法吗?

Execution default-generateTests of goal 
org.springframework.cloud:spring-cloud-contract-maven-plugin:2.2.4.RELEASE:generateTests Failed: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup Failed:
[ERROR] src/test/resources/contracts/select/contract.groovy: 4: unable to resolve class

解决方法

您是否阅读过文档?您可以在此处https://docs.spring.io/spring-cloud-contract/docs/current/reference/html/advanced.html 阅读相关内容,并在此处查看生产者 (https://github.com/spring-cloud-samples/spring-cloud-contract-samples/blob/master/producer/pom.xml#L124-L131) 和消费者 (https://github.com/spring-cloud-samples/spring-cloud-contract-samples/blob/master/consumer/pom.xml#L90-L95) 的示例。通常,您需要使用要在 DSL 中使用的所有其他类创建一个 JAR,然后您必须将该 JAR 添加到插件的类路径中。