В чем разница между "Redeploy" и "Restart Server" в IntelliJ?

Я использую IntelliJ с Tomcat 6 для запуска приложения Spring Java EE. Вместо того, чтобы развертывать скомпилированную войну, я решил использовать развернутое развертывание войны, тем самым давая мне возможность отключать некоторые классы и JSP.

Однако, помимо "Классы обновления" и "Обновить классы и ресурсы", IntelliJ также позволяет пользователям "Redeploy" и "Restart Server" при обновлении. В чем разница между этими двумя вариантами?

Если я вношу изменения в мои подписи метода в своем классе, или если я вношу изменения в свой Springconfig.xml, мне нужно перезапустить сервер или перераспределить достаточно? Я заметил, что я не могу просто раскручивать классы, чьи сигнатуры функций или аннотации, связанные с ними, были изменены.

Ответ 1

Сервер перезагрузки выполняет именно то, что он говорит, и перезапускает сервер tomcat. Ваша война будет перестроена и развернута при запуске сервера. Это полезно, если у вас возникли проблемы с "горячей" заменой ваших классов.

Redeploy передислоцирует весь.war (без перезапуска сервера), в отличие от попыток "сменить" измененные классы и другие ресурсы.

См. Также: http://www.jetbrains.com/idea/webhelp/updating-a-running-java-ee-application.html

Отвечая на ваш второй вопрос, повторного развертывания должно быть достаточно. Тем не менее, это может вызвать утечку памяти и часто только немного быстрее, чем полный перезапуск.

Ответ 2

Обновление ресурсов. Все измененные ресурсы (то есть все компоненты приложения, отличные от классов) будут обновлены.

Обновить классы и ресурсы. Все измененные ресурсы будут обновлены; измененные классы будут перекомпилированы. В режиме отладки обновленные классы будут обмениваться "горячими". В режиме запуска IntelliJ IDEA будет просто обновлять измененные классы в выходной папке. Будут ли такие классы фактически перезагружены в запущенном приложении, зависит от возможностей используемой среды выполнения.

Переустановка. Приложение будет обновляться и перераспределяться.

Перезапустите сервер. Сервер будет перезапущен. Обновленная версия приложения будет развернута при запуске сервера. Для упакованных артефактов доступны следующие варианты:

Занятия горячей замены. Измененные классы будут перекомпилированы и перезагружены во время выполнения. Обратите внимание, что этот параметр будет работать только в режиме отладки. Переустановка. Общее приложение будет перестроено и перераспределено. Перезапустите сервер. Сервер будет перезапущен. Приложение будет восстановлено и развернуто при запуске сервера.

От: http://www.jetbrains.com/idea/webhelp/run-debug-configuration-tomcat.html