If you're building a Java web app that you yourself or your organization will be deploying then you can save yourself a lot of trouble by avoiding the whole build-to-war + deploy-to-server approach. Instead, you should build your web app as a normal Java application with an embedded web app server. Don't build a WAR, just compile the code and serve the files out of their source location. This has the following advantages:
- You can code and test iteratively because you don't have to copy files and create war packages every time you make a change. This is similar to what the
mvn jetty:run
command is being used for by many developers today. - You run the same exact code in production as you do in development. Hopefully I don't have to elaborate on the advantages of that. Most developers today use
mvn jetty:run
or similar to achieve a quick, iterative dev cycle. But come time for deployment, they build a WAR and throw it over the wall to be deployed in some app server