Welcome to Stack Overflow :).
You are on the right way. Your real problem is using a zip.
The following configuration is ok and work great for me. It’s an old one (2 years ago), and I’m not sure that match the best practices. But I Know that’s working.
This allow me to share some resources between projects, especially for unit tests.
Zip Project :
pom.xml
<groupId>com.mycompany</groupId>
<artifactId>cfg_dev</artifactId>
<version>1.1.0</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>cfg-main-resources</id>
<goals>
<goal>single</goal>
</goals>
<phase>package</phase>
<configuration>
<descriptors>
<descriptor>/src/main/assembly/resources.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
Assembly descriptor :
It will produce this artifact : cfg_dev-1.1.0-resources.zip
Please, note that
- this is a zip archive
-
the “classifier” is resources (like assembly name)
resources
zip
false
src/main/resources
Main Project :
pom.xml
Please, note that
- this depends on a zip archive
-
the dependency “classifier” is resources (like previous assembly name)
<!-- Unit test dependency --> <dependency> <groupId>com.mycompany</groupId> <artifactId>cfg_dev</artifactId> <version>${project.version}</version> <classifier>resources</classifier> <type>zip</type> <scope>test</scope> </dependency> .... <build> <testResources> <!-- Ressources habituelles --> <testResource> <directory>src/test/resources</directory> <filtering>true</filtering> </testResource> <!-- Unzipped resources from cfg_dev --> <testResource> <directory>${project.build.directory}/test-resources</directory> <filtering>true</filtering> </testResource> </testResources> <plugins> <!-- Unzip shared resources --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>unpack-cfg-test-resources</id> <goals> <goal>unpack-dependencies</goal> </goals> <phase>generate-test-resources</phase> <configuration> <outputDirectory>${project.build.directory}/test-resources</outputDirectory> <includeArtifactIds>cfg_dev</includeArtifactIds> <includeGroupIds>${project.groupId}</includeGroupIds> <excludeTransitive>true</excludeTransitive> <excludeTypes>pom</excludeTypes> <scope>test</scope> </configuration> </execution> </executions> </plugin> </plugins>
I hope this is clear and that will help you 🙂