Игра 2.2.2 с IntelliJ 13 и SBT 0.13 can not run - не обнаружено основного класса
Я пытаюсь запустить один из проектов безопасного активатора типа в IntelliJ 13.1 с последними плагинами Play 2 и Scala.
Я могу запускать проект через typeafe activator без проблем, но когда я пытаюсь открыть проект активатора через файл build.sbt
в IntelliJ, все это работает, пока я не попытаюсь запустить эту вещь через конфигурацию запуска приложения Play 2, Я получаю следующую ошибку:
"C:\Program Files\Java\jdk1.8.0\bin\java" -Dfile.encoding=UTF8 -Djline.terminal=none -Dsbt.log.noformat=true -Dsbt.global.base=C:\Users\nw\AppData\Local\Temp\sbt-global-plugin5970836074908902993stub -Xms512M -Xmx1024M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M -classpath C:\Users\nw\.IntelliJIdea13\config\plugins\Scala\launcher\sbt-launch.jar xsbt.boot.Boot run
Getting org.fusesource.jansi jansi 1.11 ...
:: retrieving :: org.scala-sbt#boot-jansi
confs: [default]
1 artifacts copied, 0 already retrieved (111kB/37ms)
Getting org.scala-sbt sbt 0.13.0 ...
:: retrieving :: org.scala-sbt#boot-app
confs: [default]
43 artifacts copied, 0 already retrieved (12440kB/109ms)
Getting Scala 2.10.2 (for sbt)...
:: retrieving :: org.scala-sbt#boot-scala
confs: [default]
5 artifacts copied, 0 already retrieved (24390kB/62ms)
[info] Set current project to modules (in build file:/J:/DEV/TYPESAFE/reactive-maps/.idea/modules/)
java.lang.RuntimeException: No main class detected.
at scala.sys.package$.error(package.scala:27)
[trace] Stack trace suppressed: run 'last compile:run' for the full output.
[error] (compile:run) No main class detected.
[error] Total time: 0 s, completed 02/04/2014 10:31:12 PM
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256M; support was removed in 8.0
Process finished with exit code 1
Мой build.sbt выглядит следующим образом:
name := """reactive-maps"""
version := "1.0-SNAPSHOT"
libraryDependencies ++= Seq(
"com.typesafe.akka" %% "akka-actor" % "2.2.1",
"com.typesafe.akka" %% "akka-contrib" % "2.2.1",
"com.typesafe.play.extras" %% "play-geojson" % "1.0.0",
"org.webjars" %% "webjars-play" % "2.2.1",
"org.webjars" % "bootstrap" % "3.0.0",
"org.webjars" % "knockout" % "2.3.0",
"org.webjars" % "requirejs" % "2.1.8",
"org.webjars" % "leaflet" % "0.7.2"
)
play.Project.playScalaSettings
Просто запускать sbt run
из командной строки в папке проекта отлично. Таким образом, существует некоторая проблема с тем, как был импортирован проект SBT.
Ответы
Ответ 1
Просто столкнулся с той же проблемой - мой проект настроен так:
root/
.idea/
MainApp/ <-- this one is a Play 2.2.2 project
.idea/
apps/ <-- contains other Play2 projects
Я пытался запустить проект MainApp
и имел ту же проблему.
Если вы заметили ошибку при запуске: [info] Set current project to modules (in build file:/J:/DEV/TYPESAFE/reactive-maps/.idea/modules/)
указывает, что проект устанавливает значение modules
. Вы хотите, чтобы это было reactive-maps
.
Мой сделал то же самое - мое быстрое решение:
- найдите файл .idea/modules/reactive-maps.iml
, переместите его в корневой каталог reactive-maps/
.
- откройте файл Ctrl-F
Ctrl-R
(найти и заменить)
- Найти: $MODULE_DIR$/../..
Заменить на: $MODULE_DIR$/
Запуск приложения Play2 снова работал в этой точке.
Идеальное решение будет импортировать его правильно (и я уверен, что есть способ сделать это), но это ускорило мое приложение, запущенное через IntelliJ (хотя, скорее всего, это произойдет при перезагрузке/обновлении SBT).
Ответ 2
Вы также можете использовать воспроизведение, чтобы исправить его
cd /path/to/project
play
[project] idea with-sources=yes
Теперь вы можете щелкнуть правой кнопкой мыши приложение и запустить приложение Play2.