2012-05-03 6 views
0

Я безуспешно пытаюсь создать пользовательскую задачу Ant, которая обрабатывает кучу файлов PNG с помощью pngquant.Запуск pngquant через задачу Ant

Вот что я пытался до сих пор (и я бегу как часть HTML5 шаблонного сценария сборки, так что это, где динамические значения приходят от):

<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> 

В настоящее время каждая ошибка изображения с «невозможно открыть для чтения».

Я знаю, это может быть не очень полезно, но я действительно не знаю, куда идти отсюда. Любая помощь будет очень высоко ценится.

ответ

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"/>.

Смежные вопросы