CopySpec (Gradle API 8.14) (original) (raw)
Method Details
isCaseSensitive
boolean isCaseSensitive()
Specifies whether case-sensitive pattern matching should be used.
Returns:
true for case-sensitive matching.setCaseSensitive
void setCaseSensitive(boolean caseSensitive)
Specifies whether case-sensitive pattern matching should be used for this CopySpec.
Parameters:
caseSensitive
- true for case-sensitive matching.getIncludeEmptyDirs
boolean getIncludeEmptyDirs()
Tells if empty target directories will be included in the copy.
Returns:
true
if empty target directories will be included in the copy,false
otherwisesetIncludeEmptyDirs
void setIncludeEmptyDirs(boolean includeEmptyDirs)
Controls if empty target directories should be included in the copy.
Parameters:
includeEmptyDirs
-true
if empty target directories should be included in the copy,false
otherwisegetDuplicatesStrategy
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'
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).
Returns:
the strategy to use for files included by this copy spec.
See Also:
* DuplicatesStrategysetDuplicatesStrategy
The strategy to use when trying to copy more than one file to the same destination. Defaults to DuplicatesStrategy.INHERIT, the strategy inherited from the parent copy spec. If no explicit deduplication strategy is set, but duplicates are found, an error is thrown.
filesMatching
Configure the 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.
Parameters:
pattern
- Ant-style pattern used to match against files' relative paths
action
- action called for the FileCopyDetails of each file matching pattern
Returns:
thisfilesMatching
Configure the FileCopyDetails 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.
Parameters:
patterns
- Ant-style patterns used to match against files' relative paths
action
- action called for the FileCopyDetails of each file matching pattern
Returns:
thisfilesNotMatching
Configure the 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.
Parameters:
pattern
- Ant-style pattern used to match against files' relative paths
action
- action called for the FileCopyDetails of each file that does not match pattern
Returns:
thisfilesNotMatching
Configure the FileCopyDetails 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.
Parameters:
patterns
- Ant-style patterns used to match against files' relative paths
action
- action called for the FileCopyDetails of each file that does not match any pattern
Returns:
thiswith
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
}Parameters:
sourceSpecs
- The specs to add
Returns:
thisfrom
Specifies source files or directories for a copy. The given paths are evaluated as per Project.files(Object...).
Specified by:
[from](CopySourceSpec.html#from%28java.lang.Object...%29)
in interface[CopySourceSpec](CopySourceSpec.html "interface in org.gradle.api.file")
Parameters:
sourcePaths
- Paths to source files for the copyfrom
Specifies the source files or directories for a copy and creates a child
CopySourceSpec
. The given source path is evaluated as per Project.files(Object...) .
Specified by:
[from](CopySourceSpec.html#from%28java.lang.Object,groovy.lang.Closure%29)
in interface[CopySourceSpec](CopySourceSpec.html "interface in org.gradle.api.file")
Parameters:
sourcePath
- Path to source for the copy
c
- closure for configuring the child CopySourceSpecfrom
Specifies the source files or directories for a copy and creates a child
CopySpec
. The given source path is evaluated as per Project.files(Object...) .
Specified by:
[from](CopySourceSpec.html#from%28java.lang.Object,org.gradle.api.Action%29)
in interface[CopySourceSpec](CopySourceSpec.html "interface in org.gradle.api.file")
Parameters:
sourcePath
- Path to source for the copy
configureAction
- action for configuring the child CopySpecsetIncludes
Specified by:
[setIncludes](../tasks/util/PatternFilterable.html#setIncludes%28java.lang.Iterable%29)
in interface[PatternFilterable](../tasks/util/PatternFilterable.html "interface in org.gradle.api.tasks.util")
Parameters:
includes
- an Iterable providing new include patterns
Returns:
this
See Also:
* Pattern FormatsetExcludes
Specified by:
[setExcludes](../tasks/util/PatternFilterable.html#setExcludes%28java.lang.Iterable%29)
in interface[PatternFilterable](../tasks/util/PatternFilterable.html "interface in org.gradle.api.tasks.util")
Parameters:
excludes
- an Iterable providing new exclude patterns
Returns:
this
See Also:
* Pattern Formatinclude
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](../tasks/util/PatternFilterable.html#include%28java.lang.String...%29)
in interface[PatternFilterable](../tasks/util/PatternFilterable.html "interface in org.gradle.api.tasks.util")
Parameters:
includes
- a vararg list of include patterns
Returns:
this
See Also:
* Pattern Formatinclude
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](../tasks/util/PatternFilterable.html#include%28java.lang.Iterable%29)
in interface[PatternFilterable](../tasks/util/PatternFilterable.html "interface in org.gradle.api.tasks.util")
Parameters:
includes
- a Iterable providing more include patterns
Returns:
this
See Also:
* Pattern Formatinclude
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](../tasks/util/PatternFilterable.html#include%28org.gradle.api.specs.Spec%29)
in interface[PatternFilterable](../tasks/util/PatternFilterable.html "interface in org.gradle.api.tasks.util")
Parameters:
includeSpec
- the spec to add
Returns:
this
See Also:
* Pattern Formatinclude
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](../tasks/util/PatternFilterable.html#include%28groovy.lang.Closure%29)
in interface[PatternFilterable](../tasks/util/PatternFilterable.html "interface in org.gradle.api.tasks.util")
Parameters:
includeSpec
- the spec to add
Returns:
this
See Also:
* Pattern Formatexclude
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](../tasks/util/PatternFilterable.html#exclude%28java.lang.String...%29)
in interface[PatternFilterable](../tasks/util/PatternFilterable.html "interface in org.gradle.api.tasks.util")
Parameters:
excludes
- a vararg list of exclude patterns
Returns:
this
See Also:
* Pattern Formatexclude
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](../tasks/util/PatternFilterable.html#exclude%28java.lang.Iterable%29)
in interface[PatternFilterable](../tasks/util/PatternFilterable.html "interface in org.gradle.api.tasks.util")
Parameters:
excludes
- a Iterable providing new exclude patterns
Returns:
this
See Also:
* Pattern Formatexclude
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](../tasks/util/PatternFilterable.html#exclude%28org.gradle.api.specs.Spec%29)
in interface[PatternFilterable](../tasks/util/PatternFilterable.html "interface in org.gradle.api.tasks.util")
Parameters:
excludeSpec
- the spec to add
Returns:
this
See Also:
* Pattern Formatexclude
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](../tasks/util/PatternFilterable.html#exclude%28groovy.lang.Closure%29)
in interface[PatternFilterable](../tasks/util/PatternFilterable.html "interface in org.gradle.api.tasks.util")
Parameters:
excludeSpec
- the spec to add
Returns:
this
See Also:
* Pattern Formatinto
Specifies the destination directory for a copy. The destination is evaluated as per Project.file(Object).
Specified by:
[into](CopyProcessingSpec.html#into%28java.lang.Object%29)
in interface[CopyProcessingSpec](CopyProcessingSpec.html "interface in org.gradle.api.file")
Parameters:
destPath
- Path to the destination directory for a Copy
Returns:
thisinto
Creates and configures a child
CopySpec
with the given destination path. The destination is evaluated as per Project.file(Object).
Parameters:
destPath
- Path to the destination directory for a Copy
configureClosure
- The closure to use to configure the childCopySpec
.
Returns:
thisinto
Creates and configures a child
CopySpec
with the given destination path. The destination is evaluated as per Project.file(Object).
Parameters:
destPath
- Path to the destination directory for a Copy
copySpec
- The action to use to configure the childCopySpec
.
Returns:
thisrename
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](CopyProcessingSpec.html#rename%28groovy.lang.Closure%29)
in interface[CopyProcessingSpec](CopyProcessingSpec.html "interface in org.gradle.api.file")
Parameters:
closure
- rename closure
Returns:
thisrename
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](CopyProcessingSpec.html#rename%28org.gradle.api.Transformer%29)
in interface[CopyProcessingSpec](CopyProcessingSpec.html "interface in org.gradle.api.file")
Parameters:
renamer
- rename function
Returns:
thisrename
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](CopyProcessingSpec.html#rename%28java.lang.String,java.lang.String%29)
in interface[CopyProcessingSpec](CopyProcessingSpec.html "interface in org.gradle.api.file")
Parameters:
sourceRegEx
- Source regular expression
replaceWith
- Replacement string (use $ syntax for capture groups)
Returns:
thisrename
Specified by:
[rename](CopyProcessingSpec.html#rename%28java.util.regex.Pattern,java.lang.String%29)
in interface[CopyProcessingSpec](CopyProcessingSpec.html "interface in org.gradle.api.file")
Parameters:
sourceRegEx
- Source regular expression
replaceWith
- Replacement string (use $ syntax for capture groups)
Returns:
thisfilter
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](ContentFilterable.html#filter%28java.util.Map,java.lang.Class%29)
in interface[ContentFilterable](ContentFilterable.html "interface in org.gradle.api.file")
Parameters:
properties
- map of filter properties
filterType
- Class of filter to add
Returns:
thisfilter
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](ContentFilterable.html#filter%28java.lang.Class%29)
in interface[ContentFilterable](ContentFilterable.html "interface in org.gradle.api.file")
Parameters:
filterType
- Class of filter to add
Returns:
thisfilter
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 or
null
to remove the line. If every line is removed, the result will be an empty file, not an absent one.
Specified by:
[filter](ContentFilterable.html#filter%28groovy.lang.Closure%29)
in interface[ContentFilterable](ContentFilterable.html "interface in org.gradle.api.file")
Parameters:
closure
- to implement line based filtering
Returns:
thisfilter
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 or
null
to remove the line. If every line is removed, the result will be an empty file, not an absent one.
Specified by:
[filter](ContentFilterable.html#filter%28org.gradle.api.Transformer%29)
in interface[ContentFilterable](ContentFilterable.html "interface in org.gradle.api.file")
Parameters:
transformer
- to implement line based filtering
Returns:
thisexpand
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 then ContentFilterable.expand(Map, Action) should be used to disable this behavior.
Specified by:
[expand](ContentFilterable.html#expand%28java.util.Map%29)
in interface[ContentFilterable](ContentFilterable.html "interface in org.gradle.api.file")
Parameters:
properties
- reference-to-value map for substitution
Returns:
thisexpand
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](ContentFilterable.html#expand%28java.util.Map,org.gradle.api.Action%29)
in interface[ContentFilterable](ContentFilterable.html "interface in org.gradle.api.file")
Parameters:
properties
- reference-to-value map for substitution
action
- action to perform additional configuration of the underlying template engine
Returns:
thiseachFile
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](CopyProcessingSpec.html#eachFile%28org.gradle.api.Action%29)
in interface[CopyProcessingSpec](CopyProcessingSpec.html "interface in org.gradle.api.file")
Parameters:
action
- The action to execute.
Returns:
thiseachFile
Adds an action to be applied to each file as it about to be copied into its destination. The given closure is called with a FileCopyDetails as its parameter. Actions are executed in the order added, and are inherited from the parent spec.
Specified by:
[eachFile](CopyProcessingSpec.html#eachFile%28groovy.lang.Closure%29)
in interface[CopyProcessingSpec](CopyProcessingSpec.html "interface in org.gradle.api.file")
Parameters:
closure
- The action to execute.
Returns:
thisgetFilteringCharset
String getFilteringCharset()
Gets the charset used to read and write files when filtering. By default, the JVM default charset is used.
Returns:
the charset used to read and write files when filtering
Since:
2.14setFilteringCharset
void setFilteringCharset(String charset)
Specifies the charset used to read and write files when filtering.
Parameters:
charset
- the name of the charset to use when filtering files
Since:
2.14