为什么自定义resourceGenerator在编译时无法执行?

时间:2014-08-04 18:19:01

标签: sbt

我正在关注How to generate resources上的SBT文档,试图在插件中获取一个resourceGenerator任务,以便在编译时运行。

这就像你在文档中看到的一样简单:

object TestResourcePlugin extends AutoPlugin {
  import SbtWeb.autoImport._
  import WebKeys._

  override def requires = SbtWeb && plugins.JvmPlugin

  override def trigger  = AllRequirements

  override def projectSettings = Seq(
    resourceGenerators in Compile += Def.task {
      val file = (resourceManaged in Compile).value / "demo" / "test"
      val contents = "test file"
      IO.write(file, contents)
      Seq(file)
    }.taskValue
  )
}

我遇到sbt.plugin.JvmPlugin重置sourceGenerators in Compile密钥的情况,这意味着我向其添加任务不会做任何事情,除非我需要JvmPlugin首先加载(正如我上面所做的那样)。这里发生了类似的事情吗?

1 个答案:

答案 0 :(得分:0)

添加到Resource Generators键的任何内容只会在实际需要时执行,例如在运行任务上执行。

这是用户错误,只是对SBT文档的误解。