一旦我在2.3 play项目上运行'sbt compile',我就不能使用'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?
答案 0 :(得分:28)
我刚才有同样的问题。在我的情况下,我使用的是Play 2.4,但它可能是同样的原因。我在项目目录中意外地运行了激活器ui。它创建了一个project/play-fork-run.sbt
文件,用于激活器支持,但阻止了sbt直接工作。删除该文件可以解决问题,我现在可以再次使用sbt。
答案 1 :(得分:5)
尝试更新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")
然后项目就可以构建。
答案 2 :(得分:4)
这是一个有趣的问题,因为它适用于使用Java 7的Mac OS X 10.9.3上的me(TM)。
我下载了Play版本 - 最新版本2.3.1和2.2.x版本的最新版本 - 2.2.3。在这两个版本中,我使用activator
(2.3.1)创建了Web应用程序,并使用play
来创建2.2.3。两者都运作良好。
当我在2.3.1和2.2.3中执行sbt compile
时,两个命令也正常工作。我花了一些时间来下载所有依赖项,但最后结果如下:
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。
$ 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)
答案 3 :(得分:1)
Play 2.3应用程序应该使用激活器构建,以确保正确的sbt配置。最好
答案 4 :(得分:1)
我有同样的问题。确保您使用的是java-8版本。 我正在使用java-7,改为java-8解决了我的问题。