public abstract class AbstractCopyTask extends org.gradle.api.internal.ConventionTask implements CopySpec, org.gradle.api.internal.file.copy.CopySpecSource
AbstractCopyTask
is the base class for all copy tasks.Task.Namer
TASK_ACTION, TASK_DEPENDS_ON, TASK_DESCRIPTION, TASK_GROUP, TASK_NAME, TASK_OVERWRITE, TASK_TYPE
Modifier | Constructor and Description |
---|---|
protected |
AbstractCopyTask() |
Modifier and Type | Method and Description |
---|---|
protected void |
copy() |
protected abstract org.gradle.api.internal.file.copy.CopyAction |
createCopyAction() |
protected org.gradle.api.internal.file.copy.CopySpecInternal |
createRootSpec() |
AbstractCopyTask |
eachFile(Action<? super FileCopyDetails> action)
Adds an action to be applied to each file as it is about to be copied into its destination.
|
AbstractCopyTask |
eachFile(Closure closure)
Adds an action to be applied to each file as it about to be copied into its destination.
|
AbstractCopyTask |
exclude(Closure excludeSpec)
Adds an exclude spec.
|
AbstractCopyTask |
exclude(Iterable<String> excludes)
Adds an ANT style exclude pattern.
|
AbstractCopyTask |
exclude(Spec<FileTreeElement> excludeSpec)
Adds an exclude spec.
|
AbstractCopyTask |
exclude(String... excludes)
Adds an ANT style exclude pattern.
|
AbstractCopyTask |
expand(Map<String,?> properties)
Expands property references in each file as it is copied.
|
AbstractCopyTask |
filesMatching(String pattern,
Action<? super FileCopyDetails> action)
Configure the
FileCopyDetails for each file whose path matches the specified Ant-style pattern. |
AbstractCopyTask |
filesNotMatching(String pattern,
Action<? super FileCopyDetails> action)
Configure the
FileCopyDetails for each file whose path does not match the specified
Ant-style pattern. |
AbstractCopyTask |
filter(Class<? extends FilterReader> filterType)
Adds a content filter to be used during the copy.
|
AbstractCopyTask |
filter(Closure closure)
Adds a content filter based on the provided closure.
|
AbstractCopyTask |
filter(Map<String,?> properties,
Class<? extends FilterReader> filterType)
Adds a content filter to be used during the copy.
|
AbstractCopyTask |
from(Object... sourcePaths)
Specifies source files or directories for a copy.
|
AbstractCopyTask |
from(Object sourcePath,
Closure c)
Specifies the source files or directories for a copy and creates a child
CopySourceSpec . |
Integer |
getDirMode()
Returns the Unix permissions to use for the target directories.
|
DuplicatesStrategy |
getDuplicatesStrategy()
Returns the strategy to use when trying to copy more than one file to the same destination.
|
Set<String> |
getExcludes()
Returns the set of exclude patterns.
|
protected org.gradle.api.internal.file.FileLookup |
getFileLookup() |
Integer |
getFileMode()
Returns the Unix permissions to use for the target files.
|
protected org.gradle.api.internal.file.FileResolver |
getFileResolver() |
protected org.gradle.internal.nativeplatform.filesystem.FileSystem |
getFileSystem() |
boolean |
getIncludeEmptyDirs()
Tells if empty target directories will be included in the copy.
|
Set<String> |
getIncludes()
Returns the set of include patterns.
|
protected org.gradle.internal.reflect.Instantiator |
getInstantiator() |
protected org.gradle.api.internal.file.copy.CopySpecInternal |
getMainSpec() |
org.gradle.api.internal.file.copy.CopySpecInternal |
getRootSpec() |
FileCollection |
getSource()
Returns the source files for this task.
|
AbstractCopyTask |
include(Closure includeSpec)
Adds an include spec.
|
AbstractCopyTask |
include(Iterable<String> includes)
Adds an ANT style include pattern.
|
AbstractCopyTask |
include(Spec<FileTreeElement> includeSpec)
Adds an include spec.
|
AbstractCopyTask |
include(String... includes)
Adds an ANT style include pattern.
|
AbstractCopyTask |
into(Object destDir)
Specifies the destination directory for a copy.
|
AbstractCopyTask |
into(Object destPath,
Closure configureClosure)
Creates and configures a child
CopySpec with the given destination path. |
boolean |
isCaseSensitive()
Specifies whether case-sensitive pattern matching should be used.
|
AbstractCopyTask |
rename(Closure closure)
Renames a source file to a different relative location under the target directory.
|
AbstractCopyTask |
rename(Pattern sourceRegEx,
String replaceWith)
Renames files based on a regular expression.
|
AbstractCopyTask |
rename(String sourceRegEx,
String replaceWith)
Renames files based on a regular expression.
|
void |
setCaseSensitive(boolean caseSensitive)
Specifies whether case-sensitive pattern matching should be used for this CopySpec.
|
AbstractCopyTask |
setDirMode(Integer mode)
Sets the Unix permissions to use for the target directories.
|
void |
setDuplicatesStrategy(DuplicatesStrategy strategy)
The strategy to use when trying to copy more than one file to the same destination.
|
AbstractCopyTask |
setExcludes(Iterable<String> excludes)
Set the allowable exclude patterns.
|
AbstractCopyTask |
setFileMode(Integer mode)
Sets the Unix permissions to use for the target files.
|
void |
setIncludeEmptyDirs(boolean includeEmptyDirs)
Controls if empty target directories should be included in the copy.
|
AbstractCopyTask |
setIncludes(Iterable<String> includes)
Set the allowable include patterns.
|
CopySpec |
with(CopySpec... sourceSpecs)
Adds the given specs as a child of this spec.
|
conventionMapping, conventionMapping, getConventionMapping
addValidator, compareTo, configure, deleteAllActions, dependsOn, dependsOnTaskDidWork, doFirst, doFirst, doLast, doLast, execute, executeWithoutThrowingTaskFailure, finalizedBy, getActions, getAnt, getAsDynamicObject, getConvention, getDependsOn, getDescription, getDidWork, getEnabled, getExecuter, getExtensions, getFinalizedBy, getGroup, getInputs, getLogger, getLogging, getMustRunAfter, getName, getOnlyIf, getOutputs, getPath, getProject, getServices, getShouldRunAfter, getStandardOutputCapture, getState, getTaskActions, getTaskDependencies, getTemporaryDir, getTemporaryDirFactory, getValidators, hasProperty, injectIntoNewInstance, isEnabled, leftShift, mustRunAfter, onlyIf, onlyIf, property, setActions, setDependsOn, setDescription, setDidWork, setEnabled, setExecuter, setFinalizedBy, setGroup, setMustRunAfter, setName, setOnlyIf, setOnlyIf, setProject, setProperty, setShouldRunAfter, shouldRunAfter, toString
protected org.gradle.api.internal.file.copy.CopySpecInternal createRootSpec()
protected abstract org.gradle.api.internal.file.copy.CopyAction createCopyAction()
@Inject protected org.gradle.internal.reflect.Instantiator getInstantiator()
@Inject protected org.gradle.internal.nativeplatform.filesystem.FileSystem getFileSystem()
@Inject protected org.gradle.api.internal.file.FileResolver getFileResolver()
@Inject protected org.gradle.api.internal.file.FileLookup getFileLookup()
protected void copy()
@InputFiles @SkipWhenEmpty @Optional public FileCollection getSource()
public org.gradle.api.internal.file.copy.CopySpecInternal getRootSpec()
getRootSpec
in interface org.gradle.api.internal.file.copy.CopySpecSource
protected org.gradle.api.internal.file.copy.CopySpecInternal getMainSpec()
public boolean isCaseSensitive()
isCaseSensitive
in interface CopySpec
public void setCaseSensitive(boolean caseSensitive)
setCaseSensitive
in interface CopySpec
caseSensitive
- true for case-sensitive matching.public boolean getIncludeEmptyDirs()
getIncludeEmptyDirs
in interface CopySpec
public void setIncludeEmptyDirs(boolean includeEmptyDirs)
setIncludeEmptyDirs
in interface CopySpec
includeEmptyDirs
- true if empty target directories should be included in the copy, false otherwisepublic void setDuplicatesStrategy(DuplicatesStrategy strategy)
null
to use the default strategy, which is inherited
from the parent copy spec, if any, or DuplicatesStrategy.INCLUDE
if this copy spec has no parent.setDuplicatesStrategy
in interface CopySpec
public DuplicatesStrategy getDuplicatesStrategy()
The value can be set with a case insensitive string of the enum value (e.g. 'exclude'
for DuplicatesStrategy.EXCLUDE
).
This strategy can be overridden for individual files by using CopySpec.eachFile(org.gradle.api.Action)
or CopySpec.filesMatching(String, org.gradle.api.Action)
.
getDuplicatesStrategy
in interface CopySpec
DuplicatesStrategy
public AbstractCopyTask from(Object... sourcePaths)
Project.files(Object...)
.from
in interface CopySourceSpec
from
in interface CopySpec
sourcePaths
- Paths to source files for the copypublic AbstractCopyTask filesMatching(String pattern, Action<? super FileCopyDetails> action)
FileCopyDetails
for each file whose path matches the specified Ant-style pattern.
This is equivalent to using eachFile() and selectively applying a configuration based on the file's path.filesMatching
in interface CopySpec
pattern
- Ant-style pattern used to match against files' relative pathsaction
- action called for the FileCopyDetails of each file matching patternpublic AbstractCopyTask filesNotMatching(String pattern, Action<? super FileCopyDetails> action)
FileCopyDetails
for each file whose path does not match the specified
Ant-style pattern. This is equivalent to using eachFile() and selectively applying a configuration based on the
file's path.filesNotMatching
in interface CopySpec
pattern
- Ant-style pattern used to match against files' relative pathsaction
- action called for the FileCopyDetails of each file that does not match patternpublic AbstractCopyTask from(Object sourcePath, Closure c)
CopySourceSpec
. The given source
path is evaluated as per Project.files(Object...)
.from
in interface CopySourceSpec
from
in interface CopySpec
sourcePath
- Path to source for the copyc
- closure for configuring the child CopySourceSpecpublic AbstractCopyTask into(Object destDir)
Project.file(Object)
.into
in interface CopyProcessingSpec
into
in interface CopySpec
destDir
- Path to the destination directory for a Copypublic AbstractCopyTask into(Object destPath, Closure configureClosure)
CopySpec
with the given destination path.
The destination is evaluated as per Project.file(Object)
.public AbstractCopyTask include(String... includes)
include
in interface CopySpec
include
in interface PatternFilterable
includes
- a vararg list of include patternsPattern Format
public AbstractCopyTask include(Iterable<String> includes)
include
in interface CopySpec
include
in interface PatternFilterable
includes
- a Iterable providing more include patternsPattern Format
public AbstractCopyTask include(Spec<FileTreeElement> includeSpec)
include
in interface CopySpec
include
in interface PatternFilterable
includeSpec
- the spec to addPattern Format
public AbstractCopyTask include(Closure includeSpec)
FileTreeElement
as its parameter.
If includes are not provided, then all files in this container will be included. If includes are provided, then a
file must match at least one of the include patterns or specs to be included.include
in interface CopySpec
include
in interface PatternFilterable
includeSpec
- the spec to addPattern Format
public AbstractCopyTask exclude(String... excludes)
exclude
in interface CopySpec
exclude
in interface PatternFilterable
excludes
- a vararg list of exclude patternsPattern Format
public AbstractCopyTask exclude(Iterable<String> excludes)
exclude
in interface CopySpec
exclude
in interface PatternFilterable
excludes
- a Iterable providing new exclude patternsPattern Format
public AbstractCopyTask exclude(Spec<FileTreeElement> excludeSpec)
exclude
in interface CopySpec
exclude
in interface PatternFilterable
excludeSpec
- the spec to addPattern Format
public AbstractCopyTask exclude(Closure excludeSpec)
FileTreeElement
as its parameter. The closure should return true or false. Example:
copySpec { from 'source' into 'destination' //an example of excluding files from certain configuration: exclude { it.file in configurations.someConf.files } }If excludes are not provided, then no files will be excluded. If excludes are provided, then files must not match any exclude pattern to be processed.
exclude
in interface CopySpec
exclude
in interface PatternFilterable
excludeSpec
- the spec to addPattern Format
public AbstractCopyTask setIncludes(Iterable<String> includes)
PatternFilterable.include(Iterable)
this replaces any previously
defined includes.setIncludes
in interface CopySpec
setIncludes
in interface PatternFilterable
includes
- an Iterable providing new include patternsPattern Format
public Set<String> getIncludes()
getIncludes
in interface PatternFilterable
public AbstractCopyTask setExcludes(Iterable<String> excludes)
PatternFilterable.exclude(Iterable)
this replaces any previously
defined excludes.setExcludes
in interface CopySpec
setExcludes
in interface PatternFilterable
excludes
- an Iterable providing new exclude patternsPattern Format
public Set<String> getExcludes()
getExcludes
in interface PatternFilterable
public AbstractCopyTask rename(Closure closure)
rename
in interface CopyProcessingSpec
rename
in interface CopySpec
closure
- rename closurepublic AbstractCopyTask rename(String sourceRegEx, String replaceWith)
Example:
rename '(.*)_OEM_BLUE_(.*)', '$1$2'would map the file 'style_OEM_BLUE_.css' to 'style.css'
rename
in interface CopyProcessingSpec
rename
in interface CopySpec
sourceRegEx
- Source regular expressionreplaceWith
- Replacement string (use $ syntax for capture groups)public AbstractCopyTask rename(Pattern sourceRegEx, String replaceWith)
CopyProcessingSpec.rename(String, String)
.rename
in interface CopyProcessingSpec
rename
in interface CopySpec
sourceRegEx
- Source regular expressionreplaceWith
- Replacement string (use $ syntax for capture groups)public AbstractCopyTask filter(Map<String,?> properties, Class<? extends FilterReader> filterType)
Adds a content filter to be used during the copy. Multiple calls to filter, add additional filters to the
filter chain. Each filter should implement java.io.FilterReader
. Include org.apache.tools.ant.filters.*
for access to all the standard Ant filters.
Filter properties may be specified using groovy map syntax.
Examples:
filter(HeadFilter, lines:25, skip:2) filter(ReplaceTokens, tokens:[copyright:'2009', version:'2.3.1'])
filter
in interface ContentFilterable
filter
in interface CopySpec
properties
- map of filter propertiesfilterType
- Class of filter to addpublic AbstractCopyTask filter(Class<? extends FilterReader> filterType)
Adds a content filter to be used during the copy. Multiple calls to filter, add additional filters to the
filter chain. Each filter should implement java.io.FilterReader
. Include org.apache.tools.ant.filters.*
for access to all the standard Ant filters.
Examples:
filter(StripJavaComments) filter(com.mycompany.project.CustomFilter)
filter
in interface ContentFilterable
filter
in interface CopySpec
filterType
- Class of filter to addpublic AbstractCopyTask filter(Closure closure)
filter
in interface ContentFilterable
filter
in interface CopySpec
closure
- to implement line based filteringpublic AbstractCopyTask expand(Map<String,?> properties)
Expands property references in each file as it is copied. More specifically, each file is transformed using
Groovy's SimpleTemplateEngine
. This means you can use simple property references, such as
$property
or ${property}
in the file. You can also include arbitrary Groovy code in the
file, such as ${version ?: 'unknown'}
or ${classpath*.name.join(' ')}
expand
in interface ContentFilterable
expand
in interface CopySpec
properties
- to implement line based filteringpublic Integer getDirMode()
null
means that existing
permissions are preserved. It is dependent on the copy action implementation whether these permissions
will actually be applied.getDirMode
in interface CopyProcessingSpec
null
if existing permissions should be preserved.public Integer getFileMode()
null
means that existing
permissions are preserved. It is dependent on the copy action implementation whether these permissions
will actually be applied.getFileMode
in interface CopyProcessingSpec
null
if existing permissions should be preserved.public AbstractCopyTask setDirMode(Integer mode)
null
means that existing
permissions are preserved. It is dependent on the copy action implementation whether these permissions
will actually be applied.setDirMode
in interface CopyProcessingSpec
mode
- The directory permissions.public AbstractCopyTask setFileMode(Integer mode)
null
means that existing
permissions are preserved. It is dependent on the copy action implementation whether these permissions
will actually be applied.setFileMode
in interface CopyProcessingSpec
mode
- The file permissions.public AbstractCopyTask eachFile(Action<? super FileCopyDetails> action)
eachFile
in interface CopyProcessingSpec
eachFile
in interface CopySpec
action
- The action to execute.public AbstractCopyTask eachFile(Closure closure)
FileCopyDetails
as its parameter. Actions are executed in the order
added, and are inherited from the parent spec.eachFile
in interface CopyProcessingSpec
eachFile
in interface CopySpec
closure
- The action to execute.