SBT 无法将 Seq[Object] 附加到 Seq[ModuleID]
SBT cannot append Seq[Object] to Seq[ModuleID]
SBT 一直因不正确的附加错误而失败。我使用的是我见过无数次的构建文件的确切格式。
build.sbt:
lazy val backend = (project in file("backend")).settings(
name := "backend",
libraryDependencies ++= (Dependencies.backend)
).dependsOn(api).aggregate(api)
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 会抱怨
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)
^
common
或 metrics
之一不是 Seq[sbt.ModuleID]
。您可以通过类型说明找到哪个:
val common: Seq[sbt.ModuleID] = ...
val metrics: Seq[sbt.ModuleID] = ...
我的钱在 common
,这一行没有足够的 %
s:
"org.scalanlp.breeze-natives" % Version.breeze
精简版 (TL;DR)
common
中出现错误:您要替换此行
"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]
。
因此也 Dependencies.backend
成为 Seq[Object]
最终不能(通过++=
)附加到libraryDependencies
(定义为SettingKey[Seq[ModuleID]]
),因为没有可用的Append.Values[Seq[sbt.ModuleID], Seq[Object]]
.
SBT 一直因不正确的附加错误而失败。我使用的是我见过无数次的构建文件的确切格式。
build.sbt:
lazy val backend = (project in file("backend")).settings(
name := "backend",
libraryDependencies ++= (Dependencies.backend)
).dependsOn(api).aggregate(api)
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 会抱怨
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)
^
common
或 metrics
之一不是 Seq[sbt.ModuleID]
。您可以通过类型说明找到哪个:
val common: Seq[sbt.ModuleID] = ...
val metrics: Seq[sbt.ModuleID] = ...
我的钱在 common
,这一行没有足够的 %
s:
"org.scalanlp.breeze-natives" % Version.breeze
精简版 (TL;DR)
common
中出现错误:您要替换此行
"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]
。因此也
Dependencies.backend
成为Seq[Object]
最终不能(通过
++=
)附加到libraryDependencies
(定义为SettingKey[Seq[ModuleID]]
),因为没有可用的Append.Values[Seq[sbt.ModuleID], Seq[Object]]
.