Почему 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 исправленную мою проблему.