We had a guy working with us who used the maven-assembly-plugin to package all dependencies. He has since left the company and I\'m trying to figure out how he did this. I am
If I read your question right, what you want to do is to add a new Maven module (called runtime
) to an existing project and use the maven-assembly-plugin
on this new project to package it.
The first step is then to create the Maven module. I'm not sure if Netbeans provides a facility to do this (Eclise does), but it comes down to:
<modules>
section of the parent POM, add a new <module>
for runtime
.runtime
at the same directory level of the parent POMcreate a file pom.xml
inside this new folder declaring the root POM as parent POM like this:
<parent>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
</parent>
Then, you need to configure the maven-assembly-plugin to do the packaging of this new module. This is done with the help of a assembly descriptor, whose format is documented here.
To give you something to start with, consider the following POM configuration and assembly descriptor, that will package everything that is under config
, data
and scripts
in a zip file:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>src/assemble/assembly.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
with the assembly.xml
:
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
<id>distribution</id>
<formats>
<format>zip</format>
</formats>
<fileSets>
<fileSet>
<directory>config</directory>
<outputDirectory>/config</outputDirectory>
</fileSet>
<fileSet>
<directory>data</directory>
<outputDirectory>/data</outputDirectory>
</fileSet>
<fileSet>
<directory>scripts</directory>
<outputDirectory>/scripts</outputDirectory>
</fileSet>
</fileSets>
</assembly>
After running mvn clean install
on the parent POM, a zip file will be created under the target
directory of the module runtime
. It will contain the 3 specified folders.