Package org.gradle.api.tasks

## Class Sync

- java.lang.Object
- - org.gradle.api.internal.AbstractTask
  - - org.gradle.api.DefaultTask
    - - org.gradle.api.internal.ConventionTask
      - - org.gradle.api.tasks.AbstractCopyTask
        - - org.gradle.api.tasks.Sync

- All Implemented Interfaces:
    `java.lang.Comparable<Task>`, `ContentFilterable`, `CopyProcessingSpec`, `CopySourceSpec`, `CopySpec`, `org.gradle.api.internal.DynamicObjectAware`, `org.gradle.api.internal.file.copy.CopySpecSource`, `org.gradle.api.internal.IConventionAware`, `org.gradle.api.internal.TaskInternal`, `ExtensionAware`, `Task`, `PatternFilterable`, `Configurable<Task>`

      @DisableCachingByDefault(because="Not worth caching")
      public abstract class Sync
      extends AbstractCopyTask

  Synchronizes the contents of a destination directory with some source directories and files.

  This task is like the `Copy` task, except the destination directory will only contain the files copied. All files that exist in the destination directory will be deleted before copying files, unless a `preserve(Action)` is specified.

  Examples:

       // Sync can be used like a Copy task
       // See the Copy documentation for more examples
       task syncDependencies(type: Sync) {
           from 'my/shared/dependencyDir'
           into 'build/deps/compile'
       }

       // You can preserve output that already exists in the
       // destination directory. Files matching the preserve
       // filter will not be deleted.
       task sync(type: Sync) {
           from 'source'
           into 'dest'
           preserve {
               include 'extraDir/**'
               include 'dir1/**'
               exclude 'dir1/extra.txt'
           }
       }

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.gradle.api.Task

      `Task.Namer`

  - ### Field Summary

    - ### Fields inherited from interface org.gradle.api.Task

      `TASK_ACTION, TASK_CONSTRUCTOR_ARGS, TASK_DEPENDS_ON, TASK_DESCRIPTION, TASK_GROUP, TASK_NAME, TASK_OVERWRITE, TASK_TYPE`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Sync()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected org.gradle.api.internal.file.copy.CopyAction` | `createCopyAction()` |
    `protected org.gradle.api.internal.file.copy.CopySpecInternal` | `createRootSpec()` |
    `protected org.gradle.internal.file.Deleter` | `getDeleter()` |
    `java.io.File` | `getDestinationDir()` | Returns the directory to copy files into.
    `PatternFilterable` | `getPreserve()` | Returns the filter that defines which files to preserve in the destination directory.
    `org.gradle.api.internal.file.copy.DestinationRootCopySpec` | `getRootSpec()` |
    `Sync` | `preserve​(Action<? super PatternFilterable> action)` | Configures the filter that defines which files to preserve in the destination directory.
    `void` | `setDestinationDir​(java.io.File destinationDir)` | Sets the directory to copy files into.

    - ### Methods inherited from class org.gradle.api.tasks.AbstractCopyTask

      `copy, createCopyActionExecuter, eachFile, eachFile, exclude, exclude, exclude, exclude, expand, expand, filesMatching, filesMatching, filesNotMatching, filesNotMatching, filter, filter, filter, filter, from, from, from, getDirectoryFileTreeFactory, getDirMode, getDocumentationRegistry, getDuplicatesStrategy, getExcludes, getFileLookup, getFileMode, getFileResolver, getFileSystem, getFilteringCharset, getIncludeEmptyDirs, getIncludes, getInstantiator, getMainSpec, getObjectFactory, getSource, include, include, include, include, into, into, into, isCaseSensitive, rename, rename, rename, rename, setCaseSensitive, setDirMode, setDuplicatesStrategy, setExcludes, setFileMode, setFilteringCharset, setIncludeEmptyDirs, setIncludes, with`

    - ### Methods inherited from class org.gradle.api.internal.ConventionTask

      `conventionMapping, conventionMapping, getConventionMapping`

    - ### Methods inherited from class org.gradle.api.DefaultTask

      `compareTo, configure, dependsOn, doFirst, doFirst, doFirst, doLast, doLast, doLast, finalizedBy, getActions, getAnt, getDependsOn, getDescription, getDestroyables, getDidWork, getEnabled, getExtensions, getFinalizedBy, getGroup, getInputs, getLocalState, getLogger, getLogging, getMustRunAfter, getName, getOutputs, getPath, getProject, getShouldRunAfter, getState, getTaskDependencies, getTemporaryDir, getTimeout, hasProperty, mustRunAfter, onlyIf, onlyIf, onlyIf, property, setActions, setDependsOn, setDescription, setDidWork, setEnabled, setFinalizedBy, setGroup, setMustRunAfter, setOnlyIf, setOnlyIf, setOnlyIf, setProperty, setShouldRunAfter, shouldRunAfter, usesService`

    - ### Methods inherited from class org.gradle.api.internal.AbstractTask

      `appendParallelSafeAction, doNotTrackState, getAsDynamicObject, getConvention, getIdentityPath, getImpliesSubProjects, getLifecycleDependencies, getOnlyIf, getReasonNotToTrackState, getReasonTaskIsIncompatibleWithConfigurationCache, getRequiredServices, getServices, getSharedResources, getStandardOutputCapture, getTaskActions, getTaskIdentity, getTemporaryDirFactory, hasTaskActions, injectIntoNewInstance, isCompatibleWithConfigurationCache, isEnabled, isHasCustomActions, notCompatibleWithConfigurationCache, prependParallelSafeAction, setImpliesSubProjects`

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

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

    - ### Methods inherited from interface org.gradle.api.Task

      `doNotTrackState, getConvention, notCompatibleWithConfigurationCache`

- - ### Constructor Detail

    - #### Sync

          public Sync()

  - ### Method Detail

    - #### createCopyAction

          protected org.gradle.api.internal.file.copy.CopyAction createCopyAction()

      Specified by:
        `createCopyAction` in class `AbstractCopyTask`

    - #### createRootSpec

          protected org.gradle.api.internal.file.copy.CopySpecInternal createRootSpec()

      Overrides:
        `createRootSpec` in class `AbstractCopyTask`

    - #### getRootSpec

          public org.gradle.api.internal.file.copy.DestinationRootCopySpec getRootSpec()

      Specified by:
        `getRootSpec` in interface `org.gradle.api.internal.file.copy.CopySpecSource`
      Overrides:
        `getRootSpec` in class `AbstractCopyTask`

    - #### getDestinationDir

          @OutputDirectory
          public java.io.File getDestinationDir()

      Returns the directory to copy files into.
      Returns:
        The destination dir.

    - #### setDestinationDir

          public void setDestinationDir​(java.io.File destinationDir)

      Sets the directory to copy files into. This is the same as calling `AbstractCopyTask.into(Object)` on this task.
      Parameters:
        `destinationDir` - The destination directory. Must not be null.

    - #### getPreserve

          @Internal
          public PatternFilterable getPreserve()

      Returns the filter that defines which files to preserve in the destination directory.
      Returns:
        the filter defining the files to preserve
      See Also:
        `getDestinationDir()`

    - #### preserve

          public Sync preserve​(Action<? super PatternFilterable> action)

      Configures the filter that defines which files to preserve in the destination directory.
      Parameters:
        `action` - Action for configuring the preserve filter
      Returns:
        this
      See Also:
        `getDestinationDir()`

    - #### getDeleter

          @Inject
          protected org.gradle.internal.file.Deleter getDeleter()