Разработка с помощью Wildfly Swarm в среде IDE без перезапусков — где-то горячее развертывание?

Меня интересует проект Wildfly Swarm для создания приложения JavaEE с толстыми банками, но я не могу понять, как «горячее развертывание» измененных классов из IDE.

Всякий раз, когда я меняю строку кода или файл JSF xhtml, мне в настоящее время приходится перезапускать все приложение, что занимает 7 секунд или около того. Это не очень продуктивно.

Spring Boot предлагает spring-boot-devtools, который перезагружает как минимум некоторые классы, традиционные серверы приложений предлагают протоколы горячего развертывания. Есть ли что-то подобное для Wildfly Swarm? Поможет ли здесь JRebel?


person lathspell    schedule 22.03.2016    source источник
comment
JRebel должен помочь.   -  person Joonas Vali    schedule 23.03.2016


Ответы (4)


Вы можете запустить WildFly Swarm как Java-приложение непосредственно из исходных кодов в вашей любимой IDE, вызвав свой собственный класс Main или класс org.wildfly.swarm.Swarm. Это избавит вас от этапа упаковки.

Что касается горячей перезагрузки класса, как обычно, JVM сможет перезагрузить неструктурные изменения, но ее придется перезапускать всякий раз, когда вы «ломаете» сигнатуру класса. Я не пробовал, но вполне вероятно, что JRebel сможет помочь.

Если вы являетесь пользователем Eclipse, вы можете попробовать wildfly-hive. Он пытается автоматически определять роевые приложения и создает соответствующие серверы в представлении серверов. Вам просто нужно нажать start/debug/stop, аналогично стандартным серверам в Eclipse.

person Fred Bricon    schedule 14.04.2016
comment
Я попытался использовать org.wildfly.swarm.Swarm в своем проекте Eclipse, используя рой диких мух. И это работает! Но проблема в том, что сгенерированный военный файл отличается. Так, например, мой проект называется Test.war, но во время развертывания отладки он создает что-то вроде 507ac020-cc98-4956-9c88-418869842dcf.war... так что происходит то, что мой поиск bean-компонента не работает. - person Artanis Zeratul; 12.09.2017
comment
Я использую JRebel для отладки своих приложений WildFly Swarm, и он отлично работает. - person gastaldi; 08.06.2018

Мое решение состояло в том, чтобы использовать IntelliJ IDEA и создать артефакт WAR в разобранном виде из моих источников. Не включайте какие-либо зависимости WildFly Swarm, но включайте все остальное.

Затем вы можете использовать обычный старый WildFly Standalone с конфигурацией запуска JBoss, и IntelliJ развернет взрывную войну. Оттуда вы можете выполнять горячую замену, отладку и т. д.

Для разработки запустите свой код на WildFly Standalone. Для производства используйте банку WildFly Swarm. Это отлично работает для меня, и я использую этот метод в течение нескольких месяцев без особых проблем.

person Mitch Talmadge    schedule 11.10.2016
comment
Я пытаюсь добиться того же самого, но понятия не имею, с чего начать. Как вы справляетесь с исключением зависимостей, связанных с роем? - person Nicolas; 30.11.2016

Я знаю, что это немного поздно, но при использовании IntelliJ IDEA мы используем класс org.wildfly.swarm.Swarm, который можно запустить из IDE, и он дает вам возможность горячей перезагрузки классов в режиме отладки. Вы можете создать конфигурацию запуска с этим, убедитесь, что вы установили рабочий каталог и путь к классу использования конфигураций модуля.

person Nándor Holozsnyák    schedule 18.07.2018

Я бы предложил использовать IntelliJ Idea. Его шаблон проекта JavaEE работает с горячим развертыванием на большинстве серверов приложений.

person Pablo Santa Cruz    schedule 22.03.2016
comment
Wildfly Swarm не является сервером приложений. Он просто объединяет библиотеки Wildfly в толстую банку. Насколько я знаю, он не открывает порт горячего развертывания для использования IDE (но, возможно, может это сделать, это то, что я хотел знать). - person lathspell; 23.03.2016