# Ant Tasks

###### Identifier:

org.eclipse.ant.core.antTasks

###### Description:

Allows plug-ins to define arbitrary Ant tasks for use by the Ant infrastructure. The standard Ant infrastructure allows for the addition of arbitrary tasks. Unfortunately, it is unlikely that the Ant Core plug-in would have the classes required by these tasks on its classpath (or that of any of its prerequisites). To address this, clients should define an extension which plugs into this extension-point and maps a task name onto a class. The Ant plug-in can then request that the declaring plug-in load the specified class.

###### Configuration Markup:

<!ELEMENT extension (antTask*)>

<!ATTLIST extension

point CDATA #REQUIRED

id CDATA #IMPLIED

name CDATA #IMPLIED>

- point - a fully qualified identifier of the target extension point
- id - an optional identifier of the extension instance
- name - an optional name of the extension instance

<!ELEMENT antTask EMPTY>

<!ATTLIST antTask

name CDATA #REQUIRED

uri CDATA #IMPLIED

class CDATA #REQUIRED

library CDATA #REQUIRED

headless (true | false)

eclipseRuntime (true | false) >

- name - name of the task to be defined
- uri - The uri that this definition should live in. Only used if using Ant newer than 1.6.
- class - the fully qualified name of a Java class implementing the task. Generally this class must be a subclass of `org.apache.tools.ant.Task`.
- library - a path relative to the plug-in install location for the library containing the task.
- headless - indicates whether this task is suitable for use in a "headless" Ant environment. If running headless and the attribute is "false", the task will not be loaded or defined. As well, the plugin class loader will not be added as a parent classloader to the Ant classloader. The implied value is true, when not specified.
- eclipseRuntime - indicates whether this task requires an Eclipse runtime (i.e. must be run in the same VM as Eclipse). The implied value is true, when not specified.

###### Examples:

The following is an example of an Ant tasks extension point:

       <extension point="org.eclipse.ant.core.antTasks">
          <antTask name="coolTask" class="com.example.CoolTask" library="lib/antSupport.jar"/>
       </extension>

In the above example the `antSupport.jar` must be created using an Ant project builder. For more information about creating project builders and how they work, please refer to the following help topics: Contributing tasks and types, Ant buildfiles as project builders and Creating a project builder Ant buildfile

###### Supplied Implementation:

The platform itself supplies a number of tasks including eclipse.incrementalBuild and eclipse.refreshLocal.

Copyright (c) 2000, 2011 IBM Corporation and others.
This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which accompanies this distribution, and is available at https://www.eclipse.org/legal/epl-v20.html/ SPDX-License-Identifier: EPL-2.0