【问题标题】:Spring cloud contract maven plugin is not installing jars to local .m2 folderSpring Cloud Contract Maven 插件未将 jar 安装到本地 .m2 文件夹
【发布时间】: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 cloud 2.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


【解决方案1】:

感谢 Marcin,但看起来我发现了问题,它是 mvn-install 插件版本,它没有在本地上传 jars,我将版本从 2.5.4 恢复到 2.4,所以它工作正常。

无限异常也与 Spring Boot 2 的wiremock-servlet 问题有关。 使用javax-servlet-api:4.0.1 版本帮助我成功构建和运行我的应用程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-30
    • 1970-01-01
    相关资源
    最近更新 更多