Как скопировать разные файлы из 2 папок в новое место с помощью ant - PullRequest
0 голосов
/ 10 февраля 2012

Есть две папки A и B. Мне нужно скопировать разные файлы между A и B в третью папку C. Как я могу это сделать? Существует разностная коллекция в ant, но как использовать ее в копии? Спасибо за любую идею.

1 Ответ

0 голосов
/ 11 февраля 2012

Следующий скрипт ANT будет копировать только те файлы, которых нет в обоих каталогах:

<project name="copy" default="copy-files">

    <target name="copy-files">
        <copy todir="C" verbose="true" overwrite="true">
            <fileset dir="A">
                <present present="srconly" targetdir="B"/>
            </fileset>
            <fileset dir="B">
                <present present="srconly" targetdir="A"/>
            </fileset>
        </copy>
    </target>

</project>

Тестовая настройка:

$ tree
.
|-- A
|   |-- one
|   |-- shared
|   `-- two
|-- B
|   |-- four
|   |-- shared
|   `-- three
`-- build.xml

Запуск сборки демонстрирует, что файлы с именем «shared» не копируются:

$ ant
Buildfile: build.xml

copy-files:
     [copy] Copying 4 files to C
     [copy] Copying A/one to C/one
     [copy] Copying A/two to C/two
     [copy] Copying B/four to four
     [copy] Copying B/three to three

BUILD SUCCESSFUL
Total time: 0 seconds
...