如何上传spring cloud contract生成的stub.jar

时间:2018-05-29 10:00:45

标签: spring-cloud spring-cloud-contract

我一直在使用Spring Cloud Contract来测试Producer Side。现在,我想将stub.jar文件上传到nexus,所以我的同事可以针对我的制作人编写一些集成测试。我发现Spring文档难以理解。

    <!-- First disable the default jar setup in the properties section-->
    <!-- we don't want the verifier to do a jar for us --> 
    <spring.cloud.contract.verifier.skip>true</spring.cloud.contract.verifier.skip> 

<assembly
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
<id>stubs</id>
<formats>
    <format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
    <fileSet>
        <directory>src/main/java</directory>
        <outputDirectory>/</outputDirectory>
        <includes>
            <include>**com/example/model/*.*</include>
        </includes>
    </fileSet>
    <fileSet>
        <directory>${project.build.directory}/classes</directory>
        <outputDirectory>/</outputDirectory>
        <includes>
            <include>**com/example/model/*.*</include>
        </includes>
    </fileSet>
    <fileSet>
        <directory>${project.build.directory}/snippets/stubs</directory>
        <outputDirectory>META-INF/${project.groupId}/${project.artifactId}/${project.version}/mappings</outputDirectory>
        <includes>
            <include>**/*</include>
        </includes>
    </fileSet>
    <fileSet>
        <directory>${basedir}/src/test/resources/contracts</directory>
        <outputDirectory>META-INF/${project.groupId}/${project.artifactId}/${project.version}/contracts</outputDirectory>
        <includes>
            <include>**/*.groovy</include>
        </includes>
    </fileSet>
</fileSets>

  1. 我添加&#34;跳过&#34;在pom中,我发现存根json永远不会生成。
  2. 我使用的是Spring Cloud Contract 1.2.4,我认为只有&#34; stub&#34;目标中的文件夹,而不是&#34;片段/存根&#34;。
  3. stub.jar中Stub Runner运行它需要哪些文件?

1 个答案:

答案 0 :(得分:0)

  

我一直在使用Spring Cloud Contract来测试Producer Side。现在,我想将stub.jar文件上传到nexus,所以我的同事可以针对我的制作人编写一些集成测试。

如果您使用DSL,那么您无需做任何事情。只做./mvnw deploy我们将生成胖罐和存根罐。

  

我发现Spring文档难以理解。

这不是真的具体吗?究竟有什么难以理解的?

  

我添加&#34;跳过&#34;线到pom,我发现存根json永远不会生成。

哪条skip行?如果您添加<spring.cloud.contract.verifier.jar.skip>false</spring.cloud.contract.verifier.jar.skip>,我们将仅禁用JAR创建。

  

我使用的是Spring Cloud Contract 1.2.4,我认为只有&#34; stub&#34;目标中的文件夹,而不是&#34;片段/存根&#34;。

你甚至使用Rest Docs吗?你从哪里得到了片段?从这里https://cloud.spring.io/spring-cloud-static/Edgware.SR3/single/spring-cloud.html#_publishing_stubs_as_jars?如果您通过代码段阅读了该文字,则会看到For both Maven and Gradle, the setup comes ready to work. However, you can customize it if you want to.。如果您按照文档的逐步部分进行操作,我们将描述整个最基本的流程。此外还有多个教程,包括一个非常彻底的教程http://cloud-samples.spring.io/spring-cloud-contract-samples/workshops.html

  

stub.jar中Stub Runner运行它需要哪些文件?

我们在文档中对此进行了描述。如果要使用类路径映射,请阅读本节https://cloud.spring.io/spring-cloud-static/Edgware.SR3/single/spring-cloud.html#_classpath_scanning。否则,我们解压缩并浏览我们可以解析的任何WireMock Json文件。

这里有一个手动创建存根jar的工作示例 - https://github.com/spring-cloud-samples/spring-cloud-contract-samples/tree/master/producer_with_restdocs。我认为您应该从头开始阅读文档并按照教程进行操作。或者告诉我们哪些文件不清楚,让您感到困惑。