Ant mapper и сохраняющая структура папок - PullRequest
1 голос
/ 03 июня 2011

Не уверен, что есть документация специально для этого, не смог найти ее после тщательного изучения документации и немного поэкспериментировать, но главное вот что:

Скажем, в моей сборке Ant я хочусобрать все изображения в определенной папке и все подпапки в этой папке, чтобы я мог запустить их через ImageMagick для преобразования и изменения размера для мобильных изображений.Я использую

<apply executable="\pathtoImageMagick\convert">
  <fileset dir="${from.dir}/${dir.publish}/${dir.images}" />
  <srcfile />
  <arg value="-resize" />
  <arg value="25%" />
  <targetfile />
  <mapper type="glob" from="*" to="${from.dir}/${dir.publish}/${dir.images}/mobile.*" />
</apply>

Это работает для файлов первого уровня, например, помимо test.jpg, я получаю mobile.test.jpg.

К сожалению, если у меня есть изображение в подпапке, скажите test.jpg в папке ${from.dir}/${dir.publish}/${dir.images}/home, и я хочу, чтобы оно перешло на ${from.dir}/${dir.publish}/${dir.images}/home/mobile.test.jpg, как мне это сделать?Он попытался создать ${from.dir}/${dir.publish}/${dir.images}/mobile.home/test.jpg, что не правильно.

Есть идеи от кого-то, кто имеет опыт работы с Ant и mapper?С благодарностью.

Ответы [ 2 ]

2 голосов
/ 03 июня 2011

Отображение глобуса здесь бесполезно, потому что вы хотите вставить что-то в середину совпадающего «атома». В документации Ant этого типа сопоставления есть пример, в котором используется regexpmapper, что-то вроде:

<mapper type="regexp" from="(.*)/([^/]+)" to="\1/mobile.\2" />

from говорит: захватить путь к каталогу к \1, захватить имя файла к \2. Затем в to вставляется префикс.

0 голосов
/ 03 июня 2011

Может быть, я читаю это неправильно, но вы также пытаетесь переместить / скопировать изображения из одного каталога в другой как часть этого?

Если нет, и вам просто нужно отобразить все *.jpg файлов в любом подкаталоге от ${from.dir}/${dir.publish}/${dir.images} до mobile.*.jpg, затем попробуйте это:

<fileset includes="${from.dir}/${dir.publish}/${dir.images}/**/*" />
...
<mapper type="glob" from="*" to="mobile.*" />

Элемент <fileset> должен включать в себя все файлы во всех подкаталогах этого пути, и преобразователь должен начинаться "мобильный «.к его имени файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...