org.gradle.api.tasks
Class Copy

java.lang.Object
  extended by org.gradle.api.internal.AbstractTask
      extended by org.gradle.api.DefaultTask
          extended by org.gradle.api.internal.ConventionTask
              extended by org.gradle.api.tasks.Copy
All Implemented Interfaces:
groovy.lang.GroovyObject, java.lang.Comparable<Task>, CopyAction, CopyProcessingSpec, CopySourceSpec, CopySpec, org.gradle.api.internal.DynamicObjectAware, org.gradle.api.internal.IConventionAware, org.gradle.api.internal.TaskInternal, Task, PatternFilterable, WorkResult

public class Copy
extends org.gradle.api.internal.ConventionTask
implements CopyAction

Task for copying files. This task can also rename and filter files as it copies. The task implements 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/config') {
       exclude '**/*.properties', '**/*.xml'  
    }
    from('src/main/languages') {
       rename 'EN_US_(*.)', '$1'
    }
    into 'build/target/config'
    exclude '**/*.bak'
 }
 


Field Summary
 
Fields inherited from interface org.gradle.api.Task
AUTOSKIP_PROPERTY_PREFIX, TASK_ACTION, TASK_DEPENDS_ON, TASK_DESCRIPTION, TASK_NAME, TASK_OVERWRITE, TASK_TYPE
 
