播放应用程序的编译问题 [英] Problems with Compiling Play Application

查看:70
本文介绍了播放应用程序的编译问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在编译我的游戏框架应用程序时遇到了一些问题.有时,应用程序运行良好,但大多数情况下,这些问题都是通过sbt和activator工具出现的.这是一个使用sbt编译我的应用程序的示例:

I have been running into a few problems with compiling my play framework application. Sometimes the application runs fine but most of the time these problems both occur with the sbt and activator tools. Here is an example of compiling my application with sbt:

[info] Compiling 15 Scala sources and 1 Java source to C:\Server\trunk\target\scala-2.11\classes...
[error] C:\Server\trunk\target\scala-2.11\src_managed\main\controllers\routes.java:8: error: cannot find symbol
[error] public static final controllers.ReverseAssets Assets = new controllers.ReverseAssets();
[error]                                ^
[error]   symbol:   class ReverseAssets
[error]   location: package controllers
[error] C:\Server\trunk\target\scala-2.11\src_managed\main\controllers\routes.java:9: error: cannot find symbol
[error] public static final controllers.ReverseApplication Application = new controllers.ReverseApplication();
[error]                                ^
[error]   symbol:   class ReverseApplication
[error]   location: package controllers
[error] C:\Server\trunk\target\scala-2.11\src_managed\main\controllers\routes.java:12: error: package controllers.javascript does not exist
[error] public static final controllers.javascript.ReverseAssets Assets = new controllers.javascript.ReverseAssets();
[error]                                           ^
[error] C:\Server\trunk\target\scala-2.11\src_managed\main\controllers\routes.java:13: error: package controllers.javascript does not exist
[error] public static final controllers.javascript.ReverseApplication Application = new controllers.javascript.ReverseApplication();
[error]                                           ^
[error] C:\Server\trunk\target\scala-2.11\src_managed\main\controllers\routes.java:18: error: package controllers.ref does not exist
[error] public static final controllers.ref.ReverseAssets Assets = new controllers.ref.ReverseAssets();
[error]                                    ^
[error] C:\Server\trunk\target\scala-2.11\src_managed\main\controllers\routes.java:19: error: package controllers.ref does not exist
[error] public static final controllers.ref.ReverseApplication Application = new controllers.ref.ReverseApplication();
[error]                                    ^
[error] C:\Server\trunk\target\scala-2.11\src_managed\main\controllers\routes.java:8: error: cannot find symbol
[error] public static final controllers.ReverseAssets Assets = new controllers.ReverseAssets();
[error]                                                                       ^
[error]   symbol:   class ReverseAssets
[error]   location: package controllers
[error] C:\Server\trunk\target\scala-2.11\src_managed\main\controllers\routes.java:9: error: cannot find symbol
[error] public static final controllers.ReverseApplication Application = new controllers.ReverseApplication();
[error]                                                                                 ^
[error]   symbol:   class ReverseApplication
[error]   location: package controllers
[error] C:\Server\trunk\target\scala-2.11\src_managed\main\controllers\routes.java:12: error: package controllers.javascript does not exist
[error] public static final controllers.javascript.ReverseAssets Assets = new controllers.javascript.ReverseAssets();
[error]                                                                                             ^
[error] C:\Server\trunk\target\scala-2.11\src_managed\main\controllers\routes.java:13: error: package controllers.javascript does not exist
[error] public static final controllers.javascript.ReverseApplication Application = new controllers.javascript.ReverseApplication();
[error]                                                                                                       ^
[error] C:\Server\trunk\target\scala-2.11\src_managed\main\controllers\routes.java:18: error: package controllers.ref does not exist
[error] public static final controllers.ref.ReverseAssets Assets = new controllers.ref.ReverseAssets();
[error]                                                                               ^
[error] C:\Server\trunk\target\scala-2.11\src_managed\main\controllers\routes.java:19: error: package controllers.ref does not exist
[error] public static final controllers.ref.ReverseApplication Application = new controllers.ref.ReverseApplication();
[error]                                                                                         ^
[error] 12 errors
[error] (compile:compile) javac returned nonzero exit code
[error] Total time: 16 s, completed Oct 31, 2014 11:18:25 AM

