1

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

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

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

4

1 回答 1

1

我认为您需要使用sourceGeneratorsresourceGenerators每次编译只运行一次,请参阅此处的文档

除此之外,您很可能还需要使用watchSources生成 schema.json 文件的源。这样,当底层源文件发生更改时,将再次触发(重新)源生成器。

于 2017-03-27T11:26:23.033 回答