我有一个相当复杂的项目——它使用 Play、Scala.js 和其他各种玩具。它暂时在 Build.scala 中构建,因为我还没有设法让所有部分都在 build.sbt 中工作。(我已经在 sbt 邮件列表中单独讨论过这个问题。)
现在,我想利用 Play 的新指纹识别功能,这意味着开始使用 sbt-web。不过,我显然做错了什么。我在我的 plugins.sbt 中添加了常用的管道插件:
addSbtPlugin("com.typesafe.sbt" % "sbt-rjs" % "1.0.1")
addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.0.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-gzip" % "1.0.0")
但是当我尝试将 SbtWeb 添加到项目的 JVM 端时:
lazy val scalajvm = Project(
id = "scalajvm",
base = file("scalajvm")
) enablePlugins (play.PlayScala, SbtWeb) settings (scalajvmSettings: _*) aggregate (scalajs)
sbt 抱怨它不知道 SbtWeb,并且不会加载。奇怪的。我添加了一个显式导入:
import com.typesafe.sbt.web.SbtWeb
这允许加载。然后,我试图让管道本身工作:
pipelineStages := Seq(digest, gzip),
现在它抱怨它不知道 pipelineStages。同样,我添加了一个显式导入,尽管我怀疑我做错了什么:
import com.typesafe.sbt.web.Import.pipelineStages
这让我进入下一步:它抱怨它不知道摘要——这完全是神秘的,因为我已经在我的 plugins.sbt 中指定了它。
有什么建议么?我的猜测是我在插件级别缺少一些东西,但我不知道它是什么。我能找到的所有文档都只列出了上面的内容,但我认为这都是假设 build.sbt。(是的,我在 build.properties 中指定了 sbt 0.13.5,在我的 plugins.sbt 中指定了 Play 2.3.5。)