10

私の新しい mac OSX 10.8.3 では、scala 2.10.0 をインストールし、2.1.0 と IntelliJ12 を再生し、次のように play プロジェクトを作成します。

#install brew
> ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
> brew --version
0.9.4

# update brew database
> cd $(brew --prefix)
> brew update
> cd $(brew --prefix) && git pull --rebase

# get scala 2.10.0
> brew versions scala
2.10.1   git checkout 79dc6f1 Library/Formula/scala.rb
2.10.0   git checkout 8ca07aa Library/Formula/scala.rb
2.9.2    git checkout 8896425 Library/Formula/scala.rb
...

> git checkout 8ca07aa Library/Formula/scala.rb   # 2.10.0
> brew install scala
> scala -version
Scala code runner version 2.10.0 -- Copyright 2002-2012, LAMP/EPFL


# install play 2.1.0
> brew versions play
2.1.0    git checkout 6a70797 Library/Formula/play.rb
...

> brew install play
> play -version
play! 2.1.0 (using Java 1.6.0_43 and Scala 2.10.0), http://www.playframework.org

そして私はプレイアプリケーションを作成します:

> cd ~/
> play new myapp
name: myapp
Create a simple Scala application

# generate IntelliJ project:
> cd myapp
> play
> idea
[info] Created /Users/david/myapp/.idea_modules/myapp.iml
[info] Created /Users/david/myapp/.idea_modules/myapp-build.iml

IntelliJ でプロジェクトを開きます。

# Install IntelliJ 12 Ultimate Edition
Download it from http://www.jetbrains.com/idea/
12.0.4, Build #IU-123.169
Build on February 13, 2013

# install scala plugin in IntelliJ
run IntelliJ,
Preferences -> plugins -> Browse from repositories -> add scala.
current version: 0.7.134

# open myapp project in IntelliJ
File -> Open Project, chose the directory /Users/david/myapp

次に、単体テストを実行しようとすると:

Project -> myapp -> test -> ApplicationSpec -> (right click) -> Run

次のエラーが表示されます。

scala: Сompiler library for module bigbrother not found: Right(Project) / Right(scala-2.10.0) 

実際には、いくつかのエラーがあります。

in File -> Project Structure -> Modules, there are two modules:
-myapp
-mypp-build

File -> Project Structure -> Modules -> myapp -> Scala
   Compiler library: scala-2.10.0 [not found]
   <<< ERROR

File -> Project Structure -> Modules -> myapp-build -> Dependencies:
   scala-2.9.2
   <<< ERROR

最初のエラーを次のように修正すると、

File -> Project Structure -> Modules -> myapp -> Scala -> Compiler library
and from the dropdown list I select the second valid option “scala-2.10.0 (version 2.10.0)”.

次に、テストを再実行すると、次のエラーが発生します。

scala: Output path /Users/david/bigbrother/project/target/scala_2.9.2 is shared between: Module 'bigbrother-build' production, Module 'bigbrother-build' tests
Currently external Scala compiler prohibits output path sharing.
Either disable the external build mode or configure separate output paths.
TIP: you can use Project Artifacts to combine compiled classes.

それを機能させるために何をする必要がありますか?


更新: Marius と alexwriteshere からの回答に基づくソリューション

でIntelliJプロジェクトを生成する

> cd myapp
> play
> idea no-sbt-build-module

(単なる「アイデア」ではなく)

次に、Project Settings -> Libraries 「Scala 2.9.2」を選択し、「-」をクリックして削除します。

Project Settings -> Module -> my_app -> Scala -> Scala-compiler このドロップダウンリストで、赤字で書かれた「Scala 2.10.0」が選択されています。リストの一番上に移動し、黒/灰色で書かれた「Scala 2.10.0 (バージョン 2.10.0)」を選択します。


ノート

ときどき (理由はわかりません)、黒/グレーで書かれた「Scala 2.10.0 (バージョン 2.10.0)」という選択肢がドロップダウン リストに表示されません。プロジェクト設定 -> グローバル ライブラリ -> + -> Java このディレクトリからこれらのファイル scala-compiler.jar、scala-library.jar、および scala-reflect.jar を選択します。 /usr/local/Cellar/scala/2.10.0/libexec/lib/ [OK] を選択します。「my scala 2.10.0 bundle」という名前を付けます。

次に、再び Project Settings -> Module -> my_app -> Scala -> Scala-compiler に移動します。これで、作成したばかりの「my scala 2.10.0 bundle」と標準の「Scala 2.10.0」の両方ができました。 (バージョン 2.10.0)」と黒/グレーで書かれています。標準のものを選択し、作成したグローバル ライブラリを削除します。

なぜこれが起こるのかわかりません。これを見つけるためにこれ以上時間を費やしたくありません。今のところ、この回避策はうまくいきます。見つけたらコメントを追加してください。

4

2 に答える 2