I'm noticing a lot of projects (DropWizard, Grails, etc.) starting to embrace the notion of a "fat" JAR (using an embedded web server like Jetty or Tomcat) vs. the traditional WAR deploy. Both methods involve a single JVM process (i.e. no matter how many WARs are deployed to Tomcat, it's all the same JVM process).
Under what circumstances is either deployment method preferable over the other?
Here are some reasons:
In favor of JAR:
In favor of WAR or EAR:
Having said this, you can always provide 2 or 3 types of executables to cater to all needs. Any build tool makes this easy.