Как исправить ошибки "Неожиданный элемент" {} target "{antlib: org.apache.tools.ant} в моей сборке Ant?

Когда я запускаю свою конструкцию Ant, она терпит неудачу со следующим исключением:

Unexpected element "{}target" {antlib:org.apache.tools.ant}target

Я использую Eclipse 3.4.2.

Пожалуйста, дайте мне знать, что мне здесь не хватает.

Ответ 1

Я могу воспроизвести эту проблему, поставив target вне элемента project, который требуется в файлах сборки ant. Ошибка указывает, что в вашем файле сборки есть ошибка - что-то (элемент target) в неправильном месте.

Эта сборка выдает эту ошибку:

<?xml version="1.0"?>
    <target name="wibble" />
<project name="stack_overflow">
</project>

Если это не так:

<?xml version="1.0"?>
<project name="stack_overflow">
    <target name="wibble" />
</project>

В полном сообщении об ошибке вы должны получить номер строки, чтобы вести вас к точке в файле, требующем внимания:

#   line number here
#         v
build.xml:2: Unexpected element "{}target" {antlib:org.apache.tools.ant}target

Ответ 2

Сущностью, основа Apache явно не выражает пространство имен, в котором должны быть написаны сценарии ant. Тем не менее это важная концепция XML...

Однако сообщение об ошибке, которое вы видите, показывает это URI пространства имен: antlib: org.apache.tools.ant

Хотя большую часть времени вам не нужно связывать пространство имен по умолчанию, это может помочь в вашем случае:

<project xmlns='antlib:org.apache.tools.ant'>
  <!-- ... -->
</project>