2016-07-25 4 views
3

У меня есть проект, который содержит некоторые тесты, все, что он делает, создает test-jar для управления другими проектами. И это зависит от другого артефакта, давайте назовем это артефакт XВпрыскивание зависимостей и тесты

то есть несколько других проектов, которые управляют test-jar, используя maven-surefire-plugin

У меня есть несколько реализаций артефакта X и то, что я хочу сделать, это быть в состоянии выполнить эти тесты с помощью реализации, что я хочу, а не X

так, например:

в проекте A я хочу запустить тесты с использованием реализации A

в проекте B Я хочу, чтобы запустить тесты с использованием протокола B

это не представляется возможным, так как только test-jar генерируемой, он имеет артефакт X жестко закодированы в нем

так Я открыт для любых других решений

Edit:

дополнительная информация:

ПОМ файл проекта генерации тестов:

часть для генерации 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> 

В идеале я хочу сделать некоторые вещи, что говорит проект A к Override артефакту X с его собственной реализацией

Я надеюсь, что это имеет смысл теперь

+1

Это слишком абстрактно для меня, чтобы получить ручку. Возможно, вы могли бы разместить соответствующие части различных 'pom.xml', а также упрощенную структуру проекта? – Stewart

+0

В порядке я добавлю несколько примеров – isco

ответ

1

Я думаю, что вы ищете сферы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

Смежные вопросы