【问题标题】:SBT task gets executed multiple timesSBT 任务多次执行
【发布时间】:2017-08-19 22:50:24
【问题描述】:

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

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

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

【问题讨论】:

    标签: scala playframework sbt sangria


    【解决方案1】:

    我认为您需要使用sourceGenerators 或resourceGenerators,因为它们每次编译只运行一次,请参阅doc here。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-24
      • 1970-01-01
      • 1970-01-01
      • 2015-07-08
      • 2012-10-07
      • 2014-10-25
      • 2014-03-01
      • 1970-01-01
      相关资源
      最近更新 更多