【发布时间】:2016-06-04 20:55:23
【问题描述】:
使用 sbt 13.8,IntelliJ 的最新 scala 插件,以及带有 Scala 2.11.7 的新 SBT 项目,我尝试添加一个库 - akka 2.4.2。在this之后,我简单地添加了
libraryDependencies += "com.typesafe.akka" %% "akka-actor" % "2.4.2"
但是我得到一个未解决的依赖错误:
错误:导入 SBT 项目时出错:
[信息] 解决 org.scala-sbt#tasks;0.13.8 ...
[信息] 解决 org.scala-sbt#tracking;0.13.8 ...
[info] 解决 org.scala-sbt#cache;0.13.8 ...
[info] 解决 org.scala-sbt#testing;0.13.8 ...
[info] 解决 org.scala-sbt#test-agent;0.13.8 ...
[info] 解决 org.scala-sbt#test-interface;1.0 ...
[info] 解决 org.scala-sbt#main-settings;0.13.8 ...
[info] 解决 org.scala-sbt#apply-macro;0.13.8 ...
[信息] 解决 org.scala-sbt#command;0.13.8 ...
[信息] 解决 org.scala-sbt#logic;0.13.8 ...
[info] 解决 org.scala-sbt#precompiled-2_8_2;0.13.8 ...
[信息] 解决 org.scala-sbt#precompiled-2_9_2;0.13.8 ...
[info] 解决 org.scala-sbt#precompiled-2_9_3;0.13.8 ...
[trace] 堆栈跟踪被抑制:运行 'last common/*:update' 以获得完整输出。
[trace] 堆栈跟踪被抑制:运行 'last common/*:ssExtractDependencies' 以获得完整输出。
[trace] 堆栈跟踪被抑制:run 'last 完整输出的 app1/*:ssExtractDependencies'。
[error] (common/*:update) sbt.ResolveException: unresolved dependency: com.typesafe.akka#akka actor_2.10;2.4.2: not found
[error] (common/*:ssExtractDependencies) sbt.ResolveException: unresolved dependency: com.typesafe.akka#akka-actor_2.10;2.4.2: not found
[错误] (app1/*:ssExtractDependencies) sbt.ResolveException: 未解决的依赖关系:com.typesafe.akka#akka-actor_2.10;2.4.2: not found
如果我将项目设置为 2.11.7,为什么 sbt 会尝试查找 akka-actor_2.10?
更新:
明确说明版本,
libraryDependencies += "com.typesafe.akka" % "akka-actor_2.11" % "2.4.2"
有效,但随后您收到 SBT 项目导入警告:
[警告] Scala 版本已由库依赖项之一更新:
[warn] com.myorg#common$sources_2.10;1.0 中依赖项 org.scala-lang#scala-library;2.11.7 [warn] 的二进制版本(2.11)与项目中的 Scala 二进制版本(2.10 )。
[警告] 具有相同组织/名称但版本不同的多个依赖项。为避免冲突,请选择一个版本: [警告] * org.scala-lang:scala-library:(2.11.7, 2.10.4)...
编辑:
build.sbt
import Dependencies._
name := "coolApps"
version := "1.0"
scalaVersion := "2.11.7"
lazy val common = (project in file("common")).
settings(Commons.settings: _*).
settings(
libraryDependencies ++= commonDependencies
// dependencyOverrides += "org.scala-lang" % "scala-library" % scalaVersion.value
)
lazy val app1 = (project in file("app1")).
settings(Commons.settings: _*).
settings(
libraryDependencies ++= app1Dependencies
).
dependsOn(common)
Dependencies.scala
object Dependencies {
val akka = "com.typesafe.akka" %% "akka-actor" % "2.4.2"
val commonDependencies: Seq[ModuleID] = Seq(
akka
)
val app1Dependencies: Seq[ModuleID] = Seq()
}
Commons.scala
import sbt._
import Keys._
object Commons {
val coolAppVersion = "1.0"
val settings: Seq[Def.Setting[_]] = Seq(
organization := "com.company",
version := coolAppVersion,
scalacOptions := Seq("-unchecked", "-deprecation", "-encoding", "utf8"),
resolvers ++= Seq(
"Typesafe Releases" at "http://repo.typesafe.com/typesafe/releases/"
)
)
}
【问题讨论】:
-
你的 build.sbt 是什么?
-
将进行编辑并添加 build.sbt