public interface CopySpec extends CopySourceSpec, CopyProcessingSpec, PatternFilterable
into('webroot') exclude('**/.svn/**') from('src/main/webapp') { include '**/*.jsp' } from('src/main/js') { include '**/*.js' }In this example, the
into
and exclude
specifications at the root level are inherited by the
two child CopySpecs.Copy Task
,
Project.copy()
Modifier and Type | Method and Description |
---|---|
CopySpec |
eachFile(Action<? super FileCopyDetails> action)
Adds an action to be applied to each file as it is about to be copied into its destination.
|
CopySpec |
eachFile(Closure closure)
Adds an action to be applied to each file as it about to be copied into its destination.
|
CopySpec |
exclude(Closure excludeSpec)
Adds an exclude spec.
|
CopySpec |
exclude(Iterable<String> excludes)
Adds an ANT style exclude pattern.
|
CopySpec |
exclude(Spec<FileTreeElement> excludeSpec)
Adds an exclude spec.
|
CopySpec |
exclude(String... excludes)
Adds an ANT style exclude pattern.
|
CopySpec |
expand(Map<String,?> properties)
Expands property references in each file as it is copied.
|
CopySpec |
filesMatching(String pattern,
Action<? super FileCopyDetails> action)
Configure the
FileCopyDetails for each file whose path matches the specified Ant-style pattern. |
CopySpec |
filesNotMatching(String pattern,
Action<? super FileCopyDetails> action)
Configure the
FileCopyDetails for each file whose path does not match the specified
Ant-style pattern. |
CopySpec |
filter(Class<? extends FilterReader> filterType)
Adds a content filter to be used during the copy.
|
CopySpec |
filter(Closure closure)
Adds a content filter based on the provided closure.
|
CopySpec |
filter(Map<String,?> properties,
Class<? extends FilterReader> filterType)
Adds a content filter to be used during the copy.
|
CopySpec |
from(Object... sourcePaths)
Specifies source files or directories for a copy.
|
CopySpec |
from(Object sourcePath,
Closure c)
Specifies the source files or directories for a copy and creates a child
CopySourceSpec . |
DuplicatesStrategy |
getDuplicatesStrategy()
Returns the strategy to use when trying to copy more than one file to the same destination.
|
boolean |
getIncludeEmptyDirs()
Tells if empty target directories will be included in the copy.
|
CopySpec |
include(Closure includeSpec)
Adds an include spec.
|
CopySpec |
include(Iterable<String> includes)
Adds an ANT style include pattern.
|
CopySpec |
include(Spec<FileTreeElement> includeSpec)
Adds an include spec.
|
CopySpec |
include(String... includes)
Adds an ANT style include pattern.
|
CopySpec |
into(Object destPath)
Specifies the destination directory for a copy.
|
CopySpec |
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.
|
CopySpec |
rename(Closure closure)
Renames a source file to a different relative location under the target directory.
|
CopyProcessingSpec |
rename(Pattern sourceRegEx,
String replaceWith)
Renames files based on a regular expression.
|
CopySpec |
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.
|
void |
setDuplicatesStrategy(DuplicatesStrategy strategy)
The strategy to use when trying to copy more than one file to the same destination.
|
CopySpec |
setExcludes(Iterable<String> excludes)
Set the allowable exclude patterns.
|
void |
setIncludeEmptyDirs(boolean includeEmptyDirs)
Controls if empty target directories should be included in the copy.
|
CopySpec |
setIncludes(Iterable<String> includes)
Set the allowable include patterns.
|
CopySpec |
with(CopySpec... sourceSpecs)
Adds the given specs as a child of this spec.
|
getDirMode, getFileMode, setDirMode, setFileMode
getExcludes, getIncludes
boolean isCaseSensitive()
void setCaseSensitive(boolean caseSensitive)
caseSensitive
- true for case-sensitive matching.boolean getIncludeEmptyDirs()
void setIncludeEmptyDirs(boolean includeEmptyDirs)
includeEmptyDirs
- true if empty target directories should be included in the copy, false otherwise@Incubating 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 eachFile(org.gradle.api.Action)
or filesMatching(String, org.gradle.api.Action)
.
DuplicatesStrategy
@Incubating void setDuplicatesStrategy(@Nullable 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.@Incubating CopySpec 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.pattern
- Ant-style pattern used to match against files' relative pathsaction
- action called for the FileCopyDetails of each file matching pattern@Incubating CopySpec 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.pattern
- Ant-style pattern used to match against files' relative pathsaction
- action called for the FileCopyDetails of each file that does not match patternCopySpec with(CopySpec... sourceSpecs)
sourceSpecs
- The specs to addCopySpec from(Object... sourcePaths)
Project.files(Object...)
.from
in interface CopySourceSpec
sourcePaths
- Paths to source files for the copyCopySpec from(Object sourcePath, Closure c)
CopySourceSpec
. The given source
path is evaluated as per Project.files(Object...)
.from
in interface CopySourceSpec
sourcePath
- Path to source for the copyc
- closure for configuring the child CopySourceSpecCopySpec setIncludes(Iterable<String> includes)
PatternFilterable.include(Iterable)
this replaces any previously
defined includes.setIncludes
in interface PatternFilterable
includes
- an Iterable providing new include patternsPattern Format
CopySpec setExcludes(Iterable<String> excludes)
PatternFilterable.exclude(Iterable)
this replaces any previously
defined excludes.setExcludes
in interface PatternFilterable
excludes
- an Iterable providing new exclude patternsPattern Format
CopySpec include(String... includes)
include
in interface PatternFilterable
includes
- a vararg list of include patternsPattern Format
CopySpec include(Iterable<String> includes)
include
in interface PatternFilterable
includes
- a Iterable providing more include patternsPattern Format
CopySpec include(Spec<FileTreeElement> includeSpec)
include
in interface PatternFilterable
includeSpec
- the spec to addPattern Format
CopySpec 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 PatternFilterable
includeSpec
- the spec to addPattern Format
CopySpec exclude(String... excludes)
exclude
in interface PatternFilterable
excludes
- a vararg list of exclude patternsPattern Format
CopySpec exclude(Iterable<String> excludes)
exclude
in interface PatternFilterable
excludes
- a Iterable providing new exclude patternsPattern Format
CopySpec exclude(Spec<FileTreeElement> excludeSpec)
exclude
in interface PatternFilterable
excludeSpec
- the spec to addPattern Format
CopySpec 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 PatternFilterable
excludeSpec
- the spec to addPattern Format
CopySpec into(Object destPath)
Project.file(Object)
.into
in interface CopyProcessingSpec
destPath
- Path to the destination directory for a CopyCopySpec into(Object destPath, Closure configureClosure)
CopySpec
with the given destination path.
The destination is evaluated as per Project.file(Object)
.destPath
- Path to the destination directory for a CopyconfigureClosure
- The closure to use to configure the child CopySpec
.CopySpec rename(Closure closure)
rename
in interface CopyProcessingSpec
closure
- rename closureCopySpec 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
sourceRegEx
- Source regular expressionreplaceWith
- Replacement string (use $ syntax for capture groups)CopyProcessingSpec rename(Pattern sourceRegEx, String replaceWith)
CopyProcessingSpec.rename(String, String)
.rename
in interface CopyProcessingSpec
sourceRegEx
- Source regular expressionreplaceWith
- Replacement string (use $ syntax for capture groups)CopySpec 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
properties
- map of filter propertiesfilterType
- Class of filter to addCopySpec 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
filterType
- Class of filter to addCopySpec filter(Closure closure)
filter
in interface ContentFilterable
closure
- to implement line based filteringCopySpec 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
properties
- to implement line based filteringCopySpec eachFile(Action<? super FileCopyDetails> action)
eachFile
in interface CopyProcessingSpec
action
- The action to execute.CopySpec 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
closure
- The action to execute.