2009-07-10 35 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); 
    } 
}