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)
^
答案 0 :(得分:14)
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]]
。
答案 1 :(得分:1)
common
或metrics
中的一个不是Seq[sbt.ModuleID]
。你可以找出哪种类型的归属:
val common: Seq[sbt.ModuleID] = ...
val metrics: Seq[sbt.ModuleID] = ...
我的资金在common
,此行中没有足够的%
:
"org.scalanlp.breeze-natives" % Version.breeze