2016-07-25 16 views
3

私はいくつかのテストを含むプロジェクトを持っています。それは他のプロジェクトによって実行されるtest-jarを作成することです。そして、それは私がアーティファクトXの複数の実装があり、私がやりたいことにあり、その後test-jarを実行し、複数の他のプロジェクトがmaven-surefire-plugin依存性注入とテスト

を使用して、そこにあるのは、X

をアーティファクトそれを呼びましょう、別の成果物に依存します例えばないX

ので、私が欲しいの実装を使用してこれらのテストを実行することができ:

プロジェクトAに私が実装0123を使用してテストを実行したいです私は、生成test-jarたら、それはアーティファクトXはそれ

にハードコーディングされていますので、これは、可能であるように思われません実装B

を使用してテストを実行したいプロジェクトB

私は他のソリューションに開いている

編集:

追加情報:

プロジェクトのPOMファイルを生成するテスト:

test-jar

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-jar-plugin</artifactId> 
      <version>2.4</version> 
      <executions> 
       <execution> 
        <goals> 
         <goal>test-jar</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

アーティファクトX依存関係を生成する部分:

<dependency> 
     <groupId>com.conztanz</groupId> 
     <artifactId>X</artifactId> 
     <version>1.0-SNAPSHOT</version> 
    </dependency> 

プロジェクトの一つのポンポンファイルテストを実行する(プロジェクトA):

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.15</version> 
      <configuration> 
       <dependenciesToScan> 
        <dependency>testJar</dependency> 
       </dependenciesToScan> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

は、理想的には私が欲しいものになりました

+1

これはあまりにも抽象的なので、私はハンドルを取得することはできません。おそらく、さまざまな 'pom.xml'の関連する部分を単純なプロジェクト構造とともに投稿することができますか? – Stewart

+0

いいえいくつかの例を追加してみましょう – isco

答えて

1

私はあなたがスコープを探していると思う私はこれがより理にかなって願っています

それ自身の実装でOverrideアーティファクトXにプロジェクトAを伝えるいくつかのことを行うことであるprovidedと呼ばれます。

依存性は次のようになります。

<dependency> 
    <groupId>com.conztanz</groupId> 
    <artifactId>X</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <scope>provided</scope> 
</dependency> 

これは、Mavenを伝えます:「ねえ、私はコンパイルするために、これを必要とするが、コンテナ(か何か)ので、目標出力にそれが含まれていないだろう瓶自体を提供してください。

+0

興味深いですが、他のプロジェクトがXアーティファクトの実装をどのように提供するべきだと思いますか? – isco

+0

通常の依存関係として、自分自身の 'pom.xml' – Stewart