Основным отличием является время: создание WAR, его развертывание и (пере) запуск внешнего сервера стоит времени.
В моих проектах у меня есть класс Java, который создает экземпляр сервера Jetty и который использует путь к классу, предоставленный Eclipse, для определения местоположения всех ресурсов (плюс некоторые пользовательские настройки для перезагрузки).
В моем случае создание WAR занимает 10 минут (компилирование всего, запуск всех тестов, создание WAR 75 МБ). Если я пропущу тесты, это займет 2 минуты. Запуск Tomcat занимает 35 секунд. Развертывание занимает еще 7 секунд. Запуск приложения в Tomcat занимает 135 секунд. Так что это минимум 297 секунд или около 5 минут.
С моей настройкой Jetty, оптимизированной для рук, это занимает 45 секунд.
Если я изменяю файл класса, мне нужно создать новую WAR и т. Д. В Jetty я делаю изменения, сохраняю, и экземпляр Jetty перезапускается через 7 секунд.
Таким образом, разница состоит в том, чтобы делать 12 (Tomcat + WAR) или 514 изменений в час.