Я рекомендую использовать тип вместо классификатора (см. также: классификатор ). Это говорит Знатоку немного более явно, что Вы делаете (и я нашел, что m2eclipse и q4e оба нравится он лучше).
<dependency>
<groupId>com.myco.app</groupId>
<artifactId>foo</artifactId>
<version>1.0-SNAPSHOT</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
Спасибо за основное предложение модуля. Однако я не создал бы новый модуль для просто этой цели.
Найденный приемлемым ответом в Безошибочная документация Знатока и блог . См. также" , Как создать банку, содержащую тестовые классы ".
Это создает файл банки кода от src/test/java
использование плагин банки так, чтобы модули с тестами могли совместно использовать код.
<project>
<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>
</project>
для использования приложенного тестового JAR, который был создан выше Вас просто, определяют зависимость от основного артефакта с указанным классификатором тестов:
<project>
...
<dependencies>
<dependency>
<groupId>com.myco.app</groupId>
<artifactId>foo</artifactId>
<version>1.0-SNAPSHOT</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
</dependencies>
...
</project>
Мы решили это путем создания проекта знатока с тестовым кодом как src/main/java и добавления следующей зависимости к проектам:
<dependency>
<groupId>foo</groupId>
<artifactId>test-base</artifactId>
<version>1</version>
<scope>test</scope>
</dependency>
Да... просто включайте Основной модуль как зависимость в Основном. Если Вы только наследовали тестовый код, то можно использовать тег объема, чтобы удостовериться, что Знаток не включает код в артефакт, когда развернуто. Что-то вроде этого должно работать:
<dependency>
<groupId>BaseGroup</groupId>
<artifactId>Base</artifactId>
<version>0.1.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>