SBT 不能将 Seq[Object] 附加到 Seq[ModuleID] [英] SBT cannot append Seq[Object] to Seq[ModuleID]
问题描述
SBT 因不正确的附加错误而不断失败.我使用了我见过无数次的构建文件的确切格式.
SBT keeps failing with improper append errors. Im using the exact format of build files I have seen numerous times.
build.sbt:
lazy val backend = (project in file("backend")).settings(
name := "backend",
libraryDependencies ++= (Dependencies.backend)
).dependsOn(api).aggregate(api)
dependencies.scala:
dependencies.scala:
import sbt._
object Dependencies {
lazy val backend = common ++ metrics
val common = Seq(
"com.typesafe.akka" %% "akka-actor" % Version.akka,
"com.typesafe.akka" %% "akka-cluster" % Version.akka,
"org.scalanlp.breeze" %% "breeze" % Version.breeze,
"com.typesafe.akka" %% "akka-contrib" % Version.akka,
"org.scalanlp.breeze-natives" % Version.breeze,
"com.google.guava" % "guava" % "17.0"
)
val metrics = Seq("org.fusesource" % "sigar" % "1.6.4")
我不太明白 SBT 抱怨的原因
Im Im not quite why SBT is complaining
error: No implicit for Append.Values[Seq[sbt.ModuleID], Seq[Object]] found,
so Seq[Object] cannot be appended to Seq[sbt.ModuleID]
libraryDependencies ++= (Dependencies.backend)
^
推荐答案
Short Version (TL;DR)
common
有错误:你想替换这一行
Short Version (TL;DR)
There's an error in common
: you want to replace this line
"org.scalanlp.breeze-natives" % Version.breeze,
用这条线
"org.scalanlp" %% "breeze-natives" % Version.beeze,
<小时>
长版
"org.scalanlp.breeze-natives" % Version.breeze
是GroupArtifactID
而不是ModuleID
.
这会导致 common
变成 Seq[Object]
而不是 Seq[ModuleID]
.
This causes common
to become a Seq[Object]
instead of a Seq[ModuleID]
.
因此 Dependencies.backend
也是一个 Seq[Object]
最终无法(通过 ++=
)附加到 libraryDependencies
(定义为 SettingKey[Seq[ModuleID]]
) 因为没有可用的 Append.Values[Seq[sbt.ModuleID], Seq[Object]]
.
Which ultimately can't be appended (via ++=
) to libraryDependencies
(defined as a SettingKey[Seq[ModuleID]]
) because there is no available Append.Values[Seq[sbt.ModuleID], Seq[Object]]
.
这篇关于SBT 不能将 Seq[Object] 附加到 Seq[ModuleID]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!