Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ant和yuicompressor_Ant_Minify - Fatal编程技术网

Ant和yuicompressor

Ant和yuicompressor,ant,minify,Ant,Minify,我正在尝试将yuicompressor与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/m

我正在尝试将yuicompressor与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>

我尝试了以下几个在线示例,但似乎都产生了相同的错误消息。不确定在哪里可以找到似乎丢失的EvaluatorException类

知道我做错了什么吗


干杯

您的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的类装入器有关,请参见


一种解决方法是将YUIAnt.jar、yuicompressor-2.4.6.jar和rhino-1.6R7.jar复制到一个目录中。然后像上面那样使用它。我已经尝试过了,而且效果很好。

如果您为我使用的解决方案是使用
classname=“net.noha.tools.ant.yuicompressor.tasks.YuiCompressorTask”
而不是
classname=“com.yahoo.platform.yui.compressor.YuiCompressorTask”
,谢谢!但是我添加了上面这一行来包含rhino,但仍然得到一个错误:BUILD FAILED/Applications/MAMP/htdocs/zanadu dev/BUILD/BUILD.xml:64:taskdef类com.yahoo.platform.yui.compressor.YUICompressTask所需的类找不到:org/mozilla/javascript/EvaluatorException使用classloader和classloader[/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]