Какие веб-фреймворки 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, но его можно использовать для свободного изменения подмножества вашего кода во время выполнения и перезагрузки с почти бездействия и без необходимости перезагрузки контекста (без потери сеанса) в разработке и производстве, если вы хотите.