Creating a executable script from a Maven project
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:
<build> <plugins> ... <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>appassembler-maven-plugin</artifactId> <configuration> <programs> <program> <mainClass>com.example.yourApp.YourClassWithMainMethod</mainClass> <name>my_cool_app</name> </program> </programs> </configuration> </plugin> </plugins> </build>
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.


