Самое простое, что нужно сделать, это настроить другой проект для упаковки классов для тестового фляги, а затем установить его как нормальную тестовую область зависимость.
Если вы не хотите / не можете этого сделать, вы можете использовать плагин сборки, чтобы создать jar в фазе process-test-classes
(т.е. после того, как тесты были скомпилированы, но до того, как тесты будут выполнены). Приведенная ниже конфигурация вызовет подключаемый модуль сборки, чтобы создать jar с именем classloader-test-deps
на этом этапе в целевом каталоге. Ваши тесты могут затем использовать эту банку по мере необходимости.
Плагин сборки использует дескриптор сборки (в src / main / assembly, называемый test-assembly.xml), который упаковывает содержимое target / test-classes. Я установил фильтр для включения содержимого пакета com.test и его дочерних элементов. Это предполагает, что у вас есть соглашение об именах пакетов, которое вы можете применять для содержимого jar.
Плагин сборки по умолчанию прикрепит jar как дополнительный артефакт, указав attach
как false, он не будет установлен / развернут.
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-2</version>
<executions>
<execution>
<id>create-test-dependency</id>
<phase>process-test-classes</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<finalName>classloader-test-deps</finalName>
<attach>false</attach>
<descriptors>
<descriptor>src/main/assembly/test-assembly.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
Это содержимое test-assembly.xml
<assembly>
<id>test-classloader</id>
<formats>
<format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>${project.build.testOutputDirectory}</directory>
<outputDirectory>/</outputDirectory>
<!--modify/add include to match your package(s) -->
<includes>
<include>com/test/**</include>
</includes>
</fileSet>
</fileSets>
</assembly>