Groovy Documentation

org.gradle.api.tasks
Class Copy

java.lang.Object
  org.gradle.api.internal.AbstractTask
      org.gradle.api.DefaultTask
          org.gradle.api.internal.ConventionTask
              org.gradle.api.tasks.Copy
All Implemented Interfaces:
CopyAction

class Copy
extends ConventionTask

Task for copying files. This task can also rename and filter files as it copies. The task implements org.gradle.api.tasks.copy.CopySpec CopySpec for specifying what to copy.

Examples:

 task(mydoc, type:Copy) {
    from 'src/main/doc'
    into 'build/target/doc'
 }


 task(initconfig, type:Copy) {
    from('src/main/config') {
       include '**/*.properties'
       include '**/*.xml'
       filter(ReplaceTokens, tokens:[version:'2.3.1'])
    }
    from('src/main/languages') {
       rename 'EN_US_(*.)', '$1'
    }
    into 'build/target/config'
    exclude '**/*.bak', '**/CVS/'
 }
 
author:
Steve Appling


Field Summary
CopyActionImpl copyAction

 
Constructor Summary
Copy(Project project, java.lang.String name)

Copy(Project project, java.lang.String name, FileVisitor testVisitor, DirectoryWalker testWalker)

 
Method Summary
void configureRootSpec()

CopySpec exclude(java.lang.String excludes)

Adds an ANT style exclude pattern to the copy specification.

CopySpec filter(Map map, java.lang.Class filterType)

Adds a content filter to be used during the copy.

CopySpec filter(java.lang.Class filterType)

Adds a content filter to be used during the copy.

CopySpec from(java.lang.Object sourcePaths)

Specifies sources for a copy.

CopySpec from(java.lang.Object sourcePath, Closure c)

Specifies the source for a copy and creates a child CopySpec.

CopySpec from(java.lang.Iterable sourcePaths)

Specifies sources for a copy.

CopySpec from(java.lang.Iterable sourcePaths, Closure c)

Specifies sources for a copy and creates a child CopySpec which is configured with the Closure.

java.io.File getDestinationDir()

List getLeafSyncSpecs()

CopySpec getRootSyncSpec()

List getSrcDirs()

static void globalExclude(java.lang.String excludes)

Set the exclude patterns used by all Copy tasks.

CopySpec include(java.lang.String includes)

Adds an ANT style include pattern to the copy specification.

CopySpec into(java.lang.Object destDir)

Specifies the destination directory for a copy.

CopySpec remapTarget(Closure closure)

Maps a source file to a different relative location under the target directory.

CopySpec rename(java.lang.String sourceRegEx, java.lang.String replaceWith)

Renames files based on a regular expression.

void setCaseSensitive(boolean caseSensitive)

Set case sensitivity for comparisons.

void setDestinationDir(java.io.File destinationDir)

void setSrcDirs(List srcDirs)

 
Methods inherited from class ConventionTask
conv, conventionMapping, conventionMapping, conventionProperty, getConventionAwareHelper, getConventionMapping, setConventionAwareHelper, setConventionMapping
 
Methods inherited from class DefaultTask
leftShift, methodMissing, propertyMissing
 
Methods inherited from class AbstractTask
captureStandardOutput, compareTo, defineProperty, deleteAllActions, dependsOn, dependsOnTaskDidWork, disableStandardOutputCapture, doFirst, doLast, equals, execute, getActions, getAdditionalProperties, getAnt, getConvention, getDependsOn, getDescription, getDidWork, getDynamicObjectHelper, getEnabled, getExecuted, getLogger, getName, getPath, getProject, getSkipProperties, getStandardOutputCapture, getTaskDependencies, hasProperty, hashCode, isDidWork, isEnabled, isExecuted, onlyIf, onlyIf, property, setActions, setAdditionalProperties, setDependsOn, setDescription, setDidWork, setEnabled, setExecuted, setName, setProject, setProperty, setSkipProperties, setStandardOutputCapture, toString
 
Methods inherited from class java.lang.Object
hashCode, getClass, equals, toString, wait, wait, wait, notify, notifyAll
 

Field Detail

copyAction

CopyActionImpl copyAction


 
Constructor Detail

Copy

public Copy(Project project, java.lang.String name)


Copy

public Copy(Project project, java.lang.String name, FileVisitor testVisitor, DirectoryWalker testWalker)


 
Method Detail

configureRootSpec

public void configureRootSpec()


exclude

