scala - 不连贯的scala库版本

标签 scala

我有一个警告,导致执行错误:

[info] Set current project to calculator (in build file:/home/guillaume/projects/scala/2/)
[info] Updating {file:/home/guillaume/projects/scala/2/}root...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[warn] Scala version was updated by one of library dependencies:
[warn]  * org.scala-lang:scala-library:2.10.5 -> 2.11.1
[warn] To force scalaVersion, add the following:
[warn]  ivyScala := ivyScala.value map { _.copy(overrideScalaVersion = true) }
[warn] Run 'evicted' to see detailed eviction warnings
[info] Compiling 3 Scala sources to /home/guillaume/projects/scala/2/target/scala-2.10/classes...
[success] Total time: 9 s, completed Apr 5, 2016 12:16:04 AM

这很奇怪,因为我的 Scala 版本 > 2.11 :
$ scala -version
Scala code runner version 2.11.8 -- Copyright 2002-2016, LAMP/EPFL
$sbt sbtVesion
[info] 0.13.9

我的 build.sbt :
lazy val root = (project in file(".")).
  settings(
    name := "calculator",
    libraryDependencies += "jline" % "jline" % "2.12",
    libraryDependencies += "com.typesafe.akka" % "akka-actor_2.11" % "2.3.4"
  )

我只是不明白为什么我的 Scala 库已经过时了。

最佳答案

您的 SBT 构建使用的 Scala 版本由您的 SBT 配置决定,而不是您的系统 Scala 版本。 SBT 0.13 的默认 Scala 版本是 2.10,但您可以使用以下设置更改它 build.sbt :

scalaVersion := "2.11.8"

您的 SBT 项目的 Scala 版本不依赖于您的系统 Scala 版本(如果有的话)这一事实实际上非常方便——这意味着您可以拥有为多个 Scala 版本交叉构建的项目,您可以在其上构建项目没有安装 Scala 的机器等。

另一个注意事项——使用 %% 避免这种不匹配是一个好主意。 Scala 依赖项的语法——例如这个:
libraryDependencies += "com.typesafe.akka" %% "akka-actor" % "2.3.4"

取而代之的是:
libraryDependencies += "com.typesafe.akka" % "akka-actor_2.11" % "2.3.4"
%%在工件名称之前显示“使用此名称但后缀 _<Scala epoch version>.<Scala major version>,无论当前配置的 Scala 版本是什么”。

关于scala - 不连贯的scala库版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36413935/

相关文章:

java - Eclipse Maven 更新导致 JVM 设置损坏

algorithm - 从 Map [Scala] 中获取某些键的值总和

scala - 如何验证数据框的日期列

scala - Scala 中数组和列表初始化的区别

scala - 如何从 Visual Studio Code UI 执行 dotty 代码

css - 当 Lift 使用 CSS 类用于其自身目的时,如何使用 CSS 来设计由 Lift 提供的网页样式?

image - 使用 Anorm (Scala/PlayFramework 2) 在 Postgres 中保存/加载图像

unit-testing - 使用 Mockito 模拟 Akka Actor 日志对象

scala - 如何将DataFrame写入MySQL表

scala - 这是关于参数化类型的 Scala 语言规范中的错字吗?