Можно ли позволить игре принимать изменения в зависимостях?

Вот краткая версия:

Должна ли игра принимать изменения в своих зависимостях? Когда я изменяю файл jar в каталоге /lib в режиме DEV, игра перекомпилируется, но изменения не применяются.

А здесь подробнее:

В настоящее время я настраиваю новое приложение для воспроизведения на основе нашего текущего приложения. У нас уже есть существующая структура проекта с модулями, которые я поместил в каталог /lib. Пока это работает нормально.

Теперь проблема связана с рабочим процессом в режиме DEV:

Когда я вношу изменения в один из этих модулей (заменяя его jar в каталоге /lib), игра перекомпилирует ([Info] Compiling ...), но изменения не применяются.

Я также пытался добавить банку в качестве управляемой зависимости (libraryDependencies += "group" % "module" % "1.0" from "file:///path/to/jar"), но она ведет себя так же.

Должен ли play/sbt отслеживать изменения в файле jar?

Примечания:

  • Просто перезапустить все приложение нецелесообразно, так как инициализация нашего материала (не игра) занимает некоторое время...
  • В настоящее время мы используем jrebel. Я еще не мог понять, как это настроить (и, честно говоря, возможности перезагрузки игры и jrebel для меня слишком много ;-))

person Christian    schedule 07.10.2015    source источник
comment
Я пришел к выводу, что мой подход ошибочен: перезагрузка зависимых банок, скорее всего, приведет к потере всего состояния в любых статических полях (подумайте о синглтонах, пулах соединений с БД, о чем угодно - вы не можете знать). Так что это не тот путь... Итак, я попытался пойти по пути JRebel и думаю, что нашел способ. Если кому-то интересно, я разместил репозиторий здесь: github.com/schoenberger/play -framework-java-jrebel   -  person Christian    schedule 08.10.2015


Ответы (1)


Компиляция должна подобрать новые файлы jar.

Если это не помогло, попробуйте запустить clean и test:compile в консоли sbt/play.

ИЗМЕНИТЬ:

Вы можете запустить sbt/play на другом терминале и запустить ~test:compile.

Это будет отслеживать и перекомпилировать ваше приложение, как только оно заметит новое изменение.

person airudah    schedule 07.10.2015
comment
Да, если я перезапускаю приложение, все работает (и изменения подхватываются). Моя проблема в том, что я хочу использовать возможность перезагрузки режима DEV. Я пока не видел, чтобы игра вносила изменения здесь... - person Christian; 07.10.2015