Constructor Summary
Copy()
           
 
Method Summary
 CopySpec exclude(java.lang.Iterable<java.lang.String> excludes)
          Adds an ANT style exclude pattern.
 CopySpec exclude(java.lang.String... excludes)
          Adds an ANT style exclude pattern.
 CopySpec filter(java.lang.Class<java.io.FilterReader> filterType)
          Adds a content filter to be used during the copy.
 CopySpec filter(groovy.lang.Closure closure)
          Adds a content filter based on the provided closure.
 CopySpec filter(java.util.Map<java.lang.String,java.lang.Object> map, java.lang.Class<java.io.FilterReader> filterType)
          Adds a content filter to be used during the copy.
 CopySpec from(java.lang.Object... sourcePaths)
          Specifies source files or directories for a copy.
 CopySpec from(java.lang.Object sourcePath, groovy.lang.Closure c)
          Specifies the source for a copy and creates a child CopySourceSpec.
 org.gradle.api.internal.file.CopyActionImpl getCopyAction()
           
 java.io.File getDestinationDir()
           
 java.util.Set<java.lang.String> getExcludes()
          Get the set of exclude patterns.
 java.util.Set<java.lang.String> getIncludes()
          Get the set of include patterns.
 java.util.List<? extends CopySpec> getLeafSyncSpecs()
           
 java.lang.Object getSrcDirs()
           
 CopySpec include(java.lang.Iterable<java.lang.String> includes)
          Adds an ANT style include pattern.
 CopySpec include(java.lang.String... includes)
          Adds an ANT style include pattern.
 CopySpec into(java.lang.Object destDir)
          Specifies the destination directory for a copy.
 CopySpec remapTarget(groovy.lang.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 setCopyAction(org.gradle.api.internal.file.CopyActionImpl copyAction)
           
 void setDestinationDir(java.io.File destinationDir)
           
 CopySpec setExcludes(java.lang.Iterable<java.lang.String> excludes)
          Set the allowable exclude patterns.
 CopySpec setIncludes(java.lang.Iterable<java.lang.String> includes)
          Set the allowable include patterns.
 void setSrcDirs(java.lang.Object srcDirs)
           
 
Methods inherited from class org.gradle.api.internal.ConventionTask
conventionMapping, getConventionMapping, setConventionMapping
 
Methods inherited from class org.gradle.api.DefaultTask
configure, doFirst, doLast, leftShift
 
Methods inherited from class org.gradle.api.internal.AbstractTask
captureStandardOutput, compareTo, defineProperty, deleteAllActions, dependsOn, dependsOnTaskDidWork, disableStandardOutputCapture, doFirst, doLast, equals, execute, getActions, getAdditionalProperties, getAnt, getAsDynamicObject, getConvention, getDependsOn, getDescription, getDidWork, getDynamicObjectHelper, getEnabled, getExecuted, getLogger, getName, getOutput, getPath, getProject, getStandardOutputCapture, getTaskDependencies, hashCode, hasProperty, injectIntoNextInstance, isDidWork, isEnabled, isExecuted, onlyIf, onlyIf, property, setActions, setAdditionalProperties, setConvention, setDependsOn, setDescription, setDidWork, setEnabled, setExecuted, setName, setOutputHandler, setProject, setProperty, setStandardOutputCapture, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.gradle.api.file.CopyAction
execute
 
Methods inherited from interface org.gradle.api.tasks.WorkResult
getDidWork
 
Methods inherited from interface groovy.lang.GroovyObject
getMetaClass, getProperty, invokeMethod, setMetaClass, setProperty
 

Constructor Detail

Copy

public Copy()
Method Detail

getCopyAction

public org.gradle.api.internal.file.CopyActionImpl getCopyAction()

setCopyAction

public void setCopyAction(org.gradle.api.internal.file.CopyActionImpl copyAction)

getSrcDirs

public java.lang.Object getSrcDirs()

setSrcDirs

public void setSrcDirs(java.lang.Object srcDirs)

getDestinationDir

public java.io.File getDestinationDir()

setDestinationDir

public void setDestinationDir(java.io.File destinationDir)

setCaseSensitive

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

Specified by:
setCaseSensitive in interface CopyAction

getLeafSyncSpecs

public java.util.List<? extends CopySpec> getLeafSyncSpecs()

from

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

Specified by:
from in interface CopySourceSpec
Specified by:
from in interface CopySpec
Parameters:
sourcePaths - Paths to source directories for the copy

from

public CopySpec from(java.lang.Object sourcePath,
                     groovy.lang.Closure c)
Specifies the source for a copy and creates a child CopySourceSpec. SourcePath.toString is used as the path. The source is set on the child CopySourceSpec, 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 Project.file() .

Specified by:
from in interface CopySourceSpec
Specified by:
from in interface CopySpec
Parameters:
sourcePath - Path to source for the copy
c - closure for configuring the child CopySourceSpec

into

public CopySpec into(java.lang.Object destDir)
Specifies the destination directory for a copy. The path is evaluated relative to the project directory.

Specified by:
into in interface CopyProcessingSpec
Specified by:
into in interface CopySpec
Parameters:
destDir - Path to the destination directory for a Copy
Returns:
this

include

public CopySpec 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 beneath the base directory 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 interface CopySpec
Specified by:
include in interface PatternFilterable
Parameters:
includes - a vararg list of include patterns
See Also:
Pattern Format

include

public CopySpec 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 beneath the base directory 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 interface CopySpec
Specified by:
include in interface PatternFilterable
Parameters:
includes - a Iterable providing more include patterns
See Also:
Pattern Format

exclude

public CopySpec 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 interface CopySpec
Specified by:
exclude in interface PatternFilterable
Parameters:
excludes - a vararg list of exclude patterns
See Also:
Pattern Format

exclude

public CopySpec 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 interface CopySpec
Specified by:
exclude in interface PatternFilterable
Parameters:
excludes - a Iterable providing new exclude patterns
See Also:
Pattern Format

setIncludes

public CopySpec setIncludes(java.lang.Iterable<java.lang.String> includes)
Set the allowable include patterns. Note that unlike PatternFilterable.include(Iterable) this replaces any previously defined includes.

Specified by:
setIncludes in interface CopySpec
Specified by:
setIncludes in interface PatternFilterable
Parameters:
includes - an Iterable providing new include patterns
See Also:
Pattern Format

getIncludes

public java.util.Set<java.lang.String> getIncludes()
Get the set of include patterns.

Specified by:
getIncludes in interface PatternFilterable

setExcludes

public CopySpec setExcludes(java.lang.Iterable<java.lang.String> excludes)
Set the allowable exclude patterns. Note that unlike PatternFilterable.exclude(Iterable) this replaces any previously defined excludes.

Specified by:
setExcludes in interface CopySpec
Specified by:
setExcludes in interface PatternFilterable
Parameters:
excludes - an Iterable providing new exclude patterns
See Also:
Pattern Format

getExcludes

public java.util.Set<java.lang.String> getExcludes()
Get the set of exclude patterns.

Specified by:
getExcludes in interface PatternFilterable

remapTarget

public CopySpec remapTarget(groovy.lang.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.

Specified by:
remapTarget in interface CopyProcessingSpec
Specified by:
remapTarget in interface CopySpec
Parameters:
closure - remap closure
Returns:
this

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'

Specified by:
rename in interface CopyProcessingSpec
Specified by:
rename in interface CopySpec
Parameters:
sourceRegEx - Source regular expression
replaceWith - Replacement string (use $ syntax for capture groups)
Returns:
this

filter

public CopySpec filter(java.util.Map<java.lang.String,java.lang.Object> map,
                       java.lang.Class<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. 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'])
 

Specified by:
filter in interface CopyProcessingSpec
Specified by:
filter in interface CopySpec
Parameters:
map - map of filter parameters
filterType - Class of filter to add
Returns:
this

filter

public CopySpec filter(java.lang.Class<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. Include org.apache.tools.ant.filters.* for access to all the standard ANT filters.

Examples:

    filter(StripJavaComments)
    filter(com.mycompany.project.CustomFilter)
 

Specified by:
filter in interface CopyProcessingSpec
Specified by:
filter in interface CopySpec
Parameters:
filterType - Class of filter to add
Returns:
this

filter

public CopySpec filter(groovy.lang.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.

Specified by:
filter in interface CopyProcessingSpec
Specified by:
filter in interface CopySpec
Parameters:
closure - to implement line based filtering
Returns:
this