How do I fix 'Unexpected element "{}target" {antlib:org.apache.tools.ant}target' errors in my Ant build?

20,116

Solution 1

I can reproduce this problem by putting a target outside the project element that is required in ant build files. The error indicates that there is a fault in your build file - something (a target element) in the wrong place.

This build throws that error:

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

Whereas this does not:

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

In the full error message you should get a line number to guide you to the point in the file needing attention:

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

Solution 2

Surprinsingly, the apache foundation doesn't clearly express the namespace in which ant scripts are to be written. Yet it's an important XML concept...

However, the error message you get shows this namespace URI: antlib:org.apache.tools.ant

Although most of the time you don't need to bound the default namespace, this may help in your case:

<project xmlns='antlib:org.apache.tools.ant'>
  <!-- ... -->
</project>
Share:
20,116
TestUser
Author by

TestUser

Updated on August 16, 2020

Comments

  • TestUser
    TestUser over 3 years

    When I run my Ant build it fails with the following exception:

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

    I'm using Eclipse 3.4.2.

    Please let me know what I'm missing here.