【问题标题】:I can't set the default version of Scala for Play我无法为 Play 设置默认版本的 Scala
【发布时间】:2014-01-11 06:22:49
【问题描述】:

我无法为 Play 应用程序设置 Scala 版本:

//project/Build.scala

import sbt._
import play.Project._
import sbt.Keys._

object AppBuild extends Build {
  val appName = .....
  val appVersion = .....
  val appDependencies = Seq(jdbc, anorm)

  val main = play.Project(appName, appVersion, appDependencies)
  lazy val buildSettings = Seq(
    organization := "fdsfds"
    ,version := "1.0-SNAPSHOT123"
    ,scalaVersion := "2.10.3"
  )
}

我好像没用。然后我注释掉了versionscalaVersion并创建了一个新文件:

//project/build.sbt

version in ThisBuild := "0.1"

scalaVersion in ThisBuild := "2.10.3"

然而当我说play 是回应:

play 2.2.1 built with Scala 2.10.2 (running Java 1.7.0_25), http://www.playframework.com
[my_app] $ show scala-version
[info] 2.10.2

我正在使用sbt 0.13 并玩2.2.1。我计算机上的默认(也是我猜的唯一)scala 版本是2.10.3

如何让这个应用默认使用 scala 2.10.3

【问题讨论】:

    标签: scala playframework sbt playframework-2.2


    【解决方案1】:

    默认情况下,Play 使用 sbt launcher 使用的 Scala,它在 $PLAY_HOME/framework/sbt/play.boot.properties 中配置。

    您应该能够修改 Play 正在使用的 Scala 版本(例如)将其添加到您的 build.sbt。请务必在 play.Project.playScalaSettings 行之后添加它,该行定义了 Play 的默认设置。因此,如果您在 build.sbt 的末尾添加 scalaVersion := "2.10.3",它应该可以工作。

    例如,当您创建一个新的播放应用程序时,您的build.sbt 应该或多或少像这样

    name := "Example"
    
    version := "1.0-SNAPSHOT"
    
    libraryDependencies ++= Seq(
      jdbc,
      anorm,
      cache
    )     
    
    play.Project.playScalaSettings
    
    scalaVersion := "2.10.3"
    

    现在,如果您运行应用程序(或控制台),您会看到它使用的是正确的版本

    Welcome to Scala version 2.10.3 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_45).
    Type in expressions to have them evaluated.
    Type :help for more information.
    

    show scala-version 也应该返回正确的版本

    [Example] $ show scala-version
    [info] 2.10.3
    

    【讨论】:

    • 1) Be sure to add it after a line play.Project.playScalaSettings, which defines default settings for Play. - 怎么样? 2) 为什么 Play 说正在使用 Scala 2.10.2?
    • at the end of your build.sbt it should work. - 已经结束了,play.Project.playScalaSettings - 你确定它是 build.sbt 的有效代码吗?
    • 当您创建新应用程序时(例如通过调用play new),您应该有一个文件build.sbt。默认情况下确实是play.Project.playScalaSettings,所以您应该在play.Project.playScalaSettings 之后添加新行(请记住,build.sbt 中的所有条目都必须用新行分隔)。为了回答您评论的第二部分,Play 正在使用 SBT 启动器,并且它使用在 $PLAY_HOME/framework/sbt/play.boot.properties 中定义的 Scala 版本
    • 没有这样的文件 - Then I commented out version and scalaVersion and created a new file。我如何在 Build.scala 中做同样的事情? Build.scala 中 build.sbt 中的 play.Project.playScalaSettings 的等价物是什么?
    • 只有一行 build.sbt,这是 scalaVersion := "2.10.3"。 Build.scala 中的其他设置。然而默认版本是 2.10.2。我什至在 $PLAY_HOME/framework/sbt/play.boot.properties 中将其更改为 2.10.3,但没有结果。
    猜你喜欢
    • 1970-01-01
    • 2017-06-18
    • 2014-06-23
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    • 2019-07-18
    • 2017-02-20
    • 2016-04-29
    相关资源
    最近更新 更多