Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么sbt使用与我要求的不同版本的Scala?_Scala_Sbt - Fatal编程技术网

为什么sbt使用与我要求的不同版本的Scala?

为什么sbt使用与我要求的不同版本的Scala?,scala,sbt,Scala,Sbt,即使我将scalaVersion设置为2.11.7,我的项目还是希望使用Scala2.10.x进行构建 每次我重新编译时,项目中都会出现一个新目录src/main/scala2.10。我很确定这一定是SBT重新配置的结果,但究竟是什么原因造成的,我该如何修复它 我有一个非常简单的[project\u root]/build.sbt文件: name := "coolproduct" version := "0.0.1" lazy val scalaVersion = "2.11.7" lazy

即使我将scalaVersion设置为2.11.7,我的项目还是希望使用Scala2.10.x进行构建

每次我重新编译时,项目中都会出现一个新目录src/main/scala2.10。我很确定这一定是SBT重新配置的结果,但究竟是什么原因造成的,我该如何修复它

我有一个非常简单的[project\u root]/build.sbt文件:

name := "coolproduct"

version := "0.0.1"

lazy val scalaVersion = "2.11.7"
lazy val akkaVersion = "2.4.1"

libraryDependencies += "com.typesafe.akka" %% "akka-actor" % akkaVersion
当我运行这个脚本时,它似乎试图使用Scala 2.10—一个与我实际要求的完全不同的版本:

> sbt compile
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
[info] Loading project definition from C:\Users\salim\workspace\funproxy\project
[info] Set current project to funproxy (in build file:/C:/Users/salim/workspace/funproxy/)
[info] Updating {file:/C:/Users/salim/workspace/funproxy/}funproxy...
[info] Resolving com.typesafe.akka#akka-actor_2.10;2.4.1 ...
[warn]  module not found: com.typesafe.akka#akka-actor_2.10;2.4.1
[warn] ==== local: tried
[warn]   C:\Users\salim\.ivy2\local\com.typesafe.akka\akka-actor_2.10\2.4.1\ivys\ivy.xml
[warn] ==== jcenter: tried
[warn]   https://jcenter.bintray.com/com/typesafe/akka/akka-actor_2.10/2.4.1/akka-actor_2.10-2.4.1.pom
[warn] ==== public: tried
[warn]   https://repo1.maven.org/maven2/com/typesafe/akka/akka-actor_2.10/2.4.1/akka-actor_2.10-2.4.1.pom
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::          UNRESOLVED DEPENDENCIES         ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: com.typesafe.akka#akka-actor_2.10;2.4.1: not found
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]
[warn]  Note: Unresolved dependencies path:
[warn]          com.typesafe.akka:akka-actor_2.10:2.4.1 (C:\Users\salim\workspace\funproxy\build.sbt#L22-23)
[warn]            +- default:funproxy_2.10:0.0.1
我正在运行SBT的最新版本:

> sbt about
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
[info] Loading project definition from C:\Users\salim\workspace\funproxy\project
[info] Set current project to funproxy (in build file:/C:/Users/salim/workspace/funproxy/)
[info] This is sbt 0.13.8
[info] The current project is {file:/C:/Users/salim/workspace/funproxy/}funproxy 0.0.1
[info] The current project is built against Scala 2.10.4
[info] Available Plugins: sbt.plugins.IvyPlugin, sbt.plugins.JvmPlugin, sbt.plugins.CorePlugin, sbt.plugins.JUnitXmlReportPlugin
[info] sbt, sbt plugins, and build definitions are using Scala 2.10.4

简短的回答是:将
lazy val scalaVersion=“2.11.7”
更改为:

scalaVersion := "2.11.7"

scalaVersion
不仅仅是一个本地scala
var
(或
val
)可以覆盖;它在内部定义为键()。通过
:=
操作,您正在更改该键的内部状态。

简短回答:将
惰性val scalaVersion=“2.11.7”
更改为:

scalaVersion := "2.11.7"

scalaVersion
不仅仅是一个本地scala
var
(或
val
)可以覆盖;它在内部定义为键()。通过
:=
操作,您正在更改该键的内部状态。

因此我错误地定义了scalaversion-如果有什么导致它在没有有效scalaversion键的情况下选择2.10呢?
sbt
默认使用2.10,因为这是构建
sbt
本身的基础。没有其他原因。所以我错误地定义了scalaversion-如果有什么导致它在没有有效的scalaversion键的情况下选择2.10呢?
sbt
默认使用2.10,因为这是
sbt
本身构建的基础。没有其他原因。