Как генерировать динамически генерируемые активы в Play 2.3 (чтобы компиляция не запускалась)?

Как вы можете изменить конфигурацию сборки проекта play 2.3, чтобы включить активы, которые динамически генерируются какой-либо задачей?

Цель состоит в том, чтобы добиться чего-то похожего на активы, содержащиеся в настоящее время в папке app/assets: взять откуда-нибудь файл, каким-то образом преобразовать его (обычно компилируя) и сделать его доступным в качестве актива в каталоге /public. Я уже пытался добавить зависимость к задаче compile:

 compile in Compile <<= (compile in Compile) dependsOn Def.task {
    val file = //generate file

    IO.copyFile(file, baseDirectory.value / "public" / "foo.bar")
}

Хотя это решение работает, оно копирует файл во время компиляции, таким образом уведомляя об изменениях и, таким образом, планируя новую компиляцию, то есть приложение перезагружается при каждом http-запросе!

Существуют ли какие-либо другие способы добавления новых динамических ресурсов без порочного цикла перезагрузки?


person Jakob Odersky    schedule 11.06.2014    source источник


Ответы (1)


Вы должны использовать resourceGenerators этот параметр для управления списком задач, генерирующих ресурсы.

person Jacek Laskowski    schedule 12.06.2014
comment
Спасибо за ответ, я на самом деле тоже пробовал это и попал в тот же порочный круг. Как оказалось, на самом деле это был не порочный круг, а проблема с JNotify, вызывающая многократные перезагрузки при запуске. - person Jakob Odersky; 13.06.2014