2009-07-10 16 views
2

Web開発チーム用のビルドスクリプトをビルドしています。このスクリプトを使用して、プロダクション用のフロントエンドコードをすべて準備します。私はCSSとJavaScriptファイルを圧縮するためにYUI Compressorを使用しています。 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 Compressorファイルを間違ってインポートしていますか?それとも別のことですか?どんな助けでも大歓迎です。

答えて

2

あなたがErrorReporter、コンストラクタの第2引数が欠落しています

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); 
    } 
}