The package goal packages any self-executable SeedStack application in a Capsule. A Capsule is a way of packaging and running any application with all its dependencies from a unique plain executable JAR.

Self-executable SeedStack application are applications that contains one and only one implementation of the SeedLauncher interface in their classpath, like the one provided by the seed-cli module (for command-line application) or the seed-web-undertow module (for embedded Web applications).


Parameters can be given as system properties (-DparameterName=parameterValue) or specified in the pom.xml plugin declaration:

Name Type Mandatory Description
capsuleVersion String No The capsule version to be used. If not given, the latest version discoverable is automatically used.
classpathEntries List of strings No The classpath entries to add to the application classpath. Relative paths are resolved to the location of the capsule JAR. The current user home path (~) can be used.
systemProperties List of strings No The system properties to set when launching the application.
environmentVariables List of strings No The environment variables to set when launching the application.
jvmArgs List of strings No The JVM arguments to apply when launching the application.
allowSnapshots - No If specified, the Capsule will allow SNAPSHOT dependencies to be used.


Standalone Capsule

A standalone Capsule packs all its dependencies and is completely self-contained. It is the default mode of operation. To build such a Capsule, use the following command:

mvn org.seedstack:seedstack-maven-plugin:package

Running a capsule

To run a capsule, you simply execute it as a plain executable JAR:

java [jvm-args] -jar my-capsule.jar [args...]

In addition to any argument already specified in the capsule manifest (with the plugin parameters described above), you can specify any argument to the JVM or to the program as usual.

A lot of options can be specified to alter the default behavior of the Capsule itself. Please refer to the Capsule user-guide for more information.