我正在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
我无法启动我的项目。
我发现了这个问题,但是通过添加'%'或'%%'来调整并没有解决这个问题,我不确定如何使用解决方案,因为我只是想添加一个play.api.libs
依赖关系,而不是外部的。
我有点困在这里,我不明白为什么streams是sbt.TaskKey[sbt.Keys.TaskStreams]
,但ws或任何其他添加在序列中的键是sbt.ModuleID
在这种情况下,cache
, ws
等行不是指play.api.libs
中的包,而是构建Play sbt-plugin在play.sbt.PlayImport
对象中预先定义为组件的工件,例如这里。
在这种情况下,ws
完全等同于:
"com.typesafe.play" %% "play-ws" % "2.5.4"
您看到streams
错误的原因是因为Play没有定义这样的组件,因此SBT假设您正在引用TaskKey。
如果你在Play 2.5上有一个PlayScala项目,play.api.libs.streams.Streams
对象应该是可用的,没有任何额外的添加到你的构建。