ImportTask (Apache Ant API)
Date: 2018-07-10

org.apache.tools.ant.taskdefs

## Class ImportTask

- java.lang.Object
- - org.apache.tools.ant.ProjectComponent
  - - org.apache.tools.ant.Task
    - - org.apache.tools.ant.taskdefs.ImportTask

- All Implemented Interfaces:
    java.lang.Cloneable

      public class ImportTask
      extends Task

  Task to import another build file into the current project.

  It must be 'top level'. On execution it will read another Ant file into the same Project.

  Important: Trying to understand how relative file references resolved in deep/complex build hierarchies - such as what happens when an imported file imports another file can be difficult. Use absolute references for enhanced build file stability, especially in the imported files.

  Examples:

       <import file="../common-targets.xml"/>

  Import targets from a file in a parent directory.

       <import file="${deploy-platform}.xml"/>

  Import the project defined by the property `deploy-platform`.

  Since:
    Ant1.6

- - ### 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 and Description
    `ImportTask()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(ResourceCollection r)` The resource to import.
    `void` | `execute()` Called by the project to let the task do its work.
    `protected boolean` | `isInIncludeMode()` Whether the task is in include (as opposed to import) mode.
    `void` | `setAs(java.lang.String prefix)` The prefix to use when prefixing the imported target names.
    `void` | `setFile(java.lang.String file)` the name of the file to import.
    `void` | `setOptional(boolean optional)` sets the optional attribute
    `void` | `setPrefixSeparator(java.lang.String s)` The separator to use between prefix and target name, default is ".".

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

      `bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, 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 Detail

    - #### ImportTask

          public ImportTask()

  - ### Method Detail

    - #### setOptional

          public void setOptional(boolean optional)

      sets the optional attribute
      Parameters:
        `optional` - if true ignore files that are not present, default is false

    - #### setFile

          public void setFile(java.lang.String file)

      the name of the file to import. How relative paths are resolved is still in flux: use absolute paths for safety.
      Parameters:
        `file` - the name of the file

    - #### setAs

          public void setAs(java.lang.String prefix)

      The prefix to use when prefixing the imported target names.
      Parameters:
        `prefix` - String
      Since:
        Ant 1.8.0

    - #### setPrefixSeparator

          public void setPrefixSeparator(java.lang.String s)

      The separator to use between prefix and target name, default is ".".
      Parameters:
        `s` - String
      Since:
        Ant 1.8.0

    - #### add

          public void add(ResourceCollection r)

      The resource to import.
      Parameters:
        `r` - ResourceCollection
      Since:
        Ant 1.8.0

    - #### execute

          public void execute()

      Description copied from class: `Task`
      Called by the project to let the task do its work. This method may be called more than once, if the task is invoked more than once. For example, if target1 and target2 both depend on target3, then running "ant target1 target2" will run all tasks in target3 twice.
      Overrides:
        `execute` in class `Task`

    - #### isInIncludeMode

          protected final boolean isInIncludeMode()

      Whether the task is in include (as opposed to import) mode.

      In include mode included targets are only known by their prefixed names and their depends lists get rewritten so that all dependencies get the prefix as well.

      In import mode imported targets are known by an adorned as well as a prefixed name and the unadorned target may be overwritten in the importing build file. The depends list of the imported targets is not modified at all.

      Returns:
        boolean
      Since:
        Ant 1.8.0