我已经将我的应用打包成战争(grails war
),正如我所看到的,它已经构建了所有必需的资源。例如,我有coffeescript
代码,已转换为js
目录。同样适用于scss
等我的意思是我拥有所有静态资源,可以直接提供(我想从Nginx服务它,而不是Tomcat)
但是在将此war
部署到Tomcat之后,我收到的错误如下:
ERROR plugins.DefaultGrailsPluginManager - Error configuring dynamic methods for plugin [resources:1.1.6]: java.lang.NoSuchMethodError: org.mozilla.javascript.Parser.parse(Ljava/io/Reader;Ljava/lang/String;I)Lorg/mozilla/javascript/ScriptOrFnNode;
org.codehaus.groovy.runtime.InvokerInvocationException: java.lang.NoSuchMethodError: org.mozilla.javascript.Parser.parse(Ljava/io/Reader;Ljava/lang/String;I)Lorg/mozilla/javascript/ScriptOrFnNode;
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
Caused by: java.lang.NoSuchMethodError: org.mozilla.javascript.Parser.parse(Ljava/io/Reader;Ljava/lang/String;I)Lorg/mozilla/javascript/ScriptOrFnNode;
at com.yahoo.platform.yui.compressor.JavaScriptCompressor.parse(JavaScriptCompressor.java:312)
这是来自yui-minify-resources
插件。类似的事情发生在coffeescript-resources
插件中。也许这是因为这个插件有问题,但它很疯狂,因为我已经拥有了所有资源,准备/处理/编译成静态文件。在生产模式下我不需要这个插件。
如何在生产模式下禁用所有这些资源插件?有可能吗?
对于grails run-war
答案 0 :(得分:2)
这可能是由于coffeescript-resources
和yui-minify-resources
都依赖于Rhino javascript引擎,但YUI团队已将some modifications发送到他们的Rhino版本,导致它成为与香草犀牛不相容。您有两种选择: