非相干scala库版本
我有一个导致执行错误的警告:非相干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]
[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
My 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版本添加.
。谢谢,添加scalaVersion
解决了我的问题。但是将%%
添加到我的库依赖项中
会添加另一个警告:jline#jline_2.11;2.12:未找到
和com.typesafe.akka#akka-actor_2.11_2.11;2.3.4:未找到
。但是如果没有%%
,程序就可以完美运行!有两个问题:JLine不是Scala库,因此您不需要双%%
或\u 2.11
-您的原始版本是正确的。对于Akka,您只需要其中一个,因为它们表达相同的东西。我建议使用%%
版本。和corss交叉版本。full
对于需要完整版本的依赖项非常方便,如ammonite repl
@TravisBrown谢谢!