Class AbstractCopyTask
- java.lang.Object
-
- org.gradle.api.internal.AbstractTask
-
- org.gradle.api.DefaultTask
-
- org.gradle.api.internal.ConventionTask
-
- org.gradle.api.tasks.AbstractCopyTask
-
- 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
,Named
,ExtensionAware
,Task
,PatternFilterable
,Configurable<Task>
- Direct Known Subclasses:
AbstractArchiveTask
,Copy
,Sync
@NonNullApi @DisableCachingByDefault(because="Abstract super-class, not to be instantiated directly") 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.
-
-
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 Modifier Constructor Description protected
AbstractCopyTask()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected void
copy()
protected abstract org.gradle.api.internal.file.copy.CopyAction
createCopyAction()
protected org.gradle.api.internal.file.copy.CopyActionExecuter
createCopyActionExecuter()
protected org.gradle.api.internal.file.copy.CopySpecInternal
createRootSpec()
CopyProcessingSpec
dirPermissions(Action<? super ConfigurableFilePermissions> configureAction)
Configuration action for specifying directory access permissions.AbstractCopyTask
eachFile(Closure closure)
Adds an action to be applied to each file as it about to be copied into its destination.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
exclude(Closure excludeSpec)
Adds an exclude spec.AbstractCopyTask
exclude(java.lang.Iterable<java.lang.String> excludes)
Adds an ANT style exclude pattern.AbstractCopyTask
exclude(java.lang.String... excludes)
Adds an ANT style exclude pattern.AbstractCopyTask
exclude(Spec<FileTreeElement> excludeSpec)
Adds an exclude spec.AbstractCopyTask
expand(java.util.Map<java.lang.String,?> properties)
Expands property references in each file as it is copied.AbstractCopyTask
expand(java.util.Map<java.lang.String,?> properties, Action<? super ExpandDetails> action)
Expands property references in each file as it is copied.CopyProcessingSpec
filePermissions(Action<? super ConfigurableFilePermissions> configureAction)
Configuration action for specifying file access permissions.AbstractCopyTask
filesMatching(java.lang.Iterable<java.lang.String> patterns, Action<? super FileCopyDetails> action)
Configure theFileCopyDetails
for each file whose path matches any of the specified Ant-style patterns.AbstractCopyTask
filesMatching(java.lang.String pattern, Action<? super FileCopyDetails> action)
Configure theFileCopyDetails
for each file whose path matches the specified Ant-style pattern.AbstractCopyTask
filesNotMatching(java.lang.Iterable<java.lang.String> patterns, Action<? super FileCopyDetails> action)
Configure theFileCopyDetails
for each file whose path does not match any of the specified Ant-style patterns.AbstractCopyTask
filesNotMatching(java.lang.String pattern, Action<? super FileCopyDetails> action)
Configure theFileCopyDetails
for each file whose path does not match the specified Ant-style pattern.AbstractCopyTask
filter(Closure closure)
Adds a content filter based on the provided closure.AbstractCopyTask
filter(java.lang.Class<? extends java.io.FilterReader> filterType)
Adds a content filter to be used during the copy.AbstractCopyTask
filter(java.util.Map<java.lang.String,?> properties, java.lang.Class<? extends java.io.FilterReader> filterType)
Adds a content filter to be used during the copy.AbstractCopyTask
filter(Transformer<@Nullable java.lang.String,java.lang.String> transformer)
Adds a content filter based on the provided transformer.AbstractCopyTask
from(java.lang.Object... sourcePaths)
Specifies source files or directories for a copy.AbstractCopyTask
from(java.lang.Object sourcePath, Closure c)
Specifies the source files or directories for a copy and creates a childCopySourceSpec
.AbstractCopyTask
from(java.lang.Object sourcePath, Action<? super CopySpec> configureAction)
Specifies the source files or directories for a copy and creates a childCopySpec
.protected org.gradle.api.internal.file.collections.DirectoryFileTreeFactory
getDirectoryFileTreeFactory()
java.lang.Integer
getDirMode()
Deprecated.Property<ConfigurableFilePermissions>
getDirPermissions()
Property for querying and configuring directory access permissions.protected org.gradle.api.internal.DocumentationRegistry
getDocumentationRegistry()
DuplicatesStrategy
getDuplicatesStrategy()
Returns the strategy to use when trying to copy more than one file to the same destination.java.util.Set<java.lang.String>
getExcludes()
Returns the set of exclude patterns.protected org.gradle.api.internal.file.FileLookup
getFileLookup()
java.lang.Integer
getFileMode()
Deprecated.Property<ConfigurableFilePermissions>
getFilePermissions()
Property for querying and configuring file access permissions.protected org.gradle.api.internal.file.FileResolver
getFileResolver()
protected org.gradle.internal.nativeintegration.filesystem.FileSystem
getFileSystem()
java.lang.String
getFilteringCharset()
Gets the charset used to read and write files when filtering.boolean
getIncludeEmptyDirs()
Tells if empty target directories will be included in the copy.java.util.Set<java.lang.String>
getIncludes()
Returns the set of include patterns.protected org.gradle.internal.reflect.Instantiator
getInstantiator()
protected org.gradle.api.internal.file.copy.CopySpecInternal
getMainSpec()
protected ObjectFactory
getObjectFactory()
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(java.lang.Iterable<java.lang.String> includes)
Adds an ANT style include pattern.AbstractCopyTask
include(java.lang.String... includes)
Adds an ANT style include pattern.AbstractCopyTask
include(Spec<FileTreeElement> includeSpec)
Adds an include spec.AbstractCopyTask
into(java.lang.Object destDir)
Specifies the destination directory for a copy.AbstractCopyTask
into(java.lang.Object destPath, Closure configureClosure)
Creates and configures a childCopySpec
with the given destination path.CopySpec
into(java.lang.Object destPath, Action<? super CopySpec> copySpec)
Creates and configures a childCopySpec
with the given destination path.boolean
isCaseSensitive()
Specifies whether case-sensitive pattern matching should be used.AbstractCopyTask
rename(Closure closure)
Renames a source file.AbstractCopyTask
rename(java.lang.String sourceRegEx, java.lang.String replaceWith)
Renames files based on a regular expression.AbstractCopyTask
rename(java.util.regex.Pattern sourceRegEx, java.lang.String replaceWith)
Renames files based on a regular expression.AbstractCopyTask
rename(Transformer<@Nullable java.lang.String,java.lang.String> renamer)
Renames a source file.void
setCaseSensitive(boolean caseSensitive)
Specifies whether case-sensitive pattern matching should be used for this CopySpec.AbstractCopyTask
setDirMode(java.lang.Integer mode)
Deprecated.void
setDuplicatesStrategy(DuplicatesStrategy strategy)
The strategy to use when trying to copy more than one file to the same destination.AbstractCopyTask
setExcludes(java.lang.Iterable<java.lang.String> excludes)
Set the allowable exclude patterns.AbstractCopyTask
setFileMode(java.lang.Integer mode)
Deprecated.void
setFilteringCharset(java.lang.String charset)
Specifies the charset used to read and write files when filtering.void
setIncludeEmptyDirs(boolean includeEmptyDirs)
Controls if empty target directories should be included in the copy.AbstractCopyTask
setIncludes(java.lang.Iterable<java.lang.String> includes)
Set the allowable include patterns.CopySpec
with(CopySpec... sourceSpecs)
Adds the given specs as a child of this spec.-
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
acceptServiceReferences, 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
-
-
-
-
Method Detail
-
createRootSpec
protected org.gradle.api.internal.file.copy.CopySpecInternal createRootSpec()
-
createCopyAction
protected abstract org.gradle.api.internal.file.copy.CopyAction createCopyAction()
-
getInstantiator
@Inject protected org.gradle.internal.reflect.Instantiator getInstantiator()
-
getFileSystem
@Inject protected org.gradle.internal.nativeintegration.filesystem.FileSystem getFileSystem()
-
getFileResolver
@Inject protected org.gradle.api.internal.file.FileResolver getFileResolver()
-
getFileLookup
@Inject protected org.gradle.api.internal.file.FileLookup getFileLookup()
-
getDirectoryFileTreeFactory
@Inject protected org.gradle.api.internal.file.collections.DirectoryFileTreeFactory getDirectoryFileTreeFactory()
-
getDocumentationRegistry
@Inject protected org.gradle.api.internal.DocumentationRegistry getDocumentationRegistry()
-
getObjectFactory
@Inject protected ObjectFactory getObjectFactory()
-
copy
protected void copy()
-
createCopyActionExecuter
protected org.gradle.api.internal.file.copy.CopyActionExecuter createCopyActionExecuter()
-
getSource
@Internal public FileCollection getSource()
Returns the source files for this task.- Returns:
- The source files. Never returns null.
-
getRootSpec
@Internal public org.gradle.api.internal.file.copy.CopySpecInternal getRootSpec()
- Specified by:
getRootSpec
in interfaceorg.gradle.api.internal.file.copy.CopySpecSource
-
getMainSpec
@Internal protected org.gradle.api.internal.file.copy.CopySpecInternal getMainSpec()
-
isCaseSensitive
@Internal public boolean isCaseSensitive()
Specifies whether case-sensitive pattern matching should be used.- Specified by:
isCaseSensitive
in interfaceCopySpec
- Returns:
- true for case-sensitive matching.
-
setCaseSensitive
public void setCaseSensitive(boolean caseSensitive)
Specifies whether case-sensitive pattern matching should be used for this CopySpec.- Specified by:
setCaseSensitive
in interfaceCopySpec
- Parameters:
caseSensitive
- true for case-sensitive matching.
-
getIncludeEmptyDirs
@Internal public boolean getIncludeEmptyDirs()
Tells if empty target directories will be included in the copy.- Specified by:
getIncludeEmptyDirs
in interfaceCopySpec
- Returns:
true
if empty target directories will be included in the copy,false
otherwise
-
setIncludeEmptyDirs
public void setIncludeEmptyDirs(boolean includeEmptyDirs)
Controls if empty target directories should be included in the copy.- Specified by:
setIncludeEmptyDirs
in interfaceCopySpec
- Parameters:
includeEmptyDirs
-true
if empty target directories should be included in the copy,false
otherwise
-
setDuplicatesStrategy
public void setDuplicatesStrategy(DuplicatesStrategy strategy)
The strategy to use when trying to copy more than one file to the same destination. Set toDuplicatesStrategy.INHERIT
, the default strategy, to use the strategy inherited from the parent copy spec, if any, orDuplicatesStrategy.INCLUDE
if this copy spec has no parent.- Specified by:
setDuplicatesStrategy
in interfaceCopySpec
-
getDuplicatesStrategy
@Internal public DuplicatesStrategy getDuplicatesStrategy()
Returns the strategy to use when trying to copy more than one file to the same destination.The value can be set with a case insensitive string of the enum value (e.g.
'exclude'
forDuplicatesStrategy.EXCLUDE
).This strategy can be overridden for individual files by using
CopySpec.eachFile(org.gradle.api.Action)
orCopySpec.filesMatching(String, org.gradle.api.Action)
.- Specified by:
getDuplicatesStrategy
in interfaceCopySpec
- Returns:
- the strategy to use for files included by this copy spec.
- See Also:
DuplicatesStrategy
-
from
public AbstractCopyTask from(java.lang.Object... sourcePaths)
Specifies source files or directories for a copy. The given paths are evaluated as perProject.files(Object...)
.- Specified by:
from
in interfaceCopySourceSpec
- Specified by:
from
in interfaceCopySpec
- Parameters:
sourcePaths
- Paths to source files for the copy
-
filesMatching
public AbstractCopyTask filesMatching(java.lang.String pattern, Action<? super FileCopyDetails> action)
Configure theFileCopyDetails
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.- Specified by:
filesMatching
in interfaceCopySpec
- Parameters:
pattern
- Ant-style pattern used to match against files' relative pathsaction
- action called for the FileCopyDetails of each file matching pattern- Returns:
- this
-
filesMatching
public AbstractCopyTask filesMatching(java.lang.Iterable<java.lang.String> patterns, Action<? super FileCopyDetails> action)
Configure theFileCopyDetails
for each file whose path matches any of the specified Ant-style patterns. This is equivalent to using eachFile() and selectively applying a configuration based on the file's path.- Specified by:
filesMatching
in interfaceCopySpec
- Parameters:
patterns
- Ant-style patterns used to match against files' relative pathsaction
- action called for the FileCopyDetails of each file matching pattern- Returns:
- this
-
filesNotMatching
public AbstractCopyTask filesNotMatching(java.lang.String pattern, Action<? super FileCopyDetails> action)
Configure theFileCopyDetails
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.- Specified by:
filesNotMatching
in interfaceCopySpec
- Parameters:
pattern
- Ant-style pattern used to match against files' relative pathsaction
- action called for the FileCopyDetails of each file that does not match pattern- Returns:
- this
-
filesNotMatching
public AbstractCopyTask filesNotMatching(java.lang.Iterable<java.lang.String> patterns, Action<? super FileCopyDetails> action)
Configure theFileCopyDetails
for each file whose path does not match any of the specified Ant-style patterns. This is equivalent to using eachFile() and selectively applying a configuration based on the file's path.- Specified by:
filesNotMatching
in interfaceCopySpec
- Parameters:
patterns
- Ant-style patterns used to match against files' relative pathsaction
- action called for the FileCopyDetails of each file that does not match any pattern- Returns:
- this
-
from
public AbstractCopyTask from(java.lang.Object sourcePath, Closure c)
Specifies the source files or directories for a copy and creates a childCopySourceSpec
. The given source path is evaluated as perProject.files(Object...)
.- Specified by:
from
in interfaceCopySourceSpec
- Specified by:
from
in interfaceCopySpec
- Parameters:
sourcePath
- Path to source for the copyc
- closure for configuring the child CopySourceSpec
-
from
public AbstractCopyTask from(java.lang.Object sourcePath, Action<? super CopySpec> configureAction)
Specifies the source files or directories for a copy and creates a childCopySpec
. The given source path is evaluated as perProject.files(Object...)
.- Specified by:
from
in interfaceCopySourceSpec
- Specified by:
from
in interfaceCopySpec
- Parameters:
sourcePath
- Path to source for the copyconfigureAction
- action for configuring the child CopySpec
-
with
public CopySpec with(CopySpec... sourceSpecs)
Adds the given specs as a child of this spec.def contentSpec = copySpec { from("content") { include "**/*.txt" } } task copy(type: Copy) { into "$buildDir/copy" with contentSpec }
-
into
public AbstractCopyTask into(java.lang.Object destDir)
Specifies the destination directory for a copy. The destination is evaluated as perProject.file(Object)
.- Specified by:
into
in interfaceCopyProcessingSpec
- Specified by:
into
in interfaceCopySpec
- Parameters:
destDir
- Path to the destination directory for a Copy- Returns:
- this
-
into
public AbstractCopyTask into(java.lang.Object destPath, Closure configureClosure)
Creates and configures a childCopySpec
with the given destination path. The destination is evaluated as perProject.file(Object)
.
-
into
public CopySpec into(java.lang.Object destPath, Action<? super CopySpec> copySpec)
Creates and configures a childCopySpec
with the given destination path. The destination is evaluated as perProject.file(Object)
.
-
include
public AbstractCopyTask include(java.lang.String... includes)
Adds an ANT style include pattern. This method may be called multiple times to append new patterns and multiple patterns may be specified in a single call. 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 to be processed.- Specified by:
include
in interfaceCopySpec
- Specified by:
include
in interfacePatternFilterable
- Parameters:
includes
- a vararg list of include patterns- Returns:
- this
- See Also:
Pattern Format
-
include
public AbstractCopyTask include(java.lang.Iterable<java.lang.String> includes)
Adds an ANT style include pattern. This method may be called multiple times to append new patterns and multiple patterns may be specified in a single call. 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 to be processed.- Specified by:
include
in interfaceCopySpec
- Specified by:
include
in interfacePatternFilterable
- Parameters:
includes
- a Iterable providing more include patterns- Returns:
- this
- See Also:
Pattern Format
-
include
public AbstractCopyTask include(Spec<FileTreeElement> includeSpec)
Adds an include spec. This method may be called multiple times to append new specs. 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.- Specified by:
include
in interfaceCopySpec
- Specified by:
include
in interfacePatternFilterable
- Parameters:
includeSpec
- the spec to add- Returns:
- this
- See Also:
Pattern Format
-
include
public AbstractCopyTask include(Closure includeSpec)
Adds an include spec. This method may be called multiple times to append new specs. The given closure is passed aFileTreeElement
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.- Specified by:
include
in interfaceCopySpec
- Specified by:
include
in interfacePatternFilterable
- Parameters:
includeSpec
- the spec to add- Returns:
- this
- See Also:
Pattern Format
-
exclude
public AbstractCopyTask exclude(java.lang.String... excludes)
Adds an ANT style exclude pattern. This method may be called multiple times to append new patterns and multiple patterns may be specified in a single call. 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.- Specified by:
exclude
in interfaceCopySpec
- Specified by:
exclude
in interfacePatternFilterable
- Parameters:
excludes
- a vararg list of exclude patterns- Returns:
- this
- See Also:
Pattern Format
-
exclude
public AbstractCopyTask exclude(java.lang.Iterable<java.lang.String> excludes)
Adds an ANT style exclude pattern. This method may be called multiple times to append new patterns and multiple patterns may be specified in a single call. 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.- Specified by:
exclude
in interfaceCopySpec
- Specified by:
exclude
in interfacePatternFilterable
- Parameters:
excludes
- a Iterable providing new exclude patterns- Returns:
- this
- See Also:
Pattern Format
-
exclude
public AbstractCopyTask exclude(Spec<FileTreeElement> excludeSpec)
Adds an exclude spec. This method may be called multiple times to append new specs. 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.- Specified by:
exclude
in interfaceCopySpec
- Specified by:
exclude
in interfacePatternFilterable
- Parameters:
excludeSpec
- the spec to add- Returns:
- this
- See Also:
Pattern Format
-
exclude
public AbstractCopyTask exclude(Closure excludeSpec)
Adds an exclude spec. This method may be called multiple times to append new specs.The given closure is passed aFileTreeElement
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.- Specified by:
exclude
in interfaceCopySpec
- Specified by:
exclude
in interfacePatternFilterable
- Parameters:
excludeSpec
- the spec to add- Returns:
- this
- See Also:
Pattern Format
-
setIncludes
public AbstractCopyTask setIncludes(java.lang.Iterable<java.lang.String> includes)
Set the allowable include patterns. Note that unlikePatternFilterable.include(Iterable)
this replaces any previously defined includes.- Specified by:
setIncludes
in interfaceCopySpec
- Specified by:
setIncludes
in interfacePatternFilterable
- Parameters:
includes
- an Iterable providing new include patterns- Returns:
- this
- See Also:
Pattern Format
-
getIncludes
@Internal public java.util.Set<java.lang.String> getIncludes()
Returns the set of include patterns.- Specified by:
getIncludes
in interfacePatternFilterable
- Returns:
- The include patterns. Returns an empty set when there are no include patterns.
-
setExcludes
public AbstractCopyTask setExcludes(java.lang.Iterable<java.lang.String> excludes)
Set the allowable exclude patterns. Note that unlikePatternFilterable.exclude(Iterable)
this replaces any previously defined excludes.- Specified by:
setExcludes
in interfaceCopySpec
- Specified by:
setExcludes
in interfacePatternFilterable
- Parameters:
excludes
- an Iterable providing new exclude patterns- Returns:
- this
- See Also:
Pattern Format
-
getExcludes
@Internal public java.util.Set<java.lang.String> getExcludes()
Returns the set of exclude patterns.- Specified by:
getExcludes
in interfacePatternFilterable
- Returns:
- The exclude patterns. Returns an empty set when there are no exclude patterns.
-
rename
public AbstractCopyTask rename(Closure closure)
Renames a source file. The closure will be called with a single parameter, the name of the file. The closure should return a String object with a new target name. The closure may return null, in which case the original name will be used.- Specified by:
rename
in interfaceCopyProcessingSpec
- Specified by:
rename
in interfaceCopySpec
- Parameters:
closure
- rename closure- Returns:
- this
-
rename
public AbstractCopyTask rename(Transformer<@Nullable java.lang.String,java.lang.String> renamer)
Renames a source file. The function will be called with a single parameter, the name of the file. The function should return a new target name. The function may return null, in which case the original name will be used.- Specified by:
rename
in interfaceCopyProcessingSpec
- Specified by:
rename
in interfaceCopySpec
- Parameters:
renamer
- rename function- Returns:
- this
-
rename
public AbstractCopyTask rename(java.lang.String sourceRegEx, java.lang.String replaceWith)
Renames files based on a regular expression. Uses java.util.regex type of regular expressions. Note that the replace string should use the '$1' syntax to refer to capture groups in the source regular expression. Files that do not match the source regular expression will be copied with the original name.Example:
rename '(.*)_OEM_BLUE_(.*)', '$1$2'
would map the file 'style_OEM_BLUE_.css' to 'style.css'- Specified by:
rename
in interfaceCopyProcessingSpec
- Specified by:
rename
in interfaceCopySpec
- Parameters:
sourceRegEx
- Source regular expressionreplaceWith
- Replacement string (use $ syntax for capture groups)- Returns:
- this
-
rename
public AbstractCopyTask rename(java.util.regex.Pattern sourceRegEx, java.lang.String replaceWith)
Renames files based on a regular expression. SeeCopyProcessingSpec.rename(String, String)
.- Specified by:
rename
in interfaceCopyProcessingSpec
- Specified by:
rename
in interfaceCopySpec
- Parameters:
sourceRegEx
- Source regular expressionreplaceWith
- Replacement string (use $ syntax for capture groups)- Returns:
- this
-
filter
public AbstractCopyTask filter(java.util.Map<java.lang.String,?> properties, java.lang.Class<? extends java.io.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
. Includeorg.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'])
- Specified by:
filter
in interfaceContentFilterable
- Specified by:
filter
in interfaceCopySpec
- Parameters:
properties
- map of filter propertiesfilterType
- Class of filter to add- Returns:
- this
-
filter
public AbstractCopyTask filter(java.lang.Class<? extends java.io.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
. Includeorg.apache.tools.ant.filters.*
for access to all the standard Ant filters.Examples:
filter(StripJavaComments) filter(com.mycompany.project.CustomFilter)
- Specified by:
filter
in interfaceContentFilterable
- Specified by:
filter
in interfaceCopySpec
- Parameters:
filterType
- Class of filter to add- Returns:
- this
-
filter
public AbstractCopyTask filter(Closure closure)
Adds a content filter based on the provided closure. The Closure will be called with each line (stripped of line endings) and should return a String to replace the line ornull
to remove the line. If every line is removed, the result will be an empty file, not an absent one.- Specified by:
filter
in interfaceContentFilterable
- Specified by:
filter
in interfaceCopySpec
- Parameters:
closure
- to implement line based filtering- Returns:
- this
-
filter
public AbstractCopyTask filter(Transformer<@Nullable java.lang.String,java.lang.String> transformer)
Adds a content filter based on the provided transformer. The Closure will be called with each line (stripped of line endings) and should return a String to replace the line ornull
to remove the line. If every line is removed, the result will be an empty file, not an absent one.- Specified by:
filter
in interfaceContentFilterable
- Specified by:
filter
in interfaceCopySpec
- Parameters:
transformer
- to implement line based filtering- Returns:
- this
-
expand
public AbstractCopyTask expand(java.util.Map<java.lang.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(' ')}
Note that all escape sequences (
\n
,\t
,\\
, etc) are converted to the symbols they represent, so, for example,\n
becomes newline. If this is undesirable thenContentFilterable.expand(Map, Action)
should be used to disable this behavior.- Specified by:
expand
in interfaceContentFilterable
- Specified by:
expand
in interfaceCopySpec
- Parameters:
properties
- reference-to-value map for substitution- Returns:
- this
-
expand
public AbstractCopyTask expand(java.util.Map<java.lang.String,?> properties, Action<? super ExpandDetails> action)
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(' ')}
. The template engine can be configured with the provided action.Note that by default all escape sequences (
\n
,\t
,\\
, etc) are converted to the symbols they represent, so, for example,\n
becomes newline. This behavior is controlled byExpandDetails.getEscapeBackslash()
property. It should be set totrue
to disable escape sequences conversion:expand(one: '1', two: 2) { escapeBackslash = true }
- Specified by:
expand
in interfaceContentFilterable
- Specified by:
expand
in interfaceCopySpec
- Parameters:
properties
- reference-to-value map for substitutionaction
- action to perform additional configuration of the underlying template engine- Returns:
- this
-
getDirMode
@Internal @Deprecated public java.lang.Integer getDirMode()
Deprecated.Returns the Unix permissions to use for the target directories.null
means that existing permissions are preserved. It is dependent on the copy action implementation whether these permissions will actually be applied.- Specified by:
getDirMode
in interfaceCopyProcessingSpec
- Returns:
- The directory permissions, or
null
if existing permissions should be preserved.
-
getFileMode
@Internal @Deprecated public java.lang.Integer getFileMode()
Deprecated.Returns the Unix permissions to use for the target files.null
means that existing permissions are preserved. It is dependent on the copy action implementation whether these permissions will actually be applied.- Specified by:
getFileMode
in interfaceCopyProcessingSpec
- Returns:
- The file permissions, or
null
if existing permissions should be preserved.
-
setDirMode
@Deprecated public AbstractCopyTask setDirMode(@Nullable java.lang.Integer mode)
Deprecated.Sets the Unix permissions to use for the target directories.null
means that existing permissions are preserved. It is dependent on the copy action implementation whether these permissions will actually be applied.- Specified by:
setDirMode
in interfaceCopyProcessingSpec
- Parameters:
mode
- The directory permissions.- Returns:
- this
-
setFileMode
@Deprecated public AbstractCopyTask setFileMode(@Nullable java.lang.Integer mode)
Deprecated.Sets the Unix permissions to use for the target files.null
means that existing permissions are preserved. It is dependent on the copy action implementation whether these permissions will actually be applied.- Specified by:
setFileMode
in interfaceCopyProcessingSpec
- Parameters:
mode
- The file permissions.- Returns:
- this
-
getFilePermissions
@Internal public Property<ConfigurableFilePermissions> getFilePermissions()
Property for querying and configuring file access permissions. If the property has no value set, that means that existing permissions are preserved. It is dependent on the copy action implementation whether these permissions will actually be applied. For details seeConfigurableFilePermissions
.- Specified by:
getFilePermissions
in interfaceCopyProcessingSpec
-
filePermissions
public CopyProcessingSpec filePermissions(Action<? super ConfigurableFilePermissions> configureAction)
Configuration action for specifying file access permissions. For details seeConfigurableFilePermissions
.- Specified by:
filePermissions
in interfaceCopyProcessingSpec
-
getDirPermissions
@Internal public Property<ConfigurableFilePermissions> getDirPermissions()
Property for querying and configuring directory access permissions. If the property has no value set, that means that existing permissions are preserved. It is dependent on the copy action implementation whether these permissions will actually be applied. For details seeConfigurableFilePermissions
.- Specified by:
getDirPermissions
in interfaceCopyProcessingSpec
-
dirPermissions
public CopyProcessingSpec dirPermissions(Action<? super ConfigurableFilePermissions> configureAction)
Configuration action for specifying directory access permissions. For details seeConfigurableFilePermissions
.- Specified by:
dirPermissions
in interfaceCopyProcessingSpec
-
eachFile
public 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. The action can change the destination path of the file, filter the contents of the file, or exclude the file from the result entirely. Actions are executed in the order added, and are inherited from the parent spec.- Specified by:
eachFile
in interfaceCopyProcessingSpec
- Specified by:
eachFile
in interfaceCopySpec
- Parameters:
action
- The action to execute.- Returns:
- this
-
eachFile
public AbstractCopyTask eachFile(Closure closure)
Adds an action to be applied to each file as it about to be copied into its destination. The given closure is called with aFileCopyDetails
as its parameter. Actions are executed in the order added, and are inherited from the parent spec.- Specified by:
eachFile
in interfaceCopyProcessingSpec
- Specified by:
eachFile
in interfaceCopySpec
- Parameters:
closure
- The action to execute.- Returns:
- this
-
getFilteringCharset
@Internal public java.lang.String getFilteringCharset()
Gets the charset used to read and write files when filtering. By default, the JVM default charset is used.- Specified by:
getFilteringCharset
in interfaceCopySpec
- Returns:
- the charset used to read and write files when filtering
-
setFilteringCharset
public void setFilteringCharset(java.lang.String charset)
Specifies the charset used to read and write files when filtering.- Specified by:
setFilteringCharset
in interfaceCopySpec
- Parameters:
charset
- the name of the charset to use when filtering files
-
-