Расширение * в задаче копирования Ant - PullRequest
2 голосов
/ 17 января 2012

В задаче ant copy, в месте назначения есть папка «случайное число» в пути.Когда я пытаюсь поместить * в путь, чтобы обработать его, Ant принимает его буквально, т.е. не раскрывает его, но создает папку с именем * и копирует туда.Как заставить Ant развернуть * до действительного имени папки (там есть только 1 папка, поэтому * не будет расширяться до нескольких папок)

<property name="dest" value="a/*/b/my.jar" />
<property name="src" value="my.jar" />

<copy file="${src}" tofile="${dest}" overwrite="true" verbose="true"/>

1 Ответ

5 голосов
/ 17 января 2012

Задача copy не поддерживает подстановочные знаки в атрибуте tofile.Если целевой каталог существует, но конечный файл может не существовать, вы можете использовать dirset для захвата каталога.Примерно так:

<dirset dir="${basedir}" id="dest.dir">
      <include name="a/*/b" />
</dirset>
<property name="dest" value="${toString:dest.dir}/my.jar"/>
<property name="src" value="my.jar" />

<copy file="${src}" tofile="${dest}" overwrite="true" verbose="true"/>

Вместо использования синтаксиса свойства helper (${toString:....}) вы можете использовать задачу pathconvert :

<pathconvert property="destdir" refid="dest.dir"/>
<property name="dest" value="${destdir}/my.jar"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...