2011-08-30 222 views
1

我想要集成yuicompressor與螞蟻自動縮小我們的CSS和JS文件。不過,我不斷收到以下錯誤消息,當我嘗試運行的build.xml:螞蟻和yuicompressor

BUILD FAILED 
/Applications/MAMP/htdocs/zanadu-dev/build/build.xml:64: taskdef A class needed by class com.yahoo.platform.yui.compressor.YUICompressTask cannot be found: org/mozilla/javascript/EvaluatorException 
using the classloader AntClassLoader[/usr/share/ant/lib/YUIAnt.jar:/usr/share/ant/lib/yuicompressor-2.4.6/build/yuicompressor-2.4.6.jar:/usr/share/ant/lib/yuicompressor-2.4.6/lib/rhino-1.6R7.jar] 

這裏是我的build.xml文件中的代碼:以下幾個網上的例子

<target name="minify" depends="build" description="Minifiy CSS and JS files"> 
    <available file="${antlib.dir}/YUIAnt.jar" property="YUIANT_AVAILABLE" /> 

    <fail unless="YUIANT_AVAILABLE" message="YUIAnt.jar not found" /> 

    <taskdef name="yuicompress" classname="com.yahoo.platform.yui.compressor.YUICompressTask"> 

     <classpath> 
      <pathelement path="${antlib.dir}/YUIAnt.jar" /> 
      <pathelement path="${antlib.dir}/yuicompressor-2.4.6/build/yuicompressor-2.4.6.jar" /> 
        <pathelement path="${antlib.dir}/yuicompressor-2.4.6/lib/rhino-1.6R7.jar" /> 
      </classpath> 
     </taskdef>  

     <mkdir dir="${jsminify.dir}" /> 

     <yuicompress linebreak="300" warn="false" munge="yes" preserveallsemicolons="true" 
      outputfolder="${jsmin.dir}"> 
      <fileset dir="${js.dir}" > 
       <include name="**/*.js" /> 
      </fileset> 
     </yuicompress> 

     <mkdir dir="${cssminify.dir}" /> 

     <yuicompress linebreak="300" warn="false" munge="yes" preserveallsemicolons="true" 
      outputfolder="${cssmin.dir}"> 
      <fileset dir="${css.dir}" > 
       <include name="**/*.css" /> 
      </fileset> 
     </yuicompress> 

    </target> 

我曾嘗試在此,但似乎都產生相同的錯誤信息。不確定在哪裏可以找到似乎缺少的EvaluatorException類。

任何想法我可能做錯了什麼?

乾杯!

回答

2

您的taskdef缺少一個庫。

<taskdef name="yuicompress" classname="com.yahoo.platform.yui.compressor.YUICompressTask"> 
    <classpath> 
     <pathelement path="${antlib.dir}/YUIAnt.jar" /> 
     <pathelement path="${antlib.dir}/yuicompressor-2.4.6.jar" /> 
     <pathelement path="${antlib.dir}/rhino-1.6R7.jar" /> 
    </classpath> 
</taskdef> 

編輯:,

問題是主題相關的罐子位置和Ant的類加載器,請參閱本post

一個解決辦法是複製YUIAnt.jar,的YUICompressor-2.4 .6.jar和rhino-1.6R7.jar到一個目錄。然後像上面一樣使用它。我已經嘗試過,它的工作原理。

+0

謝謝!但我已經添加了上面的行來包含rhino,但是仍然出現錯誤:BUILD FAILED /Applications/MAMP/htdocs/zanadu-dev/build/build.xml:64:taskdef類com.yahoo需要的類無法找到.platform.yui.compressor.YUICompressTask:org/mozilla/javascript/EvaluatorException 使用類加載器AntClassLoader [/usr/share/ant/lib/YUIAnt.jar:/usr/share/ant/lib/yuicompressor-2.4 .6/build/yuicompressor-2.4.6.jar:/usr/share/ant/lib/yuicompressor-2.4.6/lib/rhino-1.6R7.jar] –

+0

我已經編輯瞭解決你問題的文章。 – escrubalo

+0

謝謝!!有用 –