Package org.apache.tools.ant.taskdefs

# Class Ant

java.lang.Object
org.apache.tools.ant.ProjectComponent
org.apache.tools.ant.Task
org.apache.tools.ant.taskdefs.Ant

All Implemented Interfaces:
  `Cloneable`

public class Ant extends Task
Build a sub-project.

      <target name="foo" depends="init">
        <ant antfile="build.xml" target="bar" >
          <property name="property1" value="aaaaa" />
          <property name="foo" value="baz" />
        </ant>
      </target>

      <target name="bar" depends="init">
        <echo message="prop is ${property1} ${foo}" />
      </target>

Since:
  Ant 1.1

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `Ant.Reference`
  Helper class that implements the nested <reference> element of <ant> and <antcall>.
  `static class`
  `Ant.TargetElement`
  Helper class that implements the nested <target> element of <ant> and <antcall>.

- ## Field Summary

  ### Fields inherited from class org.apache.tools.ant.Task

  `target, taskName, taskType, wrapper`

  ### Fields inherited from class org.apache.tools.ant.ProjectComponent

  `description, location, project`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Ant()`
  simple constructor
  `Ant(Task owner)`
  create a task bound to its creator

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addConfiguredTarget(Ant.TargetElement t)`
  Add a target to this Ant invocation.
  `void`
  `addPropertyset(PropertySet ps)`
  Add a set of properties to pass to the new project.
  `void`
  `addReference(Ant.Reference ref)`
  Add a Reference element identifying a data type to carry over to the new project.
  `Property`
  `createProperty()`
  Property to pass to the new project.
  `void`
  `execute()`
  Do the execution.
  `protected String`
  `getDefaultBuildFile()`
  Get the default build file name to use when launching the task.
  `protected Project`
  `getNewProject()`
  Get the (sub)-Project instance currently in use.
  `void`
  `handleErrorFlush(String errorOutputToFlush)`
  Handle error output.
  `void`
  `handleErrorOutput(String errorOutputToHandle)`
  Handle error output.
  `void`
  `handleFlush(String toFlush)`
  Handles output.
  `int`
  `handleInput(byte[] buffer, int offset, int length)`
  Handles input.
  `void`
  `handleOutput(String outputToHandle)`
  Handles output.
  `void`
  `init()`
  Creates a Project instance for the project to call.
  `void`
  `setAntfile(String antFile)`
  The build file to use.
  `void`
  `setDir(File dir)`
  The directory to use as a base directory for the new Ant project.
  `void`
  `setInheritAll(boolean value)`
  If true, pass all properties to the new Ant project.
  `void`
  `setInheritRefs(boolean value)`
  If true, pass all references to the new Ant project.
  `void`
  `setOutput(String outputFile)`
  Set the filename to write the output to.
  `void`
  `setTarget(String targetToAdd)`
  The target of the new Ant project to execute.
  `void`
  `setUseNativeBasedir(boolean b)`
  Whether the basedir of the new project should be the same one as it would be when running the build file directly - independent of dir and/or inheritAll settings.

  ### Methods inherited from class org.apache.tools.ant.Task

  `bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType`

  ### Methods inherited from class org.apache.tools.ant.ProjectComponent

  `clone, getDescription, getLocation, getProject, setDescription, setLocation, setProject`

  ### Methods inherited from class java.lang.Object

  `equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### Ant

    public Ant()
    simple constructor

  - ### Ant

    public Ant(Task owner)
    create a task bound to its creator
    Parameters:
      `owner` - owning task

- ## Method Details

  - ### setUseNativeBasedir

    public void setUseNativeBasedir(boolean b)
    Whether the basedir of the new project should be the same one as it would be when running the build file directly - independent of dir and/or inheritAll settings.
    Parameters:
      `b` - boolean
    Since:
      Ant 1.8.0

  - ### setInheritAll

    public void setInheritAll(boolean value)
    If true, pass all properties to the new Ant project. Defaults to true.
    Parameters:
      `value` - if true pass all properties to the new Ant project.

  - ### setInheritRefs

    public void setInheritRefs(boolean value)
    If true, pass all references to the new Ant project. Defaults to false.
    Parameters:
      `value` - if true, pass all references to the new Ant project

  - ### init

    public void init()
    Creates a Project instance for the project to call.
    Overrides:
      `init` in class `Task`

  - ### handleOutput

    public void handleOutput(String outputToHandle)
    Handles output. Send it the the new project if is present, otherwise call the super class.
    Overrides:
      `handleOutput` in class `Task`
    Parameters:
      `outputToHandle` - The string output to output.
    Since:
      Ant 1.5
    See Also:
      - `Task.handleOutput(String)`

  - ### handleInput

    public int handleInput(byte[] buffer, int offset, int length) throws IOException
    Handles input. Delegate to the created project, if present, otherwise call the super class.
    Overrides:
      `handleInput` in class `Task`
    Parameters:
      `buffer` - the buffer into which data is to be read.
      `offset` - the offset into the buffer at which data is stored.
      `length` - the amount of data to read.
    Returns:
      the number of bytes read.
    Throws:
      `IOException` - if the data cannot be read.
    Since:
      Ant 1.6
    See Also:
      - `Task.handleInput(byte[], int, int)`

  - ### handleFlush

    public void handleFlush(String toFlush)
    Handles output. Send it the the new project if is present, otherwise call the super class.
    Overrides:
      `handleFlush` in class `Task`
    Parameters:
      `toFlush` - The string to output.
    Since:
      Ant 1.5.2
    See Also:
      - `Task.handleFlush(String)`

  - ### handleErrorOutput

    public void handleErrorOutput(String errorOutputToHandle)
    Handle error output. Send it the the new project if is present, otherwise call the super class.
    Overrides:
      `handleErrorOutput` in class `Task`
    Parameters:
      `errorOutputToHandle` - The string to output.
    Since:
      Ant 1.5
    See Also:
      - `Task.handleErrorOutput(String)`

  - ### handleErrorFlush

    public void handleErrorFlush(String errorOutputToFlush)
    Handle error output. Send it the the new project if is present, otherwise call the super class.
    Overrides:
      `handleErrorFlush` in class `Task`
    Parameters:
      `errorOutputToFlush` - The string to output.
    Since:
      Ant 1.5.2
    See Also:
      - `Task.handleErrorFlush(String)`

  - ### execute

    public void execute() throws BuildException
    Do the execution.
    Overrides:
      `execute` in class `Task`
    Throws:
      `BuildException` - if a target tries to call itself; probably also if a BuildException is thrown by the new project.

  - ### getDefaultBuildFile

    protected String getDefaultBuildFile()
    Get the default build file name to use when launching the task.

    This function may be overridden by providers of custom ProjectHelper so they can easily implement their sublauncher.

    Returns:
      the name of the default file
    Since:
      Ant 1.8.0

  - ### setDir

    public void setDir(File dir)
    The directory to use as a base directory for the new Ant project. Defaults to the current project's basedir, unless inheritall has been set to false, in which case it doesn't have a default value. This will override the basedir setting of the called project.
    Parameters:
      `dir` - new directory as `File`.

  - ### setAntfile

    public void setAntfile(String antFile)
    The build file to use. Defaults to "build.xml". This file is expected to be a filename relative to the dir attribute given.
    Parameters:
      `antFile` - the `String` build file name.

  - ### setTarget

    public void setTarget(String targetToAdd)
    The target of the new Ant project to execute. Defaults to the new project's default target.
    Parameters:
      `targetToAdd` - the name of the target to invoke.

  - ### setOutput

    public void setOutput(String outputFile)
    Set the filename to write the output to. This is relative to the value of the dir attribute if it has been set or to the base directory of the current project otherwise.
    Parameters:
      `outputFile` - the name of the file to which the output should go.

  - ### createProperty

    public Property createProperty()
    Property to pass to the new project. The property is passed as a 'user property'.
    Returns:
      the created `Property` object.

  - ### addReference

    public void addReference(Ant.Reference ref)
    Add a Reference element identifying a data type to carry over to the new project.
    Parameters:
      `ref` - `Reference` to add.

  - ### addConfiguredTarget

    public void addConfiguredTarget(Ant.TargetElement t)
    Add a target to this Ant invocation.
    Parameters:
      `t` - the `TargetElement` to add.
    Since:
      Ant 1.6.3

  - ### addPropertyset

    public void addPropertyset(PropertySet ps)
    Add a set of properties to pass to the new project.
    Parameters:
      `ps` - `PropertySet` to add.
    Since:
      Ant 1.6

  - ### getNewProject

    protected Project getNewProject()
    Get the (sub)-Project instance currently in use.
    Returns:
      Project
    Since:
      Ant 1.7