通过Ant任务运行pngquant

时间:2012-05-03 03:07:34

标签: ant png

我一直试图创建一个使用pngquant处理一堆PNG文件的自定义Ant任务失败。

这是我到目前为止所尝试的内容(我已将其作为HTML5 Boilerplate构建脚本的一部分运行,因此动态值来自此处):

<apply executable="${basedir}/${dir.build.tools}/pngquant" dest="./${dir.publish}/${dir.images}/" osfamily="unix">
    <fileset dir="./${dir.source}/${dir.images}/" includes="**/*.png"  excludes="${images.bypass}, ${images.default.bypass}"/>
    <arg value="-force 256"/>
    <targetfile/>
    <srcfile/>
    <mapper type="identity"/>
</apply>

目前,每张图片都出现“无法打开阅读”的错误。

我知道这可能不是很有帮助,但我真的不知道从哪里开始。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我不知道问题是什么,但我认为你的Ant XML本身有问题。

首先,您的excludes在逗号后面有一个额外的空格。

  

排除:必须排除的以逗号或空格分隔的文件模式列表。

也就是说,你应该使用逗号或空格,而不是一起使用。所以它应该是${images.bypass},${images.default.bypass} ----我发现它不对。它使用StringTokenizer(String sInput, String sDelimiter, boolean bReturnTokens)并将false传递给第三个参数,以便您可以一起使用,

另外,我建议您使用嵌套的<include><exclude>元素来使其更清晰。

其次,如果您不需要使用<targetfile/>,则无需将<srcfile/><apply>放在<arg value="-force 256" />内。

第三,<arg value="-force"/>应为<arg value="256"/>和{{1}}。