2009-07-10 3 views
2

웹 개발 팀용 빌드 스크립트를 빌드 중입니다. 이 스크립트를 사용하여 모든 프론트 엔드 제작 코드를 준비 할 것입니다. 나는 CSS와 JavaScript 파일을 압축하기 위해 YUI Compressor를 사용하고 있습니다. 모든 것은 CSS 부분에서 잘 작동하지만 JavaScriptCompressor 클래스 인스턴스와 관련된 문제가 있습니다.Java YUI Javascript-Compressor Error

나는이 라인을 통해 YUI 파일 가져 오기 오전 : 내가 제대로 작동 CssCompressor 클래스를 사용하고 방법을 참고로

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

, 여기에 있습니다 : 여기

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

내 JavaScriptCompressor 인스턴스이다 :

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

무엇 때문에 JavaScriptCompress에 오류가 발생합니다. 또는 클래스 :

The constructor JavaScriptCompressor(FileReader) is undefined 

YUI Compressor 파일을 잘못 가져 왔습니까? 아니면 다른 것입니까? 어떤 도움이라도 대단히 감사하겠습니다.

답변

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