Tapestry Heroku App
The main change is support for the Maven appassembler-maven-plugin plugin, which executes on Heroku after content is pushed; it obtains all dependencies and builds the shell script that launches the application.
Unlike a traditional servlet application, on Heroku your application is not packaged as a WAR and deployed into a container ... instead, a script is used to launch an embedded version of Jetty to execute your application. The Java class used to start Jetty is also part of this project. Heroku and the Maven plugin take care of all the details for you.