Предположим, у меня есть два проекта A и B, проект имеет только тестовые примеры. Project B зависит от A и будет использовать классы в для компиляции исходного кода в src/main/java
. Может ли это сделать? Как?
Я знаю, что это странно, но это ситуация в моей среде.
Заранее спасибо.
Следуйте руководству по использованию прилагаемых тестов:
Убедитесь, что вы создали те тестовые банки в проекте A
<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>
И затем используйте их в проекте B
<project>
...
<dependencies>
<dependency>
<groupId>com.myco.app</groupId>
<artifactId>foo</artifactId>
<version>1.0-SNAPSHOT</version>
<type>test-jar</type>
<scope>compile</scope>
</dependency>
</dependencies>
...
</project>
Это звучит странно. Я бы потратил некоторое время на изучение, если это действительно правильная структура проекта.
Если вы решите, что это правильная структура проекта, это просто зависимость в maven. Если классы в проекте A используются только для тестирования в проекте B, то вы можете задать область зависимостей для test
, а также.
Создайте тестовую банку следующим образом:
<project>
...
<build>
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
...
</plugins>
</build>
...
</project>
Использование тестового артефакта:
<project>
...
<dependencies>
<dependency>
<groupId>groupId</groupId>
<artifactId>artifactId</artifactId>
<type>test-jar</type>
<version>version</version>
</dependency>
</dependencies>
...
</project>
project B for source compile purpose...
?