Сгенерированные файлы маршрутов play framework повторно генерируются автоматически, даже если в conf / routes нет изменений

#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 исправило цикл перекомпиляции…