Spring cloud 如何上传spring云契约生成的stub.jar

Spring cloud 如何上传spring云契约生成的stub.jar,spring-cloud,spring-cloud-contract,Spring Cloud,Spring Cloud Contract,我一直在使用SpringCloudContract来测试制作人端。现在,我想将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 -->

我一直在使用SpringCloudContract来测试制作人端。现在,我想将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>
在将跳过行添加到pom后,我发现从未生成存根json。 我使用的是SpringCloudContract 1.2.4,我认为目标中只有存根文件夹,而不是片段/存根。 存根运行程序运行stub.jar需要哪些文件? 我一直在使用SpringCloudContract来测试制作人端。现在,我想将stub.jar文件上传到nexus,这样我的同事就可以针对我的制作人编写一些集成测试了

如果您使用DSL,则无需执行任何操作。只需执行./mvnw部署,我们将生成fat jar和stubs jar

我发现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>
这不是很具体,是吗?到底什么是难以理解的

在将跳过行添加到pom后,我发现从未生成存根json

哪一行跳过?如果您添加false,那么我们将只禁用JAR创建

我使用的是SpringCloudContract 1.2.4,我认为目标中只有存根文件夹,而不是片段/存根

你在用Rest文档吗?你从哪里得到这个片段的?从这里开始?如果您阅读了代码段上的文本,您将看到Maven和Gradle的代码段,那么安装程序就可以开始工作了。但是,如果需要,您可以对其进行自定义。。如果您遵循文档中的逐步章节,我们将描述整个最基本的流程。还有很多教程,包括这里的一个非常全面的教程

存根运行程序运行stub.jar需要哪些文件

我们在文档中对此进行了描述。如果您想使用类路径映射,请阅读本节。否则,我们将解包并遍历任何可以解析的WireMock Json文件


这里有一个手动创建存根jar-的工作示例。我认为您应该从一开始就阅读文档,并按照教程进行操作。或者告诉我们文档中哪些内容不清楚,让您感到困惑。

感谢@Marcin Grzejszczak提供的详细答案。在仔细阅读了你提供的参考资料后,我明白了为什么我被医生弄糊涂了。当我只想上传一个存根到nexus时,我会直接转到文档的末尾。程序集文件stub.xml用于使用Rest文档的项目,我在项目中没有使用它。因此没有生成json文件,也没有代码片段/json路径。