http://mojo.codehaus.org/appassembler/appassembler-maven-plugin/usage-program.html
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>appassembler-maven-plugin</artifactId>
<version>1.2</version>
<configuration>
<!-- Set the target configuration directory to be used in the bin scripts -->
<configurationDirectory>conf</configurationDirectory>
<!-- Copy the contents from "/src/main/config" to the target
configuration directory in the assembled application -->
<copyConfigurationDirectory>true</copyConfigurationDirectory>
<!-- Include the target configuration directory in the beginning of
the classpath declaration in the bin scripts -->
<includeConfigurationDirectoryInClasspath>true</includeConfigurationDirectoryInClasspath>
<!-- set alternative assemble directory -->
<assembleDirectory>${project.build.directory}/mycompany-assemble</assembleDirectory>
<!-- Extra JVM arguments that will be included in the bin scripts -->
<extraJvmArguments>-Xms128m</extraJvmArguments>
<!-- Generate bin scripts for windows and unix pr default -->
<platforms>
<platform>windows</platform>
<platform>unix</platform>
</platforms>
<programs>
<program>
<mainClass>com.mycompany.app.WindowsApp1</mainClass>
<name>app1</name>
<!-- Only generate windows bat script for this application -->
<platforms>
<platform>windows</platform>
</platforms>
</program>
<program>
<mainClass>com.mycompany.app.UnixApp2</mainClass>
<name>app2</name>
<!-- Only generate unix shell script for this application -->
<platforms>
<platform>unix</platform>
</platforms>
</program>
<program>
<mainClass>com.mycompany.app.App3</mainClass>
<commandLineArguments>
<!-- Add two predefined command line arguments to the call of App3 -->
<commandLineArgument>arg1</commandLineArgument>
<commandLineArgument>arg2</commandLineArgument>
</commandLineArguments>
<name>app3</name>
</program>
<program>
<mainClass>com.mycompany.app.App4</mainClass>
<name>app4</name>
</program>
</programs>
</configuration>
</plugin>
</plugins>
</build>
</project>