On Linux, the BeanMinder project creates a launcher shell script, and libraries directory, then archives this into a .tar.gz file.
Note that the code of the application is in the BeanMinderCore module, and that the pom.xml shown here is from a separate BeanMinderCoreLinux module.
Here are the relevant sections of the pom.xml for that project:
...
<dependencies>
<dependency>
<groupId>org.devzendo</groupId>
<artifactId>BeanMinderCore</artifactId>
<version>0.2.0-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<plugins>
<!-- Create the Linux launcher structure under target/linux. -->
<plugin>
<groupId>org.devzendo</groupId>
<artifactId>cross-platform-launcher-plugin</artifactId>
<version>1.1.0</version>
<configuration>
<os>Linux</os>
<applicationName>BeanMinder</applicationName>
<mainClassName>org.devzendo.minimiser.MiniMiser</mainClassName>
</configuration>
<executions>
<execution>
<id>createlauncher</id>
<phase>generate-resources</phase>
<goals>
<goal>createlauncher</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Package the above launcher structure into a .tar.gz archive -->
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>linux-launcher-distribution</descriptorRef>
</descriptorRefs>
</configuration>
<dependencies>
<dependency>
<groupId>org.devzendo</groupId>
<artifactId>cross-platform-launcher-plugin</artifactId>
<version>1.1.0</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>attached</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
...