2017-01-17 38 views
0

Spring Cloud Contract 1.0.2.RELEASEを使用して、ローカルのMavenリポジトリにスタブを公開できますが、コンシューマ側ではスタブをコンシューマ側で公開することはできませんテスト。Springクラウド契約のスタブがローカルリポジトリに見つかりません

消費者の側で、それはプロデューサーが持っているものよりもローカルのMavenリポジトリに別の場所を選ぶように見えます:春クラウド契約とオードライブラリによって良い伐採にもかかわらず、それはとして、それを把握するために私にしばらく時間がかかりましたローカルのMavenリポジトリに使用した場所は、デフォルトのものと似ています(しかし異なる)。

私はMaven 3.3.1を使用しています。 org.springframework.cloud.contract.stubrunner.AetherFactoriesで

答えて

0

、我々はそれがこのようなローカルリポジトリの場所を取得することを明確に参照してください。あなたがあなたのローカルMavenのリポジトリの場所をオーバーライドしているのであれば

private static final String MAVEN_LOCAL_REPOSITORY_LOCATION = "maven.repo.local"; 

private static String localRepositoryDirectory() { 
    return System.getProperty(MAVEN_LOCAL_REPOSITORY_LOCATION, System.getProperty("user.home") + "/.m2/repository"); 
} 

をこのようなものを使用してMavenののsettings.xml:

<localRepository>C:/HOMEWARE/maven_local_repo</localRepository> 

あなたのプロデューサーがこの場所でスタブをインストールしますが、あなたが自分自身のMaven「を通じて場所を定義しない限り、消費者は、地元のレポのためのデフォルトの場所にを見ていきます。 r epo.local "システムプロパティ

あなたは、消費者の側で、この使用して確実なようにそれを行うことができます。この説明のために

<build> 
    ... 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <configuration> 
       <systemPropertyVariables> 
        <maven.repo.local>${settings.localRepository}</maven.repo.local> 
       </systemPropertyVariables> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 
+0

おかげで、私は春の雲の契約は、デフォルトでは**〜/ .m2/reposiroty **でスタブを検索すべきだと思います、* * maven.repo.local *の設定によるものではありませんが、設定しないと、私のプロジェクトではなく、代わりに** /$ {user.home} /。m2/* maven.repo.local **。 – Hantsy

関連する問題