Какие веб-фреймворки Java обеспечивают горячую перезагрузку?
Я хотел бы знать, какие рамки веб-приложений Java обеспечивают "горячую перезагрузку", т.е. позволяют разрабатывать приложения и перераспределять их на сервере "почти мгновенно" (т.е. менее чем за несколько секунд).
В мире Java Play! делает это из коробки, но то, что я ищу, является более исчерпывающим списком.
Другие примеры, о которых я знаю, включают в себя: Nuxeo WebEngine, если вы используете Eclipse и правый плагин, или, в мире Python, Django и Pylons (при использовании опции --reload
).
Ответы
Ответ 1
Если кому-то может быть интересно после этих месяцев:
вы можете configure jetty, чтобы он горячо разворачивал ваши скомпилированные классы (eclipse + netbeans имеют функцию компиляции при сохранении). С помощью maven вы можете ввести mvn jetty:run
после этой конфигурации в свой pom.xml:
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>${jetty.version}</version>
<configuration>
<scanTargets>
<scanTarget>target/classes/</scanTarget>
</scanTargets>
<scanIntervalSeconds>1</scanIntervalSeconds>
</configuration>
</plugin>
Это можно сделать без использования jrebel, и это означает: сделайте изменение в IDE + сохраните его + перейдите в свой браузер + F5 = > вы закончили!
С этой функцией, например. калитка или ваадин горячего развертывания (но другие тоже!)
Ответ 2
Насколько я знаю, вы можете делать горячую перезагрузку почти с каждой инфраструктурой java, если используете jrebel. В некоторых фреймворках есть встроенные функции быстрого развертывания, как указано в других ответах.
Ответ 3
В Tapestry 5 есть горячее разворачивание отдельных изменений класса/страницы, равно как и Seam.
Ответ 4
Я собираюсь предположить, что вы хотите это для целей развития, а не для производства (поскольку горячая перезагрузка в производстве для Java == большая неудача). Очень редко я буду шить коммерческий продукт, но если вы хотите, чтобы горячая перезагрузка в Java ускорила разработку, то вы действительно хотите JRebel. Эта горячая перезагрузка будет довольно легкой с вашей стороны.
ПРИМЕЧАНИЕ. Что бы вы ни делали, не используйте JRebel (или любое горячее развертывание, если на то пошло) для ваших приложений Java.
Ответ 5
При разработке приложения struts (2) в eclipse он также автоматически перезагружается, как только вы сохраняете файл, который компилируется успешно.
Однако сеансы теряются при каждой перезагрузке, которая немного раздражает.
Ответ 6
Если вы используете POJOs
вместо EJBs
, Seam framework
должен быть в вашем списке.
Ответ 7
Если вы хотите отредактировать код Java (контроллер, модель) и обновить браузер, чтобы сразу увидеть изменения и без перезапуска вашего веб-сервера, вы можете использовать scooter. Кстати, его встроенный инструмент File Browser позволяет вам редактировать (компилировать) ваш код через браузер. Браузер может быть несовместим с IDE, но он помогает удаленно разрабатывать ваше приложение.
Ответ 8
Там новый парень на блоке, RelProxy, он с открытым исходным кодом, не настолько продвинут, как JRebel, но его можно использовать для свободного изменения подмножества вашего кода во время выполнения и перезагрузки с почти бездействия и без необходимости перезагрузки контекста (без потери сеанса) в разработке и производстве, если вы хотите.