## componentdef

### Description

Adds a component definition to the current project. A component definition is the same as a typedef except:

1. that it can only be used in other types or tasks that accept components (by having an add() method).
2. multiple components may have the same name, provided they implement different interfaces.

The purpose of this is to allow internal Apache Ant definitions to be made for tags like "and" or "or".

### Examples

     <componentdef name="or" onerror="ignore"
        classname="com.apache.tools.ant.taskdefs.conditions.Or"/>
      <componentdef name="or" onerror="ignore"
        classname="com.apache.tools.ant.types.resources.selectors.Or"/>

defines two components with the same name "or"; one is a condition (see conditions) and one is a selector (see selectors).