I need to deploy a production version of a web application. So far, I’ve been testing it with mvn jetty:run. I’ve used actual jetty installations before, but they seem only necessary when you want to serve multiple wars on the same web server. In some ways this is the most staightforward however (mvn package and copy it over).
My other options are to create a runnable jar (mvn assembly:single) that starts a server, but I need to tweak the configuration so that the static content src/main/webapp is served and the web.xml can be found.
I’ve also read about a “runnable war”. This might avoid the src/main/webapp problem since these files are already laid out in the warfile. I don’t know how to go about doing this, however.
I could also stick with mvn jetty:run, but this doesn’t seem like the best option because then the production deployment is tied to code instead of being a standalone jar.
Any opinions on the best way or pros and cons of these different approaches? Am I missing some options?
The jetty-console-maven-plugin from simplericity is simple to use and works great. When you run
mvn packageyou get two wars–one that is executable.java -jar mywar.war --helpgives usage, which allows a bit of configuration (port, etc.).