Comment puis-je changer la version de Scala utilisée par Play, SBT et ses plugins?
Est-il nécessaire de changer la version de Scala qui est utilisé par SBT et de ses plugins ?
Je suis en utilisant Jouer au Cadre 2.1.1-RC2. Je veux créer un nouveau projet Scala 2.10.1. De réaliser que je n'ai suivantes
- ajoute la dépendance
"org.scala-lang" % "scala-compiler" % "2.10.1"
dansBuild.scala
- initialisé la variable
scalaVersion
à 2.10.1 dansBuild.scala
Ensuite, j'ai couru play about
de commande et suis sortie suivante
[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
Dernière ligne est ce qui me préoccupe. Il dit Scala 2.9.2 est utilisé. Comment puis-je changer cela ? Elle affectera quelle version sera utilisée pour compiler mon code ?
Mise à jour: Ressemble à cette façon de changer la version de compilateur n'a pas fonctionné correctement. Après je lance mon application j'ai avertissements suivants dans le jeu de la console:
[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:\work\test_projects\test2\target\scala-2.10\classes...
[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
source d'informationauteur expert
Vous devez vous connecter pour publier un commentaire.
SBT est un Scala application, et, comme tous les Scala applications, il faut respecter la Scala, à la compatibilité binaire des règles. Plus précisément, les versions 2.8, 2.9 et 2.10 ne sont pas compatibles les uns avec les autres.
Qui signifie que, parce que le TRIBUNAL de la version utilisée par le Jeu a été compilé avec le Scala 2.9.2, puis tous les plugins et tout projet définitions doit être compilé avec un autre 2.9.x version. C'est parce que votre
Build.scala
n'est pas quelque chose qui est simplement exécuté par SBT, il devient partie de SBT exécution.Cependant, qui a la relation que ce soit avec la version de la Scala de votre application doit être compilé avec. SBT pouvez utiliser n'importe quelle version Scala, et peut même produire de multiples Scala versions en même temps-et c'est comme Scala bibliothèques ont réussi à fournir des binaires pour les multiples Scala versions.
L'objectif ultime de mes expériences a été de changer de version de Scala compilateur utilisé pour construire mon projet.
Après de multiples tentatives, j'ai conclu que la réalisation gentiment, pas possible. Je pense que c'est quelque chose que les créateurs de Jeu-Cadre devrait se pencher.
Réglage
scalaVersion
à2.10.1-local
dans la construction.scala n'a pas beaucoup d'aide. SBT semblent aller à Maven/Ivy et le téléchargement de morceaux de 2.10.0 que je ne veux pas. Après la compilation de l'application je reçois des tas de mises en garde concernant incompatible dépendances.Je pense qu'il arrive parce que
{PLAY_HOME}\framework\project\Build.scala
a des tas de variable définie à 2.10.0."Élégant" la solution a été de dire SBT, je vais utiliser une copie locale de la Scala en définissant des variables suivantes dans la construction.scala
Mais encore si je créer IntelliJ IDEA configuration avec
play idea
de commande résultant projet a besoin de nettoyer une partie, en particulier:Scala 2.10.0
bibliothèque.Scala 2.9.2
bibliothèqueJ'espère que mes expériences d'autres personnes qui sont aussi l'apprentissage du Jeu et de la Scala.
Détails sont ici: http://www.scala-sbt.org/release/docs/Howto/scala.html