I wish to create a zip archive of my \"target\" directory (${project.build.directory). using the maven-assembly-plugin seems to me like overkill for such a simple task (and
If you don't have any "special" needs for the generated .zip file, you can use one of the pre-defined Maven Assembly descriptors. The pre-defined assembly descriptors make it easy to quickly and easily create specific assemblies without having to provide your own assembly descriptor. Suppose you wanted to use the bin
pre-defined descriptor. Then in the plugins
section of your POM's build
section, you could just add the following.
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.6</version>
<configuration>
<descriptorRefs>
<descriptorRef>bin</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
Of course, as always with Maven, if you want to do something beyond the default configuration, you'll have to create your own configuration, and in this case, that means your own assembly descriptor.
The list of pre-defined descriptors is documented here.
If the bin predefined assembly descriptor doesn't suit your needs, then you have three options:
Personally, I would just use the maven-assembly-plugin with the following zip.xml
descriptor:
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
<id>bin</id>
<baseDirectory>/</baseDirectory>
<formats>
<format>zip</format>
</formats>
<fileSets>
<fileSet>
<directory>${project.build.directory}</directory>
</fileSet>
</fileSets>
</assembly>
And in your POM:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.6</version>
<configuration>
<descriptors>
<descriptor>src/main/assembly/zip.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make-assembly</id> <!-- this is used for inheritance merges -->
<phase>package</phase> <!-- append to the packaging phase. -->
<goals>
<goal>single</goal> <!-- goals == mojos -->
</goals>
</execution>
</executions>
</plugin>