У меня есть исходный каталог, содержащий некоторые обновления файлов, которые мне нужно скопировать в каталог моего веб-приложения. Прежде чем копировать файлы на место, мне нужно сделать резервную копию каждого оригинала, который будет переписан в резервную копию. Я не могу создать резервную копию всего веб-приложения в резервном месте, так как это будет 00 файлов. Мне нужно сохранить структуру дирижабля (без сплющивания) & все 3 местоположения имеют одинаковую структуру.Файлы резервных копий Ant до копирования
Моя настоящая идея - сделать это в 2 этапа. Затем резервное копирование обновится. Обновление тривиально (скопируйте набор файлов &). Резервное копирование вызывает проблемы, поскольку я только хочу создать резервную копию файлов, которые будут обновляться.
Ниже приведена моя текущая итерация (которая не работает) ... Используйте копию с todir в качестве места для резервного копирования, а затем установите набор файлов, который ищет исходные файлы, поэтому у меня есть набор сменных файлов. Очевидно, что мне нужно изменить пути файлов, возвращаемых набором файлов, чтобы они ссылались на существующие файлы, а не на новые &, где я застрял. Кто-нибудь знает, как изменить пути файлов, возвращаемых набором файлов? Я использую pathconvert ниже, который, как я знаю, ошибочен, но я оставил его, чтобы показать преобразование, которое мне нужно - кто-нибудь знает, как это сделать? Или лучший способ, может быть!
${backup.dir} --> root of file backup
${console.war} --> location of existing files - the top of the application dir
${update.dir} --> root of updated files
<copy todir="${backup.dir}/app/console.war">
<fileset dir="${update.dir}/app/console.war" includes="**" id="id.update.files"/>
<pathconvert refid="id.update.files" property="custom.file.target">
<map from="${update.dir}/app/console.war" to="${console.war}"/>
</pathconvert>
</copy>
Может быть, вы должны использовать такой инструмент, как Rsync, который предназначен для синхронизации файлов и делать резервные копии. Если вы все еще хотите, чтобы все было проверено в сценарии Ant, вы можете просто использовать задачу 'exec' для вызова rsync для выполнения резервных копий перед копированием по обновленным файлам. Если вы отрицательно относитесь к использованию rsync, посмотрите на задачу 'sync' для выполнения резервного копирования перед выполнением обновления. – ewh