Задача SBT выполняется несколько раз

В проекте Play задача SBT должна создавать файл JSON после каждой компиляции.

lazy val generateSchema = taskKey[Unit]("Generate schema.json file")
fullRunTask(generateSchema, Compile, "models.GenerateSchema")
generateSchema <<= generateSchema triggeredBy (compile in Compile)

Но как только компиляция завершена, эта задача выполняется несколько раз. И он также выполняется много раз, даже когда страница обновляется после компиляции. Я думаю, что задача выполняется при компиляции каждого класса. Есть ли способ запустить задачу только один раз после компиляции и не запускать ее при обновлении страниц?


person Kuppuswamy    schedule 27.03.2017    source источник


Ответы (1)


Я думаю, что вам нужно использовать либо sourceGenerators, либо resourceGenerators, так как они запускаются только один раз за компиляцию, см. здесь.

Кроме того, вам, скорее всего, также потребуется использовать watchSources в источниках, из которых вы создаете файл schema.json. Таким образом, генераторы (пере)исходников будут запускаться снова при изменении базовых исходных файлов.

person Frederic A.    schedule 27.03.2017