ENSIMEとScalaのバージョン
Scalaの開発環境は、今の所sbt + ENSIME。本当はEclipse + Scalaプラグイン + Mavenを使ってみたいんだけど、以下の2つの理由により未使用。
- Scalaプラグインが不安定らしい
- Mavenが良く分かってない。
■環境
今はGetting StartedというLiftのチュートリアルみたいなので勉強中というのをブログに書いたばかりだが、動作環境としては以下の通り。
- Scala 2.7.7
- Lift 2.0
開発環境は以下の通り。
- sbt 0.7.4
- ensime_2.8.0-0.3.0
■ENSIME起動時のエラー&解決方法
ENSIMEを起動したら以下のようなエラーが出てた。
INFO: [loaded package loader runtime in 8ms] scala.tools.nsc.MissingRequirementError: class scala.runtime.VolatileBooleanRef not found. at scala.tools.nsc.symtab.Definitions$definitions$.getModuleOrClass(Definitions.scala:513) at scala.tools.nsc.symtab.Definitions$definitions$.getClass(Definitions.scala:471) at scala.tools.nsc.symtab.Definitions$definitions$.newValueClass(Definitions.scala:620) at scala.tools.nsc.symtab.Definitions$definitions$.BooleanClass(Definitions.scala:92) at scala.tools.nsc.symtab.Definitions$definitions$.initValueClasses(Definitions.scala:643) at scala.tools.nsc.symtab.Definitions$definitions$.init(Definitions.scala:787) at scala.tools.nsc.Global$Run.(Global.scala:597) at scala.tools.nsc.interactive.Global$TyperRun.(Global.scala:473) at scala.tools.nsc.interactive.Global.newTyperRun(Global.scala:535) at scala.tools.nsc.interactive.Global.reloadSources(Global.scala:289) at scala.tools.nsc.interactive.Global$$anonfun$reload$1.apply(Global.scala:300) at scala.tools.nsc.interactive.Global$$anonfun$reload$1.apply(Global.scala:300) at scala.tools.nsc.interactive.Global.respond(Global.scala:276) at scala.tools.nsc.interactive.Global.reload(Global.scala:300) at scala.tools.nsc.interactive.CompilerControl$$anon$1.apply$mcV$sp(CompilerControl.scala:81) at scala.tools.nsc.interactive.Global.pollForWork(Global.scala:132) at scala.tools.nsc.interactive.Global$$anon$2.run(Global.scala:192) INFO: Fatal Error: scala.tools.nsc.MissingRequirementError: class scala.runtime.VolatileBooleanRef not found.
1時間位調べたけど、結論としてENSIMEのバージョンとScalaのバージョンは合せなきゃいけないらしい。ensime_2.8.0-0.3.0を使うなら、Scalaは2.8.0でないといけないみたい。
ということでプロジェクトを2.8.0にしたらENSIMEは無事起動。まぁコンパイルエラーなどが発生したけど、それはまたの機会に書く。
[Scala]ENSIMEとsbtでscalaのバージョン統一しましょう
ENSIMEを起動するときにコンパイルが走るけど、そのときコケちゃうので sbtとENSIMEではバージョンあわせましょう。 同じのひっかかってる人いた…
[Scala]ENSIMEとsbtでscalaのバージョン統一しましょう
ENSIMEを起動するときにコンパイルが走るけど、そのときコケちゃうので sbtとENSIMEではバージョンあわせましょう。 同じのひっかかってる人いた…