Переименование файлов во время копирования ANT
Я хотел бы скопировать каталог файлов и переименовать некоторые из них в процессе.
Когда я запускаю script ниже, ничего не копирует.
Если я комментирую glob-mappers в файле ниже, файлы копируются (без переименования)
Спасибо за любую помощь.
Джеймс
<?xml version="1.0" ?>
<project name="Create project structure" default="main">
<target name="main" description="Copy template files to project folder">
<echo>Copying template files to project folder</echo>
<copy todir="${project.dir}" verbose="true" overwrite="true">
<fileset dir="${shared.files}/templateproject" excludes=".svn"/>
<mapper>
<chainedmapper>
<mapper type="glob" from="*PACKAGENAME*" to="*${package.name}*"/>
<mapper type="glob" from="*GAMENAME*" to="*${game.name}*"/>
<mapper type="identity"/>
</chainedmapper>
</mapper>
</copy>
</target>
</project>
Ответы
Ответ 1
Прибегают к обходному пути, используя "move" и правильный тип сопоставления, как указано Mnementh. Благодаря
<?xml version="1.0" ?>
<project name="Create project structure" default="main">
<target name="main" description="Copy template files to project folder">
<echo>Copying template files to project folder</echo>
<copy todir="${project.dir}" verbose="true" overwrite="true">
<fileset dir="${shared.files}/templateproject" excludes=".svn" />
</copy>
<move todir="${project.dir}">
<fileset dir="${project.dir}" />
<mapper>
<mapper type="regexp"
from="(.*)PACKAGENAME(.*)" to="\1${package.name}\2" />
<mapper type="regexp"
from="(.*)GAMENAME(.*)" to="\1${game.name}\2" />
</mapper>
</move>
</target>
</project>
Ответ 2
Кажется, что glob-mapper работает только с одним "*". Я бы попробовал regexp-mapper:
<mapper type="regexp" from="(.*)PACKAGENAME(.*)" to="\1${package.name}\2"/>
<mapper type="regexp" from="(.*)GAMENAME(.*)" to="\1${game.name}\2"/>
Ответ 3
Ваша проблема в том, что вы не выбрали правильный сопоставитель: <chainedmapper>
передаст информацию в цепочке от первого до последнего картографа
Вместо этого следует использовать <firstmatchmapper>
, который будет поочередно проверять всех картографов, пока не будет указан
Ссылка: http://ant.apache.org/manual/Types/mapper.html
(довольно старый вопрос, но я просто нашел почти ту же проблему: -))