其他时候,我会通过sbt clean编译得到此错误:

Other times I'll get this error with sbt clean compile:

[info] Compiling 15 Scala sources and 1 Java source to C:\Server\trunk\target\scala-2.11\classes...
[trace] Stack trace suppressed: run last compile:compile for the full output.
[error] (compile:compile) java.lang.NoClassDefFoundError: Lcontrollers/ReverseAssets;
[error] Total time: 45 s, completed Oct 31, 2014 11:45:49 AM

然后我将退出sbt,然后再次运行sbt clean编译,一切似乎都可以正常编译.我什至会运行activator run,并且一切都可以正常编译,但是无法识别任何路由:

Then I'll exit out of sbt then run sbt clean compile again and everything seems to compile fine. I'll even run activator run and everything compiles fine but none of the routes are recognized:

# Home page
GET     /               controllers.Application.index

GET     /login          controllers.Application.login

然后我会在使用激活器运行时编译时出错:

And then I'll get errors compiling with activator run:

[info] Compiling 15 Scala sources and 1 Java source to C:\Server\trunk\target\scala-2.11\classes...
[error] C:\Server\trunk\target\scala-2.11\src_managed\main\controllers\routes.java:13: error: cannot find symbol
[error] public static final controllers.javascript.ReverseApplication Application = new controllers.javascript.ReverseApplication()
[error]                                           ^
[error]   symbol:   class ReverseApplication
[error]   location: package controllers.javascript
[error] C:\Server\trunk\target\scala-2.11\src_managed\main\controllers\routes.java:13: error: cannot find symbol
[error] public static final controllers.javascript.ReverseApplication Application = new controllers.javascript.ReverseApplication()
[error]                                                                                                       ^
[error]   symbol:   class ReverseApplication
[error]   location: package controllers.javascript
[error] 2 errors
[error] (compile:compile) javac returned nonzero exit code
[error] application -

! @6k3l8fool - Internal server error, for (GET) [/] ->

play.PlayExceptions$CompilationException: Compilation error[error: cannot find symbol]
    at play.PlayExceptions$CompilationException$.apply(PlayExceptions.scala:27) ~[na:na]
    at play.PlayExceptions$CompilationException$.apply(PlayExceptions.scala:27) ~[na:na]
    at scala.Option.map(Option.scala:145) ~[scala-library-2.11.1.jar:na]
    at play.PlayReloader$$anon$1$$anonfun$play$PlayReloader$$anon$$taskFailureHandler$1.apply(PlayReloader.scala:235) ~[na:na]
    at play.PlayReloader$$anon$1$$anonfun$play$PlayReloader$$anon$$taskFailureHandler$1.apply(PlayReloader.scala:230) ~[na:na]
[warn] play - No application found at invoker init

然后我运行激活器清洁运行,并得到一个完全不同的错误:

Then I run activator clean run and I get a completely different error:

[info] Compiling 15 Scala sources and 1 Java source to C:\Server\trunk\target\scala-2.11\classes...
java.lang.IllegalArgumentException: requirement failed: Source file 'C:\Server\trunk\target\scala-2.11\classes\Routes$$anonfun$routes$1$$anonfun$applyOrElse$4.class' does not exist.
    at scala.Predef$.require(Predef.scala:233)
    at sbt.IO$.copyFile(IO.scala:580)
    at sbt.IO$.sbt$IO$$copyImpl(IO.scala:559)
    at sbt.IO$$anonfun$copy$1.apply(IO.scala:548)
    at sbt.IO$$anonfun$copy$1.apply(IO.scala:548)
    at scala.Function$$anonfun$tupled$1.apply(Function.scala:77)
    at scala.Function$$anonfun$tupled$1.apply(Function.scala:76)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
    at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
    at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
    at scala.collection.AbstractTraversable.map(Traversable.scala:105)
    at sbt.IO$.copy(IO.scala:548)
    at play.PlayCommands$$anonfun$PostCompile$1.apply(PlayCommands.scala:162)
    at play.PlayCommands$$anonfun$PostCompile$1.apply(PlayCommands.scala:76)
    at scala.Function8$$anonfun$tupled$1.apply(Function8.scala:35)
    at scala.Function8$$anonfun$tupled$1.apply(Function8.scala:34)
    at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
    at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:42)
    at sbt.std.Transform$$anon$4.work(System.scala:64)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237)
    at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18)
    at sbt.Execute.work(Execute.scala:244)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237)
    at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:160)
    at sbt.CompletionService$$anon$2.call(CompletionService.scala:30)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:744)
