Pull to refresh

Comments 4

Еще сразу замечание, для тех кто будет пользоваться скриптами на практике. Важно сразу определиться с форматом разделителя директорий в путях. \ или /. Везде использовать один и тот же вариант.
Сам ANT к формату безразличен, но regexp-mapper чувствителен.
macrodef-ы удобно использовать совместно с пространствами имен, тогда вместо <copy_by_pattern /> было бы что-то вроде <my:copy /> + если в файле содержатся только макросы в качестве корневого тега можно использовать antlib.

Примечание: в ANT до версии 1.8 не было локальных переменных. Записав в переменную значение, его потом нельзя изменить.

Неудобство обходится достаточно легко созданием уникальных свойств для каждой копируемой директории:
<pathconvert property="out.script.@{from}" refid="localfs" pathsep="${line.separator}" />


+ очень важно помнить о том, что @{from} не является переменной и при вызове макроса просто заменяется переданной строкой, это может приводить к проблемам при использовании совместно с задачей script, в этих случаях лучше использовать scriptdef.
Неудобство обходится достаточно легко созданием уникальных свойств для каждой копируемой директории:

<pathconvert property="out.script.@{from}" refid="localfs" pathsep="${line.separator}" />



Вначале пытался обойтись без локальных переменных, но
1) скрипт становиться более громоздким. В моем случае придется генерить уникальный property, используя все три параметра @{from} @{to} @{pattern}
2) property, в имени которого содержится спец символы (звездочки, слеши) как-то криво работает. Подробностей не помню, но стал искать, как это можно обойти.
Нашел локальные переменные.
AntCall позволяет создавать targets с параметрами. Можно использовать вместо локальных переменных.
Sign up to leave a comment.

Articles

Change theme settings