部署后禁用grails 2.0资源处理

时间:2012-02-17 08:46:44

标签: grails coffeescript-resources

我已经将我的应用打包成战争(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

,PS也是如此

1 个答案:

答案 0 :(得分:2)

这可能是由于coffeescript-resourcesyui-minify-resources都依赖于Rhino javascript引擎,但YUI团队已将some modifications发送到他们的Rhino版本,导致它成为与香草犀牛不相容。您有两种选择:

  1. 尝试使用类加载器进行黑客攻击
  2. 不要使用YUI压缩器