SBT 无法将 Seq[Object] 附加到 Seq[ModuleID]

2023-12-24

SBT 不断因不正确的附加错误而失败。我使用的是我见过很多次的构建文件的确切格式。

构建.sbt:

lazy val backend = (project in file("backend")).settings(
name := "backend",
libraryDependencies ++= (Dependencies.backend)
).dependsOn(api).aggregate(api)

依赖项.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)
                    ^

简短版本(TL;DR)

有一个错误common: 你想替换这一行

"org.scalanlp.breeze-natives" % Version.breeze,

用这条线

"org.scalanlp" %% "breeze-natives" % Version.beeze,

长版

  1. "org.scalanlp.breeze-natives" % Version.breeze is a GroupArtifactID not a ModuleID.

  2. 这导致common成为一个Seq[Object]代替Seq[ModuleID].

  3. 因此也Dependencies.backend成为一个Seq[Object]

  4. 最终无法附加(通过++=) to libraryDependencies(定义为SettingKey[Seq[ModuleID]])因为没有可用的Append.Values[Seq[sbt.ModuleID], Seq[Object]].

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SBT 无法将 Seq[Object] 附加到 Seq[ModuleID] 的相关文章

随机推荐