Почему sbt не работает с NoClassDefFoundError: play/Play $в Play 2.2.x после компиляции sbt в проекте Play 2.3?

Как только я запустил 'sbt compile' в проекте 2.3 play, я не могу использовать 'sbt compile' для компиляции любых проектов Play 2.2.x. Это ошибка, когда я запускаю команду sbt.

[info] Loading project definition from /Users/macbookpro/playproject/project
[error] java.lang.NoClassDefFoundError: play/Play$
[error] Use 'last' for the full log.
Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore?

Ответ 1

У меня была такая же проблема. В моем случае я использовал Play 2.4, но это, вероятно, та же самая причина. Я случайно запустил активатор ui в каталоге проекта. Он создал файл project/play-fork-run.sbt, который предназначен для поддержки активатора, но не позволял sbt работать напрямую. Удаление этого файла устраняет проблему, и теперь я могу использовать sbt снова.

Ответ 2

Попробуйте обновить play-fork-run.sbt

addSbtPlugin("com.typesafe.play" % "sbt-fork-run-plugin" % "2.3.8")

обновить до

addSbtPlugin("com.typesafe.play" % "sbt-fork-run-plugin" % "2.4.0")

Тогда проект сможет построить.

Ответ 3

Эта интересная проблема, поскольку она работает для меня (TM) на Mac OS X 10.9.3 с Java 7.

Я загрузил версии Play - последние версии 2.3.1 и последние в потоке 2.2.x - 2.2.3. В этих двух версиях я использовал activator (2.3.1) для создания веб-приложения и play для 2.2.3. Оба работали хорошо.

Когда я выполнил sbt compile в 2.3.1, а затем 2.2.3, обе команды работали нормально. Мне потребовалось некоторое время, чтобы загрузить все зависимости, но в итоге результаты были следующими:

jacek:~/sandbox/play231-app
$ sbt compile
[info] Loading project definition from /Users/jacek/sandbox/play231-app/project
[info] Updating {file:/Users/jacek/sandbox/play231-app/project/}play231-app-build...
...
[info] Done updating.
[info] Compiling 5 Scala sources and 1 Java source to /Users/jacek/sandbox/play231-app/target/scala-2.11/classes...
[info] 'compiler-interface' not yet compiled for Scala 2.11.1. Compiling...
[info]   Compilation completed in 14.895 s
[success] Total time: 200 s, completed Jun 25, 2014 1:00:18 PM

И для 2.2.3:

jacek:~/sandbox/play223-app
$ sbt compile
[info] Loading project definition from /Users/jacek/sandbox/play223-app/project
[info] Set current project to play223-app (in build file:/Users/jacek/sandbox/play223-app/)
[info] Updating {file:/Users/jacek/sandbox/play223-app/}play223-app...
...
[info] Done updating.
[info] Compiling 5 Scala sources and 1 Java source to /Users/jacek/sandbox/play223-app/target/scala-2.10/classes...
[info] 'compiler-interface' not yet compiled for Scala 2.10.3. Compiling...
[info]   Compilation completed in 19.626 s
[success] Total time: 45 s, completed Jun 25, 2014 3:15:34 PM

Я использую sbt 0.13.5, установленный с использованием homebrew.

$ sbt --version
sbt launcher version 0.13.5

$ java -version
java version "1.7.0_60"
Java(TM) SE Runtime Environment (build 1.7.0_60-b19)
Java HotSpot(TM) 64-Bit Server VM (build 24.60-b09, mixed mode)

Ответ 4

Play 2.3 приложение должно быть создано с использованием активатора, чтобы обеспечить правильную конфигурацию sbt. Лучший

Ответ 5

У меня была такая же проблема. Убедитесь, что вы используете версию java-8. Я использовал java-7, изменив на java-8 исправленную мою проблему.