Я хочу включить классы в тестовую банку, чтобы они были доступны в другом пакете OSGi, который импортирует как тестовую, так и основную банку из одного и того же артефакта. В настоящее время моя сборка maven успешна, но когда я пытаюсь развернуть пакеты в Apache Karaf, я получаю java .lang.NoClassDefFoundError для классов в моей тестовой папке.
Я знаю предпочтительные способ включить тестовые классы, переместив их в отдельный проект. https://maven.apache.org/plugins/maven-jar-plugin/examples/create-test-jar.html Но из-за ограничений я не могу переместить классы из тестовой папки в основную папку.
Я создаю тестовую банку, используя указанный ниже плагин.
<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>
Я также импортирую test-jar в pom-файл другого пакета, и сборка maven работает нормально.
<dependency>
<groupId>com.xyz</groupId>
<artifactId>my-store-api</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>compile</scope>
</dependency>