Spring Cloud Contract远程神器下载与本地冲突,如何使其临时?

时间:2018-02-22 11:38:11

标签: spring-boot spring-cloud-contract

我遇到Spring Cloud Contracts 2.0.0.M6的问题,或者我必须误解如何正确配置存根运行器测试。

我希望始终远程下载工件,因此我将stubsMode设置为REMOTE

当我在本地运行测试时,我的.m2目录中存在工件,它失败了。这很好,我可以理解其中一位作者提出的观点here

我遇到的问题是,当我删除本地存根jar并运行测试用例时,工件会被下载并再次放入我的.m2目录中。实际上,这只允许我运行一个> 的存根运行器,然后它失败,因为我在本地有文件。我必须在每次测试运行后继续从.m2删除工件。

我通过配置来解决这个问题:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <systemPropertyVariables>
            <maven.repo.local>
                ${project.build.directory}/repo/${maven.build.timestamp}
            </maven.repo.local>
        </systemPropertyVariables>
    </configuration>
</plugin>

这意味着每次存根运行器运行时,它都会检查并下载到新的&#34;随机&#34;目录/target/repo/<date>

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

当您拥有共享.m2时,CI系统中可能会出现此问题(并不总是会发生)。在下一个版本(1.2.x和2.0.0)中,由于关闭了此问题https://github.com/spring-cloud/spring-cloud-contract/issues/545,您将能够传递stubrunner.snapshot-check-skip系统属性或STUBRUNNER_SNAPSHOT_CHECK_SKIP环境变量或者设置插件属性(仅限2.0.0)以禁用检查。