Java YUI Javascript-Compressor Error

时间:2009-07-10 20:24:53

标签: java yui-compressor

我正在为我们的Web开发团队构建构建脚本。我们将使用此脚本准备所有前端代码以进行生产。我正在使用YUI Compressor压缩我们的CSS和JavaScript文件。一切都适用于CSS部分,但我遇到了JavaScriptCompressor类实例的问题。

我通过以下行导入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);

出于某种原因,我收到JavaScriptCompressor类的错误,说明:

The constructor JavaScriptCompressor(FileReader) is undefined

我是否错误地导入了YUI Compressor文件?或者是别的什么?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分: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);
    }
}