Schnittstelle CopySpec

Alle Superschnittstellen:
ContentFilterable, CopyProcessingSpec, CopySourceSpec, PatternFilterable
Alle bekannten Unterschnittstellen:
SyncSpec
Alle bekannten Implementierungsklassen:
AbstractArchiveTask, AbstractCopyTask, Copy, Ear, Jar, Jar, ProcessResources, Sync, Tar, War, Zip

public interface CopySpec extends CopySourceSpec, CopyProcessingSpec, PatternFilterable
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(CopySpec...) 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
 }
 
Siehe auch:
  • Methodendetails

    • isCaseSensitive

      boolean isCaseSensitive()
      Specifies whether case-sensitive pattern matching should be used.
      Gibt zurück:
      true for case-sensitive matching.
    • setCaseSensitive

      void setCaseSensitive(boolean caseSensitive)
      Specifies whether case-sensitive pattern matching should be used for this CopySpec.
      Parameter:
      caseSensitive - true for case-sensitive matching.
    • getIncludeEmptyDirs

      boolean getIncludeEmptyDirs()
      Tells if empty target directories will be included in the copy.
      Gibt zurück:
      true if empty target directories will be included in the copy, false otherwise
    • setIncludeEmptyDirs

      void setIncludeEmptyDirs(boolean includeEmptyDirs)
      Controls if empty target directories should be included in the copy.
      Parameter:
      includeEmptyDirs - true if empty target directories should be included in the copy, false otherwise
    • getDuplicatesStrategy

      DuplicatesStrategy getDuplicatesStrategy()
      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).

      Gibt zurück:
      the strategy to use for files included by this copy spec.
      Siehe auch:
    • setDuplicatesStrategy

      void setDuplicatesStrategy(DuplicatesStrategy strategy)
      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

      CopySpec filesMatching(String pattern, Action<? super FileCopyDetails> action)
      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.
      Parameter:
      pattern - Ant-style pattern used to match against files' relative paths
      action - action called for the FileCopyDetails of each file matching pattern
      Gibt zurück:
      this
    • filesMatching

      CopySpec filesMatching(Iterable<String> patterns, Action<? super FileCopyDetails> action)
      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.
      Parameter:
      patterns - Ant-style patterns used to match against files' relative paths
      action - action called for the FileCopyDetails of each file matching pattern
      Gibt zurück:
      this
    • filesNotMatching

      CopySpec filesNotMatching(String pattern, Action<? super FileCopyDetails> action)
      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.
      Parameter:
      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
      Gibt zurück:
      this
    • filesNotMatching

      CopySpec filesNotMatching(Iterable<String> patterns, Action<? super FileCopyDetails> action)
      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.
      Parameter:
      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
      Gibt zurück:
      this
    • with

      CopySpec with(CopySpec... sourceSpecs)
      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
       }
       
      Parameter:
      sourceSpecs - The specs to add
      Gibt zurück:
      this
    • from

      CopySpec from(Object... sourcePaths)
      Specifies source files or directories for a copy. The given paths are evaluated as per Project.files(Object...).
      Angegeben von:
      from in Schnittstelle CopySourceSpec
      Parameter:
      sourcePaths - Paths to source files for the copy
    • from

      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...) .
      Angegeben von:
      from in Schnittstelle CopySourceSpec
      Parameter:
      sourcePath - Path to source for the copy
      c - closure for configuring the child CopySourceSpec
    • from

      CopySpec from(Object sourcePath, Action<? super CopySpec> configureAction)
      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...) .
      Angegeben von:
      from in Schnittstelle CopySourceSpec
      Parameter:
      sourcePath - Path to source for the copy
      configureAction - action for configuring the child CopySpec
    • setIncludes

      CopySpec setIncludes(Iterable<String> includes)
      Set the allowable include patterns. Note that unlike PatternFilterable.include(Iterable) this replaces any previously defined includes.
      Angegeben von:
      setIncludes in Schnittstelle PatternFilterable
      Parameter:
      includes - an Iterable providing new include patterns
      Gibt zurück:
      this
      Siehe auch:
    • setExcludes

      CopySpec setExcludes(Iterable<String> excludes)
      Set the allowable exclude patterns. Note that unlike PatternFilterable.exclude(Iterable) this replaces any previously defined excludes.
      Angegeben von:
      setExcludes in Schnittstelle PatternFilterable
      Parameter:
      excludes - an Iterable providing new exclude patterns
      Gibt zurück:
      this
      Siehe auch:
    • include

      CopySpec include(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 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.
      Angegeben von:
      include in Schnittstelle PatternFilterable
      Parameter:
      includes - a vararg list of include patterns
      Gibt zurück:
      this
      Siehe auch:
    • include

      CopySpec include(Iterable<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 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.
      Angegeben von:
      include in Schnittstelle PatternFilterable
      Parameter:
      includes - a Iterable providing more include patterns
      Gibt zurück:
      this
      Siehe auch:
    • include

      CopySpec include(Spec<FileTreeElement> includeSpec)
      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.
      Angegeben von:
      include in Schnittstelle PatternFilterable
      Parameter:
      includeSpec - the spec to add
      Gibt zurück:
      this
      Siehe auch:
    • include

      CopySpec include(Closure includeSpec)
      Adds an include spec. This method may be called multiple times to append new specs. The given closure is passed a 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.
      Angegeben von:
      include in Schnittstelle PatternFilterable
      Parameter:
      includeSpec - the spec to add
      Gibt zurück:
      this
      Siehe auch:
    • exclude

      CopySpec exclude(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.
      Angegeben von:
      exclude in Schnittstelle PatternFilterable
      Parameter:
      excludes - a vararg list of exclude patterns
      Gibt zurück:
      this
      Siehe auch:
    • exclude

      CopySpec exclude(Iterable<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.
      Angegeben von:
      exclude in Schnittstelle PatternFilterable
      Parameter:
      excludes - a Iterable providing new exclude patterns
      Gibt zurück:
      this
      Siehe auch:
    • exclude

      CopySpec exclude(Spec<FileTreeElement> excludeSpec)
      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.
      Angegeben von:
      exclude in Schnittstelle PatternFilterable
      Parameter:
      excludeSpec - the spec to add
      Gibt zurück:
      this
      Siehe auch:
    • exclude

      CopySpec exclude(Closure excludeSpec)
      Adds an exclude spec. This method may be called multiple times to append new specs.The given closure is passed a 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.
      Angegeben von:
      exclude in Schnittstelle PatternFilterable
      Parameter:
      excludeSpec - the spec to add
      Gibt zurück:
      this
      Siehe auch:
    • into

      CopySpec into(Object destPath)
      Specifies the destination directory for a copy. The destination is evaluated as per Project.file(Object).
      Angegeben von:
      into in Schnittstelle CopyProcessingSpec
      Parameter:
      destPath - Path to the destination directory for a Copy
      Gibt zurück:
      this
    • into

      CopySpec into(Object destPath, @DelegatesTo(CopySpec.class) Closure configureClosure)
      Creates and configures a child CopySpec with the given destination path. The destination is evaluated as per Project.file(Object).
      Parameter:
      destPath - Path to the destination directory for a Copy
      configureClosure - The closure to use to configure the child CopySpec.
      Gibt zurück:
      this
    • into

      CopySpec into(Object destPath, Action<? super CopySpec> copySpec)
      Creates and configures a child CopySpec with the given destination path. The destination is evaluated as per Project.file(Object).
      Parameter:
      destPath - Path to the destination directory for a Copy
      copySpec - The action to use to configure the child CopySpec.
      Gibt zurück:
      this
    • rename

      CopySpec rename(Closure closure)
      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.
      Angegeben von:
      rename in Schnittstelle CopyProcessingSpec
      Parameter:
      closure - rename closure
      Gibt zurück:
      this
    • rename

      CopySpec rename(Transformer<@Nullable String,String> renamer)
      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.
      Angegeben von:
      rename in Schnittstelle CopyProcessingSpec
      Parameter:
      renamer - rename function
      Gibt zurück:
      this
    • rename

      CopySpec rename(String sourceRegEx, 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'
      Angegeben von:
      rename in Schnittstelle CopyProcessingSpec
      Parameter:
      sourceRegEx - Source regular expression
      replaceWith - Replacement string (use $ syntax for capture groups)
      Gibt zurück:
      this
    • rename

      CopyProcessingSpec rename(Pattern sourceRegEx, String replaceWith)
      Renames files based on a regular expression. See CopyProcessingSpec.rename(String, String).
      Angegeben von:
      rename in Schnittstelle CopyProcessingSpec
      Parameter:
      sourceRegEx - Source regular expression
      replaceWith - Replacement string (use $ syntax for capture groups)
      Gibt zurück:
      this
    • filter

      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'])
       
      Angegeben von:
      filter in Schnittstelle ContentFilterable
      Parameter:
      properties - map of filter properties
      filterType - Class of filter to add
      Gibt zurück:
      this
    • filter

      CopySpec 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)
       
      Angegeben von:
      filter in Schnittstelle ContentFilterable
      Parameter:
      filterType - Class of filter to add
      Gibt zurück:
      this
    • filter

      CopySpec filter(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 or null to remove the line. If every line is removed, the result will be an empty file, not an absent one.
      Angegeben von:
      filter in Schnittstelle ContentFilterable
      Parameter:
      closure - to implement line based filtering
      Gibt zurück:
      this
    • filter

      CopySpec filter(Transformer<@Nullable String,String> transformer)
      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.
      Angegeben von:
      filter in Schnittstelle ContentFilterable
      Parameter:
      transformer - to implement line based filtering
      Gibt zurück:
      this
    • expand

      CopySpec 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(' ')}

      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.

      Angegeben von:
      expand in Schnittstelle ContentFilterable
      Parameter:
      properties - reference-to-value map for substitution
      Gibt zurück:
      this
    • expand

      CopySpec expand(Map<String,?> properties, Action<? super ExpandDetails> action)

      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 by ExpandDetails.getEscapeBackslash() property. It should be set to true to disable escape sequences conversion:

        expand(one: '1', two: 2) {
            escapeBackslash = true
        }
       
      Angegeben von:
      expand in Schnittstelle ContentFilterable
      Parameter:
      properties - reference-to-value map for substitution
      action - action to perform additional configuration of the underlying template engine
      Gibt zurück:
      this
    • eachFile

      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. 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.
      Angegeben von:
      eachFile in Schnittstelle CopyProcessingSpec
      Parameter:
      action - The action to execute.
      Gibt zurück:
      this
    • eachFile

      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.
      Angegeben von:
      eachFile in Schnittstelle CopyProcessingSpec
      Parameter:
      closure - The action to execute.
      Gibt zurück:
      this
    • getFilteringCharset

      String getFilteringCharset()
      Gets the charset used to read and write files when filtering. By default, the JVM default charset is used.
      Gibt zurück:
      the charset used to read and write files when filtering
      Seit:
      2.14
    • setFilteringCharset

      void setFilteringCharset(String charset)
      Specifies the charset used to read and write files when filtering.
      Parameter:
      charset - the name of the charset to use when filtering files
      Seit:
      2.14