在Play项目中,SBT任务必须在每次编译后生成JSON文件。
lazy val generateSchema = taskKey[Unit]("Generate schema.json file")
fullRunTask(generateSchema, Compile, "models.GenerateSchema")
generateSchema <<= generateSchema triggeredBy (compile in Compile)
但是一旦编译完成,这个任务就会多次执行。即使在编译后刷新页面,它也会被执行多次。我认为在编译每个类时会执行任务。有没有办法让任务在编译后只运行一次,而不是在刷新页面时运行?
答案 0 :(得分:0)
我认为您需要使用sourceGenerators
或resourceGenerators
,因为每次编译只运行一次,请参阅doc here。
除此之外,您很可能还需要在生成schema.json文件的源上使用watchSources
。这样,当基础源文件发生变化时,(重新)源生成器将再次被触发。