Support the creation of an executable jar that includes all the runtime dependencies of the application.
One approach would be to add a new ‘executable-jar’ plugin. This would add an ‘applicationJar’ task, which builds the fat executable jar.
Some ideas to build on this:
- Integrate with the application plugin, to share configuration such as the main class name and runtime classpath. * Integrate with the application plugin, to include the fat executable jar in the distribution, in place of the standard thin jar + runtime dependency jars. * Integrate with the java plugin, to allow the fat executable jar to be published instead of the standard thin jar. This would also need to mess with the generated pom.xml or ivy.xml, to remove the dependency declarations for those runtime dependencies that are packaged in the fat jar (this is an advanced move).