[error] (compile:compile) java.lang.IllegalArgumentException: requirement failed: Source file 'C:\Server\AuthWebManager\trunk\target\scala-2.11\classes\Routes$$anonfun$routes$1$$anonfun$applyOrElse$4.
class' does not exist.
[error] application -

! @6k3l90dc5 - Internal server error, for (GET) [/] ->

play.PlayExceptions$UnexpectedException: Unexpected exception[IllegalArgumentException: requirement failed: Source file 'C:\Server\AuthWebManager\trunk\target\scala-2.11\classes\Routes$$anonfun$routes
$1$$anonfun$applyOrElse$4.class' does not exist.]
    at play.PlayReloader$$anon$1$$anonfun$play$PlayReloader$$anon$$taskFailureHandler$1.apply(PlayReloader.scala:237) ~[na:na]
    at play.PlayReloader$$anon$1$$anonfun$play$PlayReloader$$anon$$taskFailureHandler$1.apply(PlayReloader.scala:230) ~[na:na]
    at scala.Option.map(Option.scala:145) ~[scala-library-2.11.1.jar:na]
    at play.PlayReloader$$anon$1.play$PlayReloader$$anon$$taskFailureHandler(PlayReloader.scala:230) ~[na:na]
    at play.PlayReloader$$anon$1$$anonfun$reload$2.apply(PlayReloader.scala:90) ~[na:na]
Caused by: java.lang.IllegalArgumentException: requirement failed: Source file 'C:\Server\trunk\target\scala-2.11\classes\Routes$$anonfun$routes$1$$anonfun$applyOrElse$4.class' does not
exist.
    at scala.Predef$.require(Predef.scala:233) ~[scala-library-2.11.1.jar:na]
    at sbt.IO$.copyFile(IO.scala:580) ~[na:na]
    at sbt.IO$.sbt$IO$$copyImpl(IO.scala:559) ~[na:na]
    at sbt.IO$$anonfun$copy$1.apply(IO.scala:548) ~[na:na]
    at sbt.IO$$anonfun$copy$1.apply(IO.scala:548) ~[na:na]
[warn] play - No application found at invoker init

我也遇到了一些不同的错误,但是为了简洁起见,我不会在这里写它们.我曾尝试删除.sbt和.ivy2/cache文件夹的建议,但这并不能解决问题.

I've gotten a few different errors as well, but for conciseness sake I won't write them here. I've tried suggestions of deleting the .sbt and .ivy2/cache folders, but that hasn't solved the problem.

那我该怎么做才能使我的play应用程序编译并运行而不会出现看似不确定的错误呢?

So what do I do so that my play application compiles and runs without seemingly non deterministic errors?

推荐答案

我遇到了类似的问题.我在激活器上使用eclipse.当它试图在与播放器相同的导演中构建应用程序时,Eclipse似乎出现了问题.我禁用了Eclipse的自动构建"设置,到目前为止,它的工作情况还不错.看看这个线程:

I ran into similar issues. I am using eclipse with activator. Looks like problem was with eclipse when it tries to build app in the same director as play. I disabled "Build Automatically" setting from eclipse and so far its working fine. Have a look at this thread:

https://groups.google.com/forum/#!topic/play-framework/4RnbqEk-muM

这篇关于播放应用程序的编译问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