2009-07-10 61 views
2

我正在为我们的Web开发团队构建一个构建脚本。我们将使用这个脚本来准备我们所有的前端代码。我使用YUI Compressor来压缩我们的CSS和JavaScript文件。一切工作正常的CSS部分,但我遇到了JavaScriptCompressor类实例的问题。Java YUI Javascript-Compressor Error

我通过这条线导入YUI文件:

import com.yahoo.platform.yui.compressor.*; 

这里是我的JavaScriptCompressor例如:

FileReader ftcreader = new FileReader(ftc); 
JavaScriptCompressor js = new JavaScriptCompressor(ftcreader); 

仅供参考,这里是我如何使用CssCompressor类,它工作正常:

FileReader ftcreader = new FileReader(ftc); 
CssCompressor css = new CssCompressor(ftcreader); 

出于某种原因,我收到了JavaScriptCompress错误或类,说明:

The constructor JavaScriptCompressor(FileReader) is undefined 

我是否导入YUI压缩文件不正确?或者是别的什么?任何帮助将不胜感激。

回答

2

你缺少ErrorReporter,构造函数的第二个参数:

JavaScriptCompressor compressor = 
     new JavaScriptCompressor(in, new SystemOutErrorReporter()); 
    compressor.compress(out, 1 << 20, false, false, false, false); 

然后样本ErrorReporter:

class SystemOutErrorReporter implements ErrorReporter { 

    private String format(String arg0, String arg1, int arg2, String arg3, int arg4) { 
     return String.format("%s%s at line %d, column %d:\n%s", 
      arg0, 
      arg1 == null ? "" : ":" + arg1, 
      arg2, 
      arg4, 
      arg3); 
    } 

    @Override 
    public void warning(String arg0, String arg1, int arg2, String arg3, int arg4) { 
     System.out.println("WARNING: " + format(arg0, arg1, arg2, arg3, arg4)); 
    } 

    @Override 
    public void error(String arg0, String arg1, int arg2, String arg3, int arg4) { 
     System.out.println("ERROR: " + format(arg0, arg1, arg2, arg3, arg4)); 
    } 

    @Override 
    public EvaluatorException runtimeError(String arg0, String arg1, int arg2, String arg3, int arg4) { 
     System.out.println("RUNTIME ERROR: " + format(arg0, arg1, arg2, arg3, arg4)); 
     return new EvaluatorException(arg0); 
    } 
}