Я работаю над большим скриптом Ant (> 1000 строк), который я унаследовал от кого-то еще (больше не доступен). У меня проблемы с Ant, не удаляя каталоги. В какой-то момент в скрипте он работает, а в другом - нет: Ant не дает сообщение об ошибке, но он также оставляет каталоги там, где они есть.Ant удаляет первые работы, а не
Я положил некоторые заводной вокруг него, чтобы проверить наличие каталогов:
<groovy>
println("Directories in @{outFolder} are:")
new File("@{outFolder}").eachDir() { dir -> println dir.getName() }
</groovy>
<delete verbose="true" includeEmptyDirs="true" >
<dirset dir="@{outFolder}" includes="**/*" />
</delete>
<echo>End of delete</echo>
<groovy>
println("Directories in @{outFolder} are:")
new File("@{outFolder}").eachDir() { dir -> println dir.getName() }
</groovy>
Таким образом, линии вызываются и они работают. Затем вызывается другое приложение, которое создает новые каталоги. Снова повторяются те же строки (копирование и вставка, и да, они равны), но теперь каталоги не удаляются. Также: нет ошибки, Ant продолжает работать. Я использую Ant 1.8.1 для Windows Server 2008 R2. Я попытался добавить сон, чтобы предотвратить проблемы с блокировкой. Приложение, которое создает каталоги, представляет собой приложение Java (Tibco appManage). Каталоги содержат файлы XML, без файлов jar. Я проверил ANT_HOME и CLASSPATH: никаких проблем нет. Что я пропущу?
Для умных ослов: конечно, второе удаление не должно удалять все, что было создано приложением, но для устранения проблемы я сделал строки сценария максимально простыми.
Дополнительная информация: поскольку я не могу получить работу с удалением, я попытался использовать перемещение Ant, как обход. Это то, что я вижу: перемещение создает пустые каталоги в месте назначения, не удаляет файлы или каталоги из источника и не сообщает об ошибке. Кажется, что что-то не так с этими исходными каталогами/файлами (которые я пытался удалить раньше).
Другая попытка: загрузить последние версии Ant и Groovy. Те же результаты.
Windows? Linux? Mac? –
Просто добавила ОС в исходное сообщение: Windows Server 2008 R2 –