SBT任务多次执行

时间:2017-03-27 09:38:31

标签: scala playframework sbt sangria

在Play项目中,SBT任务必须在每次编译后生成JSON文件。

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

但是一旦编译完成,这个任务就会多次执行。即使在编译后刷新页面,它也会被执行多次。我认为在编译每个类时会执行任务。有没有办法让任务在编译后只运行一次,而不是在刷新页面时运行?

1 个答案:

答案 0 :(得分:0)

我认为您需要使用sourceGeneratorsresourceGenerators,因为每次编译只运行一次,请参阅doc here

除此之外,您很可能还需要在生成schema.json文件的源上使用watchSources。这样,当基础源文件发生变化时,(重新)源生成器将再次被触发。

相关问题