Я использовал copydirдля копирования дерева каталогов, но он устарел. Мой каталог содержит некоторые подкаталоги, некоторые из них содержат файлы, а другие содержат дополнительные подкаталоги.
Похоже, вы хотите сделать рекурсивную копию. И это решение, которое дал Omnipresent. Больше людей могут найти этот вопрос, если в нем появилось слово «рекурсивный».
очевидно, в includesэтом нет необходимости, когда вам нужно все (см. ответ пользователя s1n )
Абель
40
Это копирует содержимое {src.dir}, но не фактический каталог
cmcginty
Копии не сделал, но это содержание.
A-Live
Поскольку вы являетесь принятым ответом, вы можете исправить его, чтобы он стал правильным (ответ правильный) ;-)
Кристиан Фрайс
Я так понимаю, идея SO - это коллективное курирование, поэтому каждый может редактировать чужой вопрос (хотя вам нужно много репутации, чтобы пропустить обзор редактирования).
это должен быть ПРАВИЛЬНЫЙ ответ. Другой ответ - на вопрос «Как скопировать содержимое каталога с помощью Ant». Есть небольшая разница.
cmcginty
«это должен быть ПРАВИЛЬНЫЙ ответ»: Абсолютно, хотя разница не так уж и незаметна, когда вы не можете загрузить свои ресурсы с ожидаемыми именами пути.
Джим Пиварски
1
для муравья 1.8 не работает, вроде ничего не вышло.
CCC
8
@CCC обеспечить $ {src.dir} является по отношению к $ {src.dir.parent}, а не полный путь
Майк Деменок
очень вводит в заблуждение , как x.parentпредполагается, НЕ БУДЬТЕ parentиз x... -_-
nonchip
25
Вам нужно только указать каталог (без свойства includes):
Замечание: ant будет копировать подкаталоги только в том случае, если исходные файлы новее, чем файлы назначения. [1] В моем случае подкаталоги не копировались (я использую verbose = "true"), так как изменений не было и они уже были в месте назначения. Вы можете использовать "перезапись", чтобы заставить его, или коснуться некоторых файлов в ваших исходных подкаталогах.
Еще одна задача для муравьев - Copydir . Ключевой частью здесь является включение имени каталога, который вы хотите скопировать, после каталога назначения. Подкаталоги и файлы будут скопированы автоматически.
Ответы:
верю, что сделает то, что вы хотите ... (Рекурсивная копия сделана)
источник
includes
этом нет необходимости, когда вам нужно все (см. ответ пользователя s1n )Скопируйте содержимое, включая сам каталог.
Примечание: $ {src.dir} относится к $ {src.dir.parent}, а не к полному пути
источник
x.parent
предполагается, НЕ БУДЬТЕparent
изx
... -_-Вам нужно только указать каталог (без свойства includes):
Смотрите руководство для более подробной информации и примеров.
источник
Скопируйте содержимое, включая сам каталог.
источник
Замечание: ant будет копировать подкаталоги только в том случае, если исходные файлы новее, чем файлы назначения. [1] В моем случае подкаталоги не копировались (я использую verbose = "true"), так как изменений не было и они уже были в месте назначения. Вы можете использовать "перезапись", чтобы заставить его, или коснуться некоторых файлов в ваших исходных подкаталогах.
источник
Я использовал теги include, как показано во фрагменте кода ниже в моем файле build.xml, чтобы скопировать отдельные файлы jar внутри каталога.
источник
Из приведенного здесь примера вы можете написать простой файл Ant с помощью задачи копирования.
Это должно скопировать все внутри
src_dir
(кроме него) вnew/dir
.источник
Я добавляю более общий шаблон для копирования всех вложенных папок.
См. Подробности в шаблонах .
источник
Еще одна задача для муравьев - Copydir . Ключевой частью здесь является включение имени каталога, который вы хотите скопировать, после каталога назначения. Подкаталоги и файлы будут скопированы автоматически.
источник
Этот код должен копировать папку, а также ее содержимое. Он также использует задачу базового имени, чтобы избежать ручного анализа пути.
источник
Я наконец скопировал, используя следующий код
Это скопирует папку src из dist в build.
Надеюсь, это кому-то поможет.
источник