2011-08-30 114 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

谢谢!!有用 –