Play Framework SBT导入play.api.libs.streams

时间:2016-07-04 12:21:09

标签: scala playframework sbt

我正在Play Framework(2.4.0)/ scala中构建一个应用程序并尝试添加play.api.libs.streams,因此我可以在我的应用程序中使用对象Streams

所以这是我的工作 build.sbt

libraryDependencies ++= Seq(
  specs2 % Test,
  cache,
  ws,
  "com.softwaremill.macwire" %% "macros" % "2.2.2",
  "com.softwaremill.macwire" %% "runtime" % "1.0.7",
  "org.reactivemongo" %% "play2-reactivemongo" % "0.11.10",
  "com.eclipsesource" %% "play-json-schema-validator" % "0.6.5",

  "org.scalatest" %% "scalatest" % "2.2.5" % Test,
  "org.scalacheck" %% "scalacheck" % "1.12.2" % Test,
  "org.scalatestplus" %% "play" % "1.4.0-M4" % Test,

  "com.typesafe.akka" %% "akka-stream" % "2.4.4"
)

现在,当我尝试添加以下行时:

streams,

或刚刚添加

libraryDependencies += streams

我收到错误:

error: No implicit for Append.Value[Seq[sbt.ModuleID], sbt.TaskKey[sbt.Keys.TaskStreams]] found,
  so sbt.TaskKey[sbt.Keys.TaskStreams] cannot be appended to Seq[sbt.ModuleID]
libraryDependencies += streams

我无法启动我的项目。

我找到this question,但通过添加'%'或'%%'进行调整并没有解决问题,我不确定如何使用这些解决方案,因为我只是想添加一个{{1依赖而不是外部依赖。

我有点被困在这里,我不明白为什么溪流play.api.libs但是 ws 或者其中添加的任何其他密钥序列sbt.TaskKey[sbt.Keys.TaskStreams]

1 个答案:

答案 0 :(得分:2)

在这种情况下,cachews等行不会引用play.api.libs中的 packages ,而是构建Play sbt-plugin之前的人工制品-defines作为play.sbt.PlayImport对象中的组件,例如here

在此上下文中,ws完全等同于:

"com.typesafe.play" %% "play-ws" % "2.5.4"

您看到streams错误的原因是Play没有定义此类组件,因此SBT假设您正在引用TaskKey。

如果您在Play 2.5.x及更高版本上安装了PlayScala项目,则play.api.libs.streams.Streams对象应该没有任何额外添加到您的构建中。