If you have a Maven project with a bunch of dependencies, and you’ve written a harness to launch your thing, it’s handy to be able to create a shell script to run your harness with all your dependencies on the classpath.  The Maven assembler plugin is what you need.

In your pom:


Then run:

$ mvn package appassembler:assemble

This produces a shell (and .bat) script in target/appassembler:

$ sh target/bin/my_cool_app Hello world!

This is one of those “I keep forgetting how to do this so I’d better blog it so I can find it later” kind of posts: It’s not original, but handy, and I keep forgetting to run the package part of the Maven command.