# 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:
  `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, org.gradle.util.Configurable<Task>`

public 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 Task

`Task.Namer`

## Field Summary

### Fields inherited from interface Task

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

## Constructor Summary

Constructors
Constructor
Description
`Sync()`

## Method Summary

Modifier and Type
Method
Description
`protected org.gradle.api.internal.file.copy.CopyAction`
`createCopyAction()`
`protected org.gradle.api.internal.file.copy.CopySpecInternal`
`createRootSpec()`
`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(File destinationDir)`
Sets the directory to copy files into.

### Methods inherited from class AbstractCopyTask

`copy, createCopyActionExecuter, eachFile, eachFile, exclude, exclude, exclude, exclude, expand, filesMatching, filesMatching, filesNotMatching, filesNotMatching, filter, filter, filter, filter, from, from, from, getDirectoryFileTreeFactory, getDirMode, getDuplicatesStrategy, getExcludes, getFileLookup, getFileMode, getFileResolver, getFileSystem, getFilteringCharset, getIncludeEmptyDirs, getIncludes, getInstantiator, getMainSpec, 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 DefaultTask

`newInputDirectory, newInputFile, newOutputDirectory, newOutputFile`

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

`addValidator, appendParallelSafeAction, compareTo, configure, deleteAllActions, dependsOn, dependsOnTaskDidWork, doFirst, doFirst, doFirst, doLast, doLast, doLast, execute, finalizedBy, getActions, getAnt, getAsDynamicObject, getConvention, getDependsOn, getDescription, getDestroyables, getDidWork, getEnabled, getExecuter, getExtensions, getFinalizedBy, getGroup, getIdentityPath, getImpliesSubProjects, getInputs, getLocalState, getLogger, getLogging, getMustRunAfter, getName, getOnlyIf, getOutputs, getPath, getProject, getServices, getShouldRunAfter, getStandardOutputCapture, getState, getTaskActions, getTaskDependencies, getTemporaryDir, getTemporaryDirFactory, getValidators, hasProperty, injectIntoNewInstance, isEnabled, isHasCustomActions, leftShift, mustRunAfter, onlyIf, onlyIf, prependParallelSafeAction, property, setActions, setDependsOn, setDescription, setDidWork, setEnabled, setExecuter, setFinalizedBy, setGroup, setImpliesSubProjects, setMustRunAfter, setOnlyIf, setOnlyIf, setProperty, setShouldRunAfter, shouldRunAfter, toString`

### Methods inherited from class Object

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

## Constructor Details

### Sync

public Sync()

## Method Details

### 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 File getDestinationDir()
Returns the directory to copy files into.

Returns:
  The destination dir.

### setDestinationDir

public void setDestinationDir(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 @Incubating 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

@Incubating 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()`