Hot Deploy
Jmix поддерживает технологию Hot Deploy, которая позволяет отображать сделанные в проекте изменения в работающем приложении без необходимости перезапускать сервер.
Hot deploy работает для следующих классов и ресурсов:
-
Дескрипторы и контроллеры экранов;
-
Классы, используемые контроллерами экранов через создание экземпляров или статические методы;
-
Локализованные сообщения;
-
Меню;
-
Фетч-планы;
-
Ресурсные роли;
-
Роли уровня строк.
Hot deploy не работает для классов сущностей и бинов Spring.
Принцип работы Hot deploy следующий:
-
Studio обнаруживает измененные файлы и
-
если это файл ресурсов, Studio копирует его в каталог
.jmix/conf
; -
если это файл Java или Kotlin, Studio компилирует его и копирует файл класса в каталог
build/classes
проекта.
-
-
Когда приложение открывает экран, фреймворк загружает новые классы и ресурсы из каталогов перечисленных выше.
Расположение каталога hot deploy ресурсов определяется свойством приложения jmix.core.conf-dir. Этот каталог очищается при запуске приложения действием Before launch, заданным в параметрах конфигурации Run/Debug.
Кроме того, Studio посылает приложению специальные сигналы, для того чтобы заставить его очистить кэши и перезагрузить измененные ресурсы. Это кэш локализованных сообщений и конфигурации представлений, зарегистрированных экранов и меню. Сигналы реализованы с помощью триггер-файлов, создаваемых в каталоге .jmix/temp/triggers
(расположение может быть изменено с помощью свойства jmix.core.temp-dir).
После сохранения изменений в Studio может потребоваться 2-3 секунды для того, чтобы приложение перезагрузило ресурсы и классы. Если после открытия экрана вы не увидели ожидаемых изменений, попробуйте закрыть и открыть его еще раз. |