У меня есть многомодульный проект maven, создающий .war и развертывающий его в Wildfly V14.0.1. В проекте есть зависимости (.jars), связанные с развернутым файлом .war.
При разработке я хочу перезагружать классы, а также файлы ресурсов из каждого модуля во время выполнения.
Я устанавливаю Intelj с LiveEdit, HotSwapping (взорванная война и т. д.), и все работает нормально, если я меняю классы или ресурсы внутри модуля верхнего уровня (войны) или классов из одной из зависимостей.
Единственное, что не работает, это перезагрузка файлов ресурсов из одной из зависимостей. Например: допустим, у меня есть папка ресурсов в одном из моих модулей, упакованная как jar. Внутри есть файл под названием mytext.txt
с содержимым «Это тест». Если я обращаюсь к ресурсу внутри моего кода во время выполнения, я получаю текст "This is a test"
. Теперь, если я изменю содержимое файла на "This is a runtime test"
, вывод по-прежнему будет "This is a test"
. Изменения вступят в силу только при повторном развертывании. Проблема в том, что вы теряете сеанс и вам нужно снова пройти через приложение.
Структура проекта выглядит так:
.war
|_ ui.jar
|_ db.jar
|_ service.jar
Я нашел следующий ответ о том, что это проблема с перезагрузкой библиотек в wildfly: Ссылка