CopySpec

A set of specifications for copying files. This includes:

  • source directories (multiples allowed)
  • destination directory
  • ANT like include patterns
  • ANT like exclude patterns
  • File relocating rules
  • renaming rules
  • content filters
CopySpecs may be nested by passing a closure to one of the from methods. The closure creates a child CopySpec and delegates methods in the closure to the child. Child CopySpecs inherit any values specified in the parent. This allows constructs like:
def myCopySpec = project.copySpec {
  into('webroot')
  exclude('**/.data/**')
  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 specs can be reused in other copy specs via with method. This enables reuse of the copy spec instances.
def contentSpec = copySpec {
  from("content") {
    include "**/*.txt"
  }
}

task copy(type: Copy) {
  into "$buildDir/copy"
  with contentSpec
}

See also

Copy Task

Project.copy()

Inheritors

Functions

Link copied to clipboard
Configuration action for specifying directory access permissions.
Link copied to clipboard
abstract fun eachFile(@DelegatesTo(value = FileCopyDetails::class) closure: Closure): CopySpec
Adds an action to be applied to each file as it about to be copied into its destination.
abstract fun eachFile(action: Action<in FileCopyDetails>): CopySpec
Adds an action to be applied to each file as it is about to be copied into its destination.
Link copied to clipboard
abstract fun exclude(excludeSpec: Closure): CopySpec
abstract fun exclude(excludeSpec: Spec<FileTreeElement>): CopySpec
Adds an exclude spec.
abstract fun exclude(excludes: Iterable<String>): CopySpec
abstract fun exclude(excludes: Array<String>): CopySpec
Adds an ANT style exclude pattern.
Link copied to clipboard
abstract fun expand(properties: Map<String, out Any>): CopySpec
abstract fun expand(properties: Map<String, out Any>, action: Action<in ExpandDetails>): CopySpec
Expands property references in each file as it is copied.
Link copied to clipboard
inline fun ContentFilterable.expand(vararg properties: Pair<String, Any>): ContentFilterable
inline fun ContentFilterable.expand(vararg properties: Pair<String, Any>, action: Action<in ExpandDetails>): ContentFilterable

Kotlin extension function for org.gradle.api.file.ContentFilterable.expand.

inline fun CopySpec.expand(vararg properties: Pair<String, Any>): CopySpec
inline fun CopySpec.expand(vararg properties: Pair<String, Any>, action: Action<in ExpandDetails>): CopySpec

Kotlin extension function for org.gradle.api.file.CopySpec.expand.

Link copied to clipboard
Configuration action for specifying file access permissions.
Link copied to clipboard
abstract fun filesMatching(patterns: Iterable<String>, action: Action<in FileCopyDetails>): CopySpec
Configure the org.gradle.api.file.FileCopyDetails for each file whose path matches any of the specified Ant-style patterns.
abstract fun filesMatching(pattern: String, action: Action<in FileCopyDetails>): CopySpec
Configure the org.gradle.api.file.FileCopyDetails for each file whose path matches the specified Ant-style pattern.
Link copied to clipboard
abstract fun filesNotMatching(patterns: Iterable<String>, action: Action<in FileCopyDetails>): CopySpec
Configure the org.gradle.api.file.FileCopyDetails for each file whose path does not match any of the specified Ant-style patterns.
abstract fun filesNotMatching(pattern: String, action: Action<in FileCopyDetails>): CopySpec
Configure the org.gradle.api.file.FileCopyDetails for each file whose path does not match the specified Ant-style pattern.
Link copied to clipboard
abstract fun filter(closure: Closure): CopySpec
Adds a content filter based on the provided closure.
abstract fun filter(filterType: Class<out FilterReader>): CopySpec
abstract fun filter(properties: Map<String, out Any>, filterType: Class<out FilterReader>): CopySpec
Adds a content filter to be used during the copy.
abstract fun filter(transformer: Transformer<@Nullable String, String>): CopySpec
Adds a content filter based on the provided transformer.
Link copied to clipboard
inline fun <T : FilterReader> ContentFilterable.filter(vararg properties: Pair<String, Any?>): ContentFilterable?
fun <T : FilterReader> ContentFilterable.filter(filterType: KClass<T>, properties: Map<String, Any?>): ContentFilterable?
fun <T : FilterReader> ContentFilterable.filter(filterType: KClass<T>, vararg properties: Pair<String, Any?>): ContentFilterable?

Adds a content filter to be used during the copy. Multiple calls add additional filters to the filter chain. Each filter should implement FilterReader. Import org.apache.tools.ant.filters.* for access to all the standard Ant filters.

inline fun ContentFilterable.filter(filterType: KClass<out FilterReader>, vararg properties: Pair<String, Any>): ContentFilterable
inline fun <T : FilterReader> CopySpec.filter(properties: Map<String, Any?>): CopySpec?
inline fun <T : FilterReader> CopySpec.filter(vararg properties: Pair<String, Any?>): CopySpec?

Adds a content filter to be used during the copy.

inline fun CopySpec.filter(filterType: KClass<out FilterReader>): CopySpec
inline fun CopySpec.filter(filterType: KClass<out FilterReader>, vararg properties: Pair<String, Any>): CopySpec

Kotlin extension function taking kotlin.reflect.KClass for org.gradle.api.file.CopySpec.filter.

Link copied to clipboard
abstract fun from(@Nullable sourcePaths: Array<@Nullable Any>): CopySpec
Specifies source files or directories for a copy.
abstract fun from(sourcePath: Any, @DelegatesTo(value = CopySpec::class) c: Closure): CopySpec
Specifies the source files or directories for a copy and creates a child CopySourceSpec}.
abstract fun from(sourcePath: Any, configureAction: Action<in CopySpec>): CopySpec
Specifies the source files or directories for a copy and creates a child CopySpec}.
Link copied to clipboard
Property for querying and configuring directory access permissions.
Link copied to clipboard
Returns the strategy to use when trying to copy more than one file to the same destination.
Link copied to clipboard
abstract fun getExcludes(): Set<String>
Returns the set of exclude patterns.
Link copied to clipboard
Property for querying and configuring file access permissions.
Link copied to clipboard
abstract fun getFilteringCharset(): String
Gets the charset used to read and write files when filtering.
Link copied to clipboard
Tells if empty target directories will be included in the copy.
Link copied to clipboard
abstract fun getIncludes(): Set<String>
Returns the set of include patterns.
Link copied to clipboard
abstract fun include(includeSpec: Closure): CopySpec
abstract fun include(includeSpec: Spec<FileTreeElement>): CopySpec
Adds an include spec.
abstract fun include(includes: Iterable<String>): CopySpec
abstract fun include(includes: Array<String>): CopySpec
Adds an ANT style include pattern.
Link copied to clipboard
abstract fun into(destPath: Any): CopySpec
Specifies the destination directory for a copy.
abstract fun into(destPath: Any, @DelegatesTo(value = CopySpec::class) configureClosure: Closure): CopySpec
abstract fun into(destPath: Any, copySpec: Action<in CopySpec>): CopySpec
Creates and configures a child CopySpec with the given destination path.
Link copied to clipboard
abstract fun isCaseSensitive(): Boolean
Specifies whether case-sensitive pattern matching should be used.
Link copied to clipboard
abstract fun rename(closure: Closure): CopySpec
abstract fun rename(renamer: Transformer<@Nullable String, String>): CopySpec
Renames a source file.
abstract fun rename(sourceRegEx: String, replaceWith: String): CopySpec
abstract fun rename(sourceRegEx: Pattern, replaceWith: String): CopyProcessingSpec
Renames files based on a regular expression.
Link copied to clipboard
abstract fun setCaseSensitive(caseSensitive: Boolean)
Specifies whether case-sensitive pattern matching should be used for this CopySpec.
Link copied to clipboard
The strategy to use when trying to copy more than one file to the same destination.
Link copied to clipboard
abstract fun setExcludes(excludes: Iterable<String>): CopySpec
Set the allowable exclude patterns.
Link copied to clipboard
abstract fun setFilteringCharset(charset: String)
Specifies the charset used to read and write files when filtering.
Link copied to clipboard
abstract fun setIncludeEmptyDirs(includeEmptyDirs: Boolean)
Controls if empty target directories should be included in the copy.
Link copied to clipboard
abstract fun setIncludes(includes: Iterable<String>): CopySpec
Set the allowable include patterns.
Link copied to clipboard
abstract fun with(sourceSpecs: Array<CopySpec>): CopySpec
Adds the given specs as a child of this spec.