Опубликовать тестовые утилиты из проекта Maven - PullRequest
1 голос
/ 15 декабря 2010

Я создал библиотеку в Maven, которая может быть расширена за счет реализации некоторых интерфейсов. Чтобы протестировать реализацию по умолчанию, я написал несколько совпадений Hamcrest, которые в настоящее время живут в src/test/java.

Однако я думаю, что они могут быть полезны для пользователей библиотеки, если они хотят проверить свои настройки.

Так как я могу сделать их доступными? Перемещение их на src/main потребовало бы сделать Hamcrest зависимостью времени выполнения, и я не хочу этого.

Ответы [ 3 ]

4 голосов
/ 15 декабря 2010

Существует способ создать тестовый jar и установить его в репозиторий с помощью команды 'mvn jar: test-jar'. Затем на этот файл jar могут ссылаться другие проекты, использующие модификатор test-jar в блоке зависимостей.

Если вы хотите, чтобы этот jar был собран и установлен как часть вашей обычной сборки 'mvn install', добавьте в pom следующую конфигурацию плагина:

С http://maven.apache.org/guides/mini/guide-attached-tests.html

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

Тогда другие проекты могут ссылаться на тестовую банку следующим образом:

<dependency>
  <groupId>com.myco.app</groupId>
  <artifactId>foo</artifactId>
  <version>1.0-SNAPSHOT</version>
  <type>test-jar</type>
  <scope>test</scope>
</dependency>
1 голос
/ 15 декабря 2010

Как вы сказали, переместите его в src / main в новом проекте. Пусть этот проект используется только в тестовой зависимости, и вы не загрязняете путь к классу вашего модуля.

1 голос
/ 15 декабря 2010

Похоже, вам нужно переместить их в собственный проект и выпустить его. Оттуда вы можете определить в исходном проекте, какую область вы хотите.

...