2014-01-15 5 views
2

У меня есть xml-скрипт для создания проекта из этой структуры.ANT build.xml удалить задание каталога не работает

  • ЦСИ
    • SRC файлы и пакет SUBDIRS
  • RSRC
    • build.xml

После сборки из папки Src есть сборки и папка lib, созданная в rsrc

  • ЦСИ
    • SRC файлы и пакет SUBDIRS
  • Rsrc
    • сборки
      • пакет SUBDIRS
    • Lib
    • build.xml

После того как все работало, папка сборки заполняется .class файлов, в их пакете подкаталоги. В папке lib у дистрибутива .jar есть свое место. Теперь к моей проблеме я написал эту цель с именем = «чистым»:

<target name="clean" 
     description="clean up" > 
     <!-- Delete the ${build} directory tree --> 
     <delete dir="${build}"/> 
    </target> 

Что следует удалить папку сборки, вложенные папки и их содержимое. в $ Сложение определяется как:

<property name="build" location="build"/> 

и базовый каталог как BASEDIR = ""

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

С наилучшими пожеланиями Стефан (Если вам нужна дополнительная информация просто спросите пожалуйста)

EDIT: Если я называю его «муравей -v чистый» файл сборки удаляется .. если я вызываю с «муравей» или "ant -verbose" его нет.

+1

Попробуйте запустить «ant -v clean». Это покажет вам именно то, что Ant пытается удалить. (И игнорируйте ответы, которые рекомендуют использовать $ {basedir}/build - они, по-видимому, не знают, что относительные пути в Ant уже рассматриваются как относительные к основанию.) – VGR

+0

, если вы разместите это как ответ, вы мой главный голосующий :) большое спасибо –

ответ

2

Попробуйте работать с ant -v clean. Это покажет вам именно то, что Ant пытается удалить. (И игнорировать ответы, которые рекомендуют использовать $ {BASEDIR}/наращивание они, видимо, не знают, что относительные пути в Ant уже относительно BASEDIR.)

+0

, очевидно, это только удаление папки, если ant -v clean выполняется .. с antververose или просто ant папка все еще существует –

+0

Произошла ошибка .. вместо чистки это была процедура раньше. Но ваше решение помогло мне решить эту проблему –

1

Используйте свойство, как показано ниже.

<property name="build" value="${basedir}/build"/> 
+0

проблема по-прежнему сохраняется .. без ошибок просто BUILD Successfull и папка остается там, где была создана :( –

+0

также попытался: <удалить dir = "$ {basedir}/build" /> –

1

Попробуйте вместо этого использовать $ {basedir}. Это укажет на родительский каталог файла сборки. Также обычным способом организации папок является наличие вашего файла build.xml в папке сборки и вывод из сборки в сборке/выпуске.

+0

$ {basedir} вместо .. ? –

+0

Для ссылки на текущий каталог. Поэтому вы бы использовали «$ {basedir}/build» для каталога сборки в этом случае. Но я видел в вашем другом комментарии, что он не работает. Возможно, это проблема разрешения, попробуйте запустить Ant как задача администратора. Кроме того, убедитесь, что файл не заблокирован каким-либо другим заданием Ant. –

+0

Также рассматривается как задача администратора. Есть ли способ обойти скрипт xml в некотором смысле. Пробовал ant -verbose но никаких ошибок или предупреждений, но также не упоминается процедура удаления –

1

Возможно, вы забыли назвать цель «чистой»?

Попробуйте выполнить свой муравей с флагом -v, чтобы мы могли видеть, что выходной муравей генерирует, чтобы увидеть, выполняется ли цель.

Чтобы узнать, подходит ли каталог, вы можете добавить в цель <echo message="${build}"/> (http://ant.apache.org/manual/Tasks/echo.html), чтобы проверить абсолютный путь к каталогу.

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

+0

Stefan, вы пытались добавить эхо? С помощью этой задачи эха вы можете проверить, выполняется ли цель и какой абсолютный путь вы пытаетесь удалить. – dbermudez

0

сделать <target name="clean"> зависят от инициализации

<target name="init" depends="clean"> 
     code 
    </target> 
Смежные вопросы