#scala #playframework #sbt #playframework-2.6
#scala #playframework #sbt #playframework-2.6
Вопрос:
Мы работаем с play framework 2.6.21 (но мы можем воспроизвести его с play 2.6.19 ).
Иногда (проблема возникает совершенно случайно) наше приложение play начинает перекомпилировать и перезагружать при каждом изменении, внесенном в public
папку.
После (не очень) быстрого расследования, когда play начинает вести себя подобным образом, я могу отключить play, перезапустить, sbt
а затем ввести compile
несколько раз, ничего не делая между ними, и каждый раз play перекомпилирует некоторые файлы.
last compile
Команды A показывают, что измененные файлы являются сгенерированными файлами маршрутов (Routes.scala, RoutesPrefix.scala и т.д.). A ls -l
показывает, что эти файлы были эффективно обновлены. Но файл conf/routes
не показывает изменений.
Здесь я застрял, я не знаю, как исследовать дальше.
Как я могу узнать, почему эти файлы маршрутов обновляются? И что их обновляет? Какую sbt
команду я могу ввести, чтобы узнать, почему была выполнена задача?
Ответ №1:
Я отвечу на свой собственный вопрос, если у кого-нибудь возникнет такая же проблема в будущем:
на самом деле у нас было 2 файла маршрутов: conf/routes
и conf/apps.routes
, conf/routes
содержащих строку
-> /apps apps.Routes
В этом файле у нас 2 маршрута, ссылающихся на один и тот же контроллер, но разные действия. Вот что вызвало проблему
Разделение этого контроллера на 2 исправило цикл перекомпиляции…