public CopySpec exclude(java.lang.String excludes)
Adds an ANT style exclude pattern to the copy specification. This method may be called multiple times to append new patterns and multiple patterns may be specified in a single call. See #include(String[]) include for a description of the syntax for patterns. If this method is not called, then no files will be excluded. If this method is called, then files must not match any exclude pattern to be copied.
param:
excludes a vararg list of exclude patterns


filter

public CopySpec filter(Map map, java.lang.Class 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 parameters may be specified using groovy map syntax.

Examples:

    filter(HeadFilter, lines:25, skip:2)
    filter(ReplaceTokens, tokens:[copyright:'2009', version:'2.3.1'])
 
param:
map map of filter parameters
param:
filterType Class of filter to add


filter

public CopySpec filter(java.lang.Class 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)
 
param:
filterType Class of filter to add


from

public CopySpec from(java.lang.Object sourcePaths)
Specifies sources for a copy. The toString() method of each sourcePath is used to get a path. The paths are evaluated like org.gradle.api.Project#file(Object) Project.file(). Relative paths will be evaluated relative to the project directory.
param:
sourcePaths Paths to source directories for the copy


from

public CopySpec from(java.lang.Object sourcePath, Closure c)
Specifies the source for a copy and creates a child CopySpec. SourcePath.toString is used as the path. The source is set on the child CopySpec, not on this one. This may be a path to a single file to copy or to a directory. If the path is to a directory, then the contents of the directory will be copied. The paths are evaluated like org.gradle.api.Project#file(Object) Project.file().
param:
sourcePath Path to source for the copy
param:
c closure for configuring the child CopySpec


from

public CopySpec from(java.lang.Iterable sourcePaths)
Specifies sources for a copy. The paths are evaluated like org.gradle.api.Project#file(Object) Project.file().
param:
sourcePaths Paths to source directories for the copy


from

public CopySpec from(java.lang.Iterable sourcePaths, Closure c)
Specifies sources for a copy and creates a child CopySpec which is configured with the Closure. The sources are set on the child CopySpec, not on this one. The paths are evaluated like org.gradle.api.Project#file(Object) Project.file().
param:
sourcePaths Paths to source directories for the copy
param:
c Closure for configuring the child CopySpec


getDestinationDir

public java.io.File getDestinationDir()


getLeafSyncSpecs

public List getLeafSyncSpecs()


getRootSyncSpec

public CopySpec getRootSyncSpec()


getSrcDirs

public List getSrcDirs()


globalExclude

public static void globalExclude(java.lang.String excludes)
Set the exclude patterns used by all Copy tasks. This is typically used to set VCS type excludes like:
 Copy.globalExclude( '**/.svn/' )
 
Note that there are no global excludes by default. Unlike CopySpec.exclude, this does not add a new exclude pattern, it sets (or resets) the exclude patterns. You can't use sequential calls to this method to add multiple global exclude patterns.
param:
excludes exclude patterns to use


include

public CopySpec include(java.lang.String includes)
Adds an ANT style include pattern to the copy specification. This method may be called multiple times to append new patterns and multiple patterns may be specified in a single call. Patterns may include: Either '/' or '\' may be used in a pattern to separate directories. Patterns ending with '/' or '\' will have '**' automatically appended. Examples:
 all files ending with 'jsp' (including subdirectories)
    **/*.jsp

 all files beginning with 'template_' in the level1/level2 directory
    level1/level2/template_*

 all files (including subdirectories) beneath src/main/webapp
   src/main/webapp/

 all files beneath any CVS directory (including subdirectories) under src/main/java
   src/main/java/**/CVS/**
 
If this method is not called, then all files beneath the source directory will be included. If this method is called, then a file must match at least one of the include patterns to be copied.
param:
includes a vararg list of include patterns


into

public CopySpec into(java.lang.Object destDir)
Specifies the destination directory for a copy.
param:
destDir Destination directory


remapTarget

public CopySpec remapTarget(Closure closure)
Maps a source file to a different relative location under the target directory. The closure will be called with a single parameter, the File object for the default location of the copy. This File will have the same relative path from the destination directory that the source file has from its source directory. The closure should return a File object with a new target destination.
param:
closure remap closure


rename

public CopySpec 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'
param:
sourceRegEx Source regular expression
param:
replaceWith Replacement string (use $ syntax for capture groups)


setCaseSensitive

public void setCaseSensitive(boolean caseSensitive)
Set case sensitivity for comparisons.
param:
caseSensitive


setDestinationDir

public void setDestinationDir(java.io.File destinationDir)


setSrcDirs

public void setSrcDirs(List srcDirs)


 

Groovy Documentation