Подтвердить что ты не робот

Запуск первого примера playframework в IntelliJ на Mac OSX

В моем новом Mac OSX 10.8.3, Я устанавливаю scala 2.10.0, играю 2.1.0 и IntelliJ12, и создать проект воспроизведения следующим образом:

#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

Затем, когда я пытаюсь запустить unit test:

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

(вместо "идеи" )

то, Настройки проекта → Библиотеки Выберите "Scala 2.9.2" и нажмите "-", чтобы удалить его.

то, Настройки проекта → Модуль → 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/ выберите "ОК". Дайте ему имя "my scala 2.10.0 bundle".

затем снова перейдите в Настройки проекта → Модуль → my_app → scala → Scala -compiler теперь у вас есть и тот, который вы только что создали "my scala 2.10.0 bundle", и стандартный: "Scala 2.10.0 (версия 2.10.0)" , написанный черным/серым. выберите стандартный и удалите созданную глобальную библиотеку.

Я не знаю, почему это происходит, и я действительно не хочу тратить больше времени на это. на данный момент это обходное решение работает для меня. но не стесняйтесь добавлять комментарий, если вы узнаете.

4b9b3361

Ответ 1

Эти проблемы могут быть решены путем создания проекта идеи с помощью:

$ play  # start play from command line
[your-play-project] $ idea no-sbt-build-module

Это позволит встроить механизм построения IntelliJ по умолчанию для Scala, что не вызовет этих проблем.

Ответ 2

Вот что помогло мне в прошлом с теми же ошибками:

  • Удалите все зависимости Scala 2.9.2
  • Перейдите к Project Structure -> Global libraries. Создайте новый, называемый, скажем, scala-bundle. Добавьте scala -compiler.jar, scala -library.jar, scala -reflect.jar для 2.10.
  • Наконец, перейдите к Project Structure -> Modules -> myapp -> Scala и выберите scala-bundle.

Для ошибок совместного использования модулей перейдите к Project Structure -> Modules -> <each module> -> Paths и измените пути, чтобы они не совпадали.