如何更改Play,SBT及其插件使用的Scala版本?
是否有必要更改SBT及其插件使用的
Scala版本?
我正在使用Play Framework 2.1.1-RC2.我想创建将使用Scala 2.10.1的新项目.为了达到,我做了以下 >添加依赖关系“org.scala-lang”%“scala-compiler”%“2.10.1”在Build.scala 然后我运行命令,并得到以下输出 [test2] $about Getting Scala 2.10.1 ... downloading http://repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.10.1/scala-compiler-2.10.1.jar ... [SUCCESSFUL ] org.scala-lang#scala-compiler;2.10.1!scala-compiler.jar (7401ms) downloading http://repo1.maven.org/maven2/org/scala-lang/scala-library/2.10.1/scala-library-2.10.1.jar ... [SUCCESSFUL ] org.scala-lang#scala-library;2.10.1!scala-library.jar (4309ms) downloading http://repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.10.1/scala-reflect-2.10.1.jar ... [SUCCESSFUL ] org.scala-lang#scala-reflect;2.10.1!scala-reflect.jar (2144ms) downloading http://repo1.maven.org/maven2/org/scala-lang/jline/2.10.1/jline-2.10.1.jar ... [SUCCESSFUL ] org.scala-lang#jline;2.10.1!jline.jar (201ms) :: retrieving :: org.scala-sbt#boot-scala confs: [default] 5 artifacts copied,0 already retrieved (24386kB/58ms) [info] This is sbt 0.12.2 [info] The current project is {file:/C:/work/test_projects/test2/}test2 [info] The current project is built against Scala 2.10.1 [info] Available Plugins: play.Project,sbt.PlayProject,com.typesafe.sbteclipse.plugin.EclipsePlugin,com.typesafe.sbtidea.SbtIdeaPlugin [info] sbt,sbt plugins,and build definitions are using Scala 2.9.2 最后一行是我关心的.它说Scala 2.9.2被使用.我该怎么改呢?它会影响什么版本将用于编译我的代码? 更新:看起来像这种改变版本的编译器不能正常工作.运行我的应用程序后,我在播放控制台中有以下警告: [warn] Potentially incompatible versions of dependencies of {file:/C:/work/test_projects/test2/}test2: [warn] org.scala-lang: 2.10.1,2.10.0 [info] Compiling 5 Scala sources and 1 Java source to C:worktest_projectstest2targetscala-2.10classes... [info] 'compiler-interface' not yet compiled for Scala 2.10.1. Compiling... [info] Compilation completed in 8.608 s [warn] Potentially incompatible versions of dependencies of {file:/C:/work/test_projects/test2/}test2: [warn] org.scala-lang: 2.10.1,2.10.0 [info] play - Application started (Dev) [warn] Potentially incompatible versions of dependencies of {file:/C:/work/test_projects/test2/}test2: [warn] org.scala-lang: 2.10.1,2.10.0 解决方法
SBT是Scala应用程序,与所有Scala应用程序一样,它需要遵守Scala的二进制兼容性规则.具体来说,版本2.8,2.9和2.10是不兼容的.
这意味着,由于Play使用的SBT版本是使用Scala 2.9.2编译的,所以所有插件和所有项目定义都必须使用另一个2.9.x版本进行编译.这是因为您的Build.scala不是由SBT简单执行的,它将成为SBT执行的一部分. 然而,这与您的应用程序应该与哪个版本的Scala进行编译有任何关系. SBT可以使用任何Scala版本,甚至可以同时生成多个Scala版本 – 这就是Scala库如何管理多个Scala版本的二进制文件. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |