Sync (Apache Ant API)
Date: 2016-04-24

org.apache.tools.ant.taskdefs

## Class Sync

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

- All Implemented Interfaces:
    java.lang.Cloneable

      public class Sync
      extends Task

  Synchronize a local target directory from the files defined in one or more filesets.

  Uses a <copy> task internally, but forbidding the use of mappers and filter chains. Files of the destination directory not present in any of the source fileset are removed.

  Since:
    Ant 1.6 revised by Dan Armbrust to remove orphaned directories.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `Sync.MyCopy` Subclass Copy in order to access it's file/dir maps.
    `static class` | `Sync.SyncTarget` Inner class used to hold exclude patterns and selectors to save stuff that happens to live in the target directory but should not get removed.

  - ### 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
    `Sync()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(ResourceCollection rc)` Adds a collection of filesystem resources to copy.
    `void` | `addFileset(FileSet set)` Adds a set of files to copy.
    `void` | `addPreserveInTarget(Sync.SyncTarget s)` A container for patterns and selectors that can be used to specify files that should be kept in the target even if they are not present in any source directory.
    `void` | `execute()` Execute the sync task.
    `void` | `init()` Initialize the sync task.
    `void` | `setFailOnError(boolean failonerror)` If false, note errors to the output but keep going.
    `void` | `setGranularity(long granularity)` The number of milliseconds leeway to give before deciding a target is out of date.
    `void` | `setIncludeEmptyDirs(boolean includeEmpty)` Used to copy empty directories.
    `void` | `setOverwrite(boolean overwrite)` Overwrite any existing destination file(s).
    `void` | `setTodir(java.io.File destDir)` Sets the destination directory.
    `void` | `setVerbose(boolean verbose)` Used to force listing of all names of copied files.

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

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

    - #### Sync

          public Sync()

  - ### Method Detail

    - #### init

          public void init()
                    throws BuildException

      Initialize the sync task.
      Overrides:
        `init` in class `Task`
      Throws:
        `BuildException` - if there is a problem.
      See Also:
        `Task.init()`

    - #### execute

          public void execute()
                       throws BuildException

      Execute the sync task.
      Overrides:
        `execute` in class `Task`
      Throws:
        `BuildException` - if there is an error.
      See Also:
        `Task.execute()`

    - #### setTodir

          public void setTodir(java.io.File destDir)

      Sets the destination directory.
      Parameters:
        `destDir` - the destination directory

    - #### setVerbose

          public void setVerbose(boolean verbose)

      Used to force listing of all names of copied files.
      Parameters:
        `verbose` - if true force listing of all names of copied files.

    - #### setOverwrite

          public void setOverwrite(boolean overwrite)

      Overwrite any existing destination file(s).
      Parameters:
        `overwrite` - if true overwrite any existing destination file(s).

    - #### setIncludeEmptyDirs

          public void setIncludeEmptyDirs(boolean includeEmpty)

      Used to copy empty directories.
      Parameters:
        `includeEmpty` - If true copy empty directories.

    - #### setFailOnError

          public void setFailOnError(boolean failonerror)

      If false, note errors to the output but keep going.
      Parameters:
        `failonerror` - true or false

    - #### addFileset

          public void addFileset(FileSet set)

      Adds a set of files to copy.
      Parameters:
        `set` - a fileset

    - #### add

          public void add(ResourceCollection rc)

      Adds a collection of filesystem resources to copy.
      Parameters:
        `rc` - a resource collection
      Since:
        Ant 1.7

    - #### setGranularity

          public void setGranularity(long granularity)

      The number of milliseconds leeway to give before deciding a target is out of date.

      Default is 0 milliseconds, or 2 seconds on DOS systems.

      Parameters:
        `granularity` - a `long` value
      Since:
        Ant 1.6.2

    - #### addPreserveInTarget

          public void addPreserveInTarget(Sync.SyncTarget s)

      A container for patterns and selectors that can be used to specify files that should be kept in the target even if they are not present in any source directory.

      You must not invoke this method more than once.

      Parameters:
        `s` - a preserveintarget nested element
      Since:
        Ant 1.7