This plugin has been removed from the current Maven distribution, it is not maintained by the Maven team anymore. Please check the Plugins History page to find out the last Maven version that included this plugin.
UberJar packages your project as well as its dependencies into a
single JAR file. In addition, bootstrap code is added to the
archive that enables a main class to be invoked by simply
typing: java -jar uber.jar
. This enables you to
easily package up a command line utility into a single JAR
without worrying about the distribution of your dependencies or
shell scripts to invoke your main class. UberJar takes care of
this for you.
UberJar utilizes the Classworlds package for the bootstrap code that loads your dependencies and executes your main method. It also enables your dependent JARs to be inserted into the classpath, and best of all, the JARs are located with the UberJar. JARs within JARs are supported by the Classworlds class loaders. However, you do not need to know anything about Classworlds to build your UberJar. For those that want more information, see the Classworlds uberjar page .
To create the UberJar, be sure to define the maven.uberjar.main property in your project's properties file. Alternatively, if you already have a custom Classworlds configuration file, specify the maven.uberjar.classworlds.conf property instead. To create the UberJar, type:
maven uberjar
Upon success, the UberJar will be located in your target directory with a -uber appended for identification. To invoke your application, type:
java -jar your_uber_jar_here.jar