加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何更改Play,SBT及其插件使用的Scala版本?

发布时间:2020-12-16 09:17:39 所属栏目:安全 来源:网络整理
导读:是否有必要更改SBT及其插件使用的 Scala版本? 我正在使用Play Framework 2.1.1-RC2.我想创建将使用Scala 2.10.1的新项目.为了达到,我做了以下 添加依赖关系“org.scala-lang”%“scala-compiler”%“2.10.1”在Build.scala 在Build.scala中初始化变量scal
是否有必要更改SBT及其插件使用的 Scala版本?

我正在使用Play Framework 2.1.1-RC2.我想创建将使用Scala 2.10.1的新项目.为了达到,我做了以下

>添加依赖关系“org.scala-lang”%“scala-compiler”%“2.10.1”在Build.scala
>在Build.scala中初始化变量scalaVersion为2.10.1

然后我运行命令,并得到以下输出

[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版本的二进制文件.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读