SBT 不能将 Seq[Object] 附加到 Seq[ModuleID] [英] SBT cannot append Seq[Object] to Seq[ModuleID]

查看:63
本文介绍了SBT 不能将 Seq[Object] 附加到 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,

<小时>

长版

  1. "org.scalanlp.breeze-natives" % Version.breezeGroupArtifactID 而不是 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