【发布时间】:2019-09-21 23:36:30
【问题描述】:
我在生产者项目的 pom.xml 中有 spring-cloud-contract-maven-plugin。当我使用以下插件时,它不会将 jar 安装到 .m2 存储库。
我尝试添加多个版本的 spring-cloud-contract 和 2.0.2.RELEASE 似乎只有稳定才能成功构建。
` <plugin>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-contract-maven-plugin</artifactId>
<version>2.0.2.RELEASE</version>
<!--<executions>-->
<!--<execution>-->
<!--<goals>-->
<!--<goal>convert</goal>-->
<!--<goal>generateStubs</goal>-->
<!--<goal>generateTests</goal>-->
<!--</goals>-->
<!--</execution>-->
<!--</executions>-->
<extensions>true</extensions>
<configuration>
<packageWithBaseClasses>com.sam.fraud.fcm.fraudcase.gateway.test.contracts</packageWithBaseClasses>
</configuration>
</plugin>`
如果在 pom 中添加了上述插件,.m2 文件夹根本不会在本地安装依赖 jar,生成存根但在目标文件夹中,.m2 没有更新
`[INFO] Installing com.sam.fraud.fcm:fraud-case-gateway-api:1.0.0-SNAPSHOT at end`
如果我删除插件或将其注释掉,我会得到以下内容,它正在安装和工作正常,但我需要的目标中没有生成存根。
`[INFO] Installing C:\Users\sam\FCM-forks\fraud-case-gateway-contract-tests\api\pom.xml to C:\Users\sam\.m2\repositoryFCM2\com\sam\fraud\fcm\fraud-case-gateway-api\1.0.0-SNAPSHOT\fraud-case-gateway-api-1.0.0-SNAPSHOT.pom`
我需要正确的插件,因为它与测试和包的基类一起使用。我也尝试过
`<baseClassForTests>
com.sam.fraud.fcm.fraudcase.gateway.test.contracts.RepreclientBase
</baseClassForTests>`
【问题讨论】:
-
这里有一个可以正常工作的设置示例github.com/spring-cloud-samples/spring-cloud-contract-samples/… 请按照它进行操作,然后一切正常
-
谢谢,你能告诉我哪个版本的 spring -cloud 与 Spring Boot 一起使用吗?
-
在我们的项目中,我们有 Spring Boot verison
2.1.2.RELEASE和 Spring cloud2.0.2.RELEASE -
我们无限地得到这个异常`3-05-2019 16:05:13.734 [http-nio-8080-exec-1] ERROR oaccC[Tomcat].[localhost].log - 异常处理ErrorPage[errorCode=0, location=/error] java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.getHttpServletMapping()Ljavax/servlet/http/HttpServletMapping;在 org.apache.catalina.core.ApplicationHttpRequest.setRequest(ApplicationHttpRequest.java:690) 在 org.apache.catalina.core.ApplicationHttpRequest.
(ApplicationHttpRequest.java:114) 在 -
请阅读页面spring.io/projects/spring-cloud,其中有兼容性矩阵。
标签: testing spring-cloud wiremock spring-cloud-contract