Class 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, Named, ExtensionAware, Task, PatternFilterable, Configurable<Task>
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'
}
}
- Since:
- 0.9
-
Nested Class Summary
Nested classes/interfaces inherited from interface Named
Named.Namer -
Field Summary
Fields inherited from interface Task
TASK_ACTION, TASK_CONSTRUCTOR_ARGS, TASK_DEPENDS_ON, TASK_DESCRIPTION, TASK_GROUP, TASK_NAME, TASK_OVERWRITE, TASK_TYPE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected org.gradle.api.internal.file.copy.CopyActionCreate copy action.protected org.gradle.api.internal.file.copy.CopySpecInternalCreate root spec.protected abstract org.gradle.internal.file.DeleterReturns the directory to copy files into.The directory to copy files into.Returns the filter that defines which files to preserve in the destination directory.org.gradle.api.internal.file.copy.DestinationRootCopySpecWhether this task is skipped when its source contains no files and no directories.preserve(Action<? super PatternFilterable> action) Configures the filter that defines which files to preserve in the destination directory.voidsetDestinationDir(File destinationDir) Sets the directory to copy files into.(package private) booleanWhether this task should be skipped when its source files are empty.Methods inherited from class AbstractCopyTask
copy, createCopyActionExecuter, dirPermissions, eachFile, eachFile, exclude, exclude, exclude, exclude, expand, expand, filePermissions, filesMatching, filesMatching, filesNotMatching, filesNotMatching, filter, filter, filter, filter, from, from, from, getDirectoryFileTreeFactory, getDirPermissions, getDocumentationRegistry, getDuplicatesStrategy, getExcludes, getFileLookup, getFilePermissions, getFileResolver, getFileSystem, getFilteringCharset, getIncludeEmptyDirs, getIncludes, getInstantiator, getMainSpec, getObjectFactory, getPropertyFactory, getSource, include, include, include, include, into, into, into, isCaseSensitive, rename, rename, rename, rename, setCaseSensitive, setDuplicatesStrategy, setExcludes, setFilteringCharset, setIncludeEmptyDirs, setIncludes, withMethods inherited from class org.gradle.api.internal.ConventionTask
conventionMapping, conventionMapping, getConventionMappingMethods inherited from class 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, usesServiceMethods inherited from class org.gradle.api.internal.AbstractTask
acceptServiceReferences, appendParallelSafeAction, doNotTrackState, doNotTrackStateIf, getAsDynamicObject, getIdentityPath, getImpliesSubProjects, getLifecycleDependencies, getLoggingManager, getOnlyIf, getReasonNotToTrackState, getReasonsNotToTrackState, getReasonTaskIsIncompatibleWithConfigurationCache, getRequiredServices, getServices, getSharedResources, getStandardOutputCapture, getTaskActions, getTaskIdentity, getTemporaryDirFactory, hasTaskActions, injectIntoNewInstance, isCompatibleWithConfigurationCache, isEnabled, isHasCustomActions, notCompatibleWithConfigurationCache, prependParallelSafeAction, restoreOnlyIf, restoreTaskActions, service, setImpliesSubProjectsMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface Task
doNotTrackState, notCompatibleWithConfigurationCache, service
-
Constructor Details
-
Sync
public Sync()Creates a newSynctask.- Since:
- 9.9.0
-
-
Method Details
-
getSkipWhenSourceIsEmpty
Whether this task is skipped when its source contains no files and no directories.When this is
true, which is the default, a task with an empty source does not run and its destination directory is not synchronized. What is left in the destination then depends on whether it is a build-owned directory: if it is, the destination is cleaned up; otherwise it keeps the files the source no longer contains.When this is
false, the task always runs its copy action, so an empty source empties the destination. Note that this task always deletes the entire contents of its destination directory, not only the files it copied there, except for anything matched bypreserve(Action); disabling this extends that to a source that is empty, including one that is empty by mistake.- Returns:
- whether this task is skipped when its source is empty
- Since:
- 9.9.0
-
shouldSkipWhenSourceIsEmpty
boolean shouldSkipWhenSourceIsEmpty()Description copied from class:AbstractCopyTaskWhether this task should be skipped when its source files are empty.- Overrides:
shouldSkipWhenSourceIsEmptyin classAbstractCopyTask
-
createCopyAction
protected org.gradle.api.internal.file.copy.CopyAction createCopyAction()Description copied from class:AbstractCopyTaskCreate copy action.- Specified by:
createCopyActionin classAbstractCopyTask
-
createRootSpec
protected org.gradle.api.internal.file.copy.CopySpecInternal createRootSpec()Description copied from class:AbstractCopyTaskCreate root spec.- Overrides:
createRootSpecin classAbstractCopyTask
-
getRootSpec
public org.gradle.api.internal.file.copy.DestinationRootCopySpec getRootSpec()- Specified by:
getRootSpecin interfaceorg.gradle.api.internal.file.copy.CopySpecSource- Overrides:
getRootSpecin classAbstractCopyTask
-
getDestinationDirectory
The directory to copy files into.Setting this property is equivalent to calling
AbstractCopyTask.into(Object)on this task, and reading it reflects the destination configured throughAbstractCopyTask.into(Object)orsetDestinationDir(File).- Returns:
- the destination directory property
- Since:
- 9.8.0
-
getDestinationDir
Returns the directory to copy files into.- Returns:
- The destination dir.
- Since:
- 0.9
-
setDestinationDir
Sets the directory to copy files into. This is the same as callingAbstractCopyTask.into(Object)on this task.- Parameters:
destinationDir- The destination directory. Must not be null.- Since:
- 0.9
-
getPreserve
Returns the filter that defines which files to preserve in the destination directory.- Returns:
- the filter defining the files to preserve
- Since:
- 3.1
- See Also:
-
preserve
Configures the filter that defines which files to preserve in the destination directory.- Parameters:
action- Action for configuring the preserve filter- Returns:
- this
- Since:
- 3.1
- See Also:
-
getDeleter
@Inject protected abstract org.gradle.internal.file.Deleter getDeleter()
-