蚂蚁和蚂蚁压缩机



我正在尝试将yuiccompressor与Ant集成,以自动缩小我们的CSS和JS文件。但是,当我尝试运行build.xml时,我一直得到以下错误消息:

    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>

我已经尝试了几个在线的例子,但似乎都产生相同的错误信息。不确定在哪里可以找到evaluatoreexception类,似乎丢失了。

知道我可能做错了什么吗?

干杯!

你的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>   
编辑:

,

这个问题在某种程度上与jar位置和Ant的类加载器有关,参见这篇文章

一个解决方法是将yuant .jar, yuiccompressor -2.4.6.jar和rhino-1.6R7.jar复制到一个目录。然后像上面那样使用它。

如果您使用http://code.google.com/p/yui-compressor-ant-task/为我解决方案是使用classname="net.noha.tools.ant.yuicompressor.tasks.YuiCompressorTask"而不是classname="com.yahoo.platform.yui.compressor.YUICompressTask"

相关内容

  • 没有找到相关文章

最新更新