提问者:小点点

如何上传Spring云合约生成的str. jar


我一直在使用Spring云合约来测试生产者端。现在,我想将str. 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. 在我将“跳过”行添加到pom后,我发现存根json永远不会生成。
  2. 我使用的是Spring Cloud合约1.2.4,我认为目标中只有“存根”文件夹,而不是“片段/存根”。
  3. Stub Runner运行str. jar需要哪些文件?

共1个答案

匿名用户

我一直在使用Spring Cloud合约来测试生产者端。现在,我想将str. jar文件上传到nexus,这样我的同事就可以编写一些针对我的生产者的联调。

如果你使用DSL你什么都不需要做。只需执行。/mvnw部署,我们将生成jar和存根jar。

我发现Spring文档很难理解。

这不是很具体,是吗?到底什么很难理解?

在我将“跳过”行添加到pom后,我发现存根json永远不会生成。

哪个跳过行?如果添加

我使用的是Spring Cloud合同1.2.4,我认为目标中只有“存根”文件夹,而不是“片段/存根”。

你在使用Rest Docs吗?你从哪里得到这个片段的?从这里https://cloud.spring.io/spring-cloud-static/Edgware.SR3/single/spring-cloud.html#_publishing_stubs_as_jars?如果你阅读片段上的文本,你会看到对于Maven和Gradle,设置已经准备好了。但是,如果你愿意,你可以自定义它。。如果你按照留档的一步一步部分,我们描述了整个最基本的流程。还有多个教程,包括这里非常全面的一个http://cloud-samples.spring.io/spring-cloud-contract-samples/workshops.html

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

我们在留档中描述了这一点。如果您想使用类路径映射,请阅读本节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。我认为你应该从头开始阅读留档并遵循教程。或者告诉我们留档到底有什么不清楚的地方让你感到困惑。