Как переименовать папку с помощью Ant?

Я хочу переименовать папку своего приложения с отметкой времени, а затем разархивировать новую версию моего приложения, используя одно и то же имя папки. Используя Ant (move task), похоже, что вы можете перемещать содержимое из одной папки в другую.

Это единственный способ сделать это в Ant?

Ответ 1

Задача перемещения делает то, что вам нужно, но именование немного запутанно. Если вы считаете, что ваш каталог является "файлом" в смысле Java - файл является дескриптором файловой системы, который может представлять, среди прочего, каталог или файл в обычном смысле - тогда задача перемещения имеет смысл.

Итак, следующее

<move file="mySourceDirName" tofile="myTargetDirName"/>

означает переименование/перемещение каталога mySourceDirName вместо myTargetDirName.

Далее следует

<move file="mySourceDirName" todir="someExistingDir"/>

означает перемещение каталога mySourceDirName, чтобы стать дочерним каталогом существующего каталога someExistingDir.

Итак, в ant атрибут "file" относится к рассматриваемой цели, а атрибут "todir" относится к каталогу, который является новым родительским местоположением для целевого файла или каталога.

Ответ 2

Просто изложив уже предоставленный ответ, что правильно...

<project default="move">
    <tstamp/>
    <target name="move">
        <move file="foo" tofile="foo-${TSTAMP}"/>
    </target>
</project>

Это перемещает foo в foo-HHMM.

Например:

$ find .
.
./build.xml
./foo
./foo/bar.txt
$
$ ant
Buildfile: C:\tmp\ant\build.xml

move:

BUILD SUCCESSFUL
Total time: 0 seconds
$
$ find .
.
./build.xml
./foo-1145
./foo-1145/bar.txt
$

Ответ 3

Если вы хотите переименовать папку, вы можете использовать тег move, но есть загадочный способ его использования. Поскольку @phasmal сказал, что вы можете использовать move, но он перемещает папку в нужную папку. Если вы просто хотите переименовать, попробуйте следовать.

<move todir="newname">
   <fileset dir="directory tobe renamed "/>
</move>

Ответ 4

Я думаю, что задача перемещения - это то, что вы хотите. Есть ли причина, по которой вы не хотите ее использовать?

Похоже, вы предлагаете переместить папку, в которой живет ваш файл build.xml. Это правильно? Если это так, я полагаю, что ant может быть не слишком счастлив.