There is a clear solution for sharing the common test code between maven projects using test-jar goal of maven-jar-plugin plugin (see here).
I need to do the similar thing with test resources, in particular, I want test resources of project A be available in the classpath of project B during testing.
For project A one need to declare:
<!-- Package and attach test resources to the list of artifacts: --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <executions> <execution> <phase>package</phase> <goals> <goal>run</goal> </goals> <configuration> <tasks> <jar destfile="${project.build.directory}/test-resources.jar"> <fileset dir="${project.basedir}/test-resources" /> </jar> </tasks> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <executions> <execution> <phase>package</phase> <goals> <goal>attach-artifact</goal> </goals> <configuration> <artifacts> <artifact> <file>${project.build.directory}/test-resources.jar</file> <type>jar</type> <classifier>test-resources</classifier> </artifact> </artifacts> </configuration> </execution> </executions> </plugin> And in project B it will be normal dependency:
<dependency> <groupId>myproject.groupId</groupId> <artifactId>myartifact</artifactId> <version>1.0-SNAPSHOT</version> <classifier>test-resources</classifier> <scope>test</scope> </dependency> Question: Should it work in all cases? Is it possible to pack resources without maven-antrun-plugin (using more 'lightweight' plugin)?