Apache Ant удаляет каталоги независимо от того, что - PullRequest
2 голосов
/ 09 июля 2010

Как мне заставить Apache Ant удалить каталог, несмотря ни на что.Я хочу, чтобы он был удален, даже если в Windows есть блокировки или использование каталога.

Я использую удаленный агент с непрерывной интеграцией на компьютере Windows, который не может удалить каталог сборки и в результате этогостроить.Это очень раздражает и подрывает статистику.

Нет активного использования каталога, и антивирус отключен.

Я просто хочу удалить каталог, несмотря ни на что.Как мне добиться этого в Windows с помощью Apache Ant?

Ответы [ 2 ]

1 голос
/ 10 июля 2010

Я думаю, вам понадобится внешняя программа для этого.проверьте это: _ http://www.codeguru.com/cpp/w-p/files/fileio/article.php/c1287

здесь у вас есть сравнение инструментов разблокировки. Проверьте это с помощью интерфейса командной строки: _ http://ccollomb.free.fr/unlocker/

Если вы знаете, какой процесс удерживает вашу папку, вы можете просто вызвать taskkill ...(вы даже можете убить explorer.exe, но вы можете запустить его снова), и если ваша папка открыта для общего доступа, вы можете использовать команду net delete

0 голосов
/ 19 июля 2018

Лучшее, что вы можете сделать в Ant, - это установить параметры: quiet="true" и includeemptydirs="true", чтобы предотвратить остановку сборки при отсутствии каталога или при наличии блокировки, и удалить каталог верхнего уровня, даже если он пустой. Например:

<delete quiet="true" includeEmptyDirs="true">
  <fileset dir="stubbornDir"/>
</delete>

Вы также можете убедиться, что ресурсы, которые вы пытаетесь удалить, не предназначены только для чтения, поэтому перед выполнением задачи <delete> включите что-то вроде этого:

    <!-- The following only works on UNIX -->
    <chmod perm="a+w">
        <fileset dir="${dist.dir}">
            <include name="**/*.jar"/>
            <exclude name="${app.context.path}"/>
        </fileset>  
    </chmod>

    <!-- Win NT alternative -->
    <echo message="      To permit file deletion, execute attrib.exe to change read permissions on:  ${dist.dir}"/>
    <exec dir="${dist.dir}" executable="attrib.exe" os="Windows NT,Windows 2000,Windows XP">
        <arg line="-R **/*.jar"/>
    </exec>

Но, чтобы ответить на ваш вопрос, боюсь, с помощью Ant невозможно удалить файлы или каталоги при наличии блокировки.

Однако, имейте в виду, что если вы ранее использовали задачу <javac> в своем скрипте, то, если вы не установили fork="true", задача заблокирует все файлы в вашем пути к классам и сохранит их заблокированными в течение всего вашего строить.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...