11
votes

How to use scala 2.10Mx with play 2.x.x?

I tried adding scalaVersion := "2.10.0-M3" to project/Build.scala but had no effect.

Here's my project/Build.scala:

import sbt._
import Keys._
import PlayProject._

object ApplicationBuild extends Build {

    val appName         = "dashboard-server"
    val appVersion      = "1.0-SNAPSHOT"

    resolvers += "Local Ivy Repository" at "file://"+Path.userHome.absolutePath+"/.ivy2/cache"

    scalaVersion := "2.10.0-M3"

    val appDependencies = Seq(
      "mysql" % "mysql-connector-java" % "5.1.10"
    )

    val main = PlayProject(appName, appVersion, appDependencies, mainLang = SCALA).settings(
      // Add your own project settings here

    )

}

I'm using sbt 0.11.3

3
In principle, that ought to work if placed in the correct place. Please show the full Build.scala. By the way, you need SBT 0.11.3 to use Scala 2.10. - Daniel C. Sobral
Until Play has a release based on Scala 2.10.x, you cannot use Play + Scala 2.10.x together. Scala 2.9.x and 2.10.x are not binary compatible. - jsuereth
Two gurus of Scala with different opinions...who is right? - Edmondo1984

3 Answers

2
votes

There is a ticket in the play bugtracker: https://play.lighthouseapp.com/projects/82401/tickets/650-support-for-scala-210-m6

The answer is you currently cannot use play 2 with scala 2.10 because of akka.

2
votes

play 2.0.x doesn't work with Scala 2.10. the Play 2.1 branch does, but as of the time i write this (25 Oct 2012), you need to build the development branch from source, and the development branches are still under active development. TLDR: not yet suitable for production apps, give it a couple months

0
votes

Well, actually you can do it. I described details in my answer here.

But in few words you need to specify few things in Build.scala.

Switching version by setting scalaVersion to 2.10.1 didn't help me because SBT still goes to repository and gets pieces of 2.10.0. So I told SBT to use local copy of Scala by setting following variables

scalaVersion := "2.10.1-local",
autoScalaLibrary := false,
scalaHome := Some(file("/Program Files (x86)/scala/"))