Table of Contents
| API Documentation: | Jar |
|---|
Assembles a JAR archive.
| Property | Description |
appendix | Deprecated Replaced The appendix part of the archive name, if any. |
archiveAppendix | The appendix part of the archive name, if any. |
archiveBaseName | The base name of the archive. |
archiveClassifier | The classifier part of the archive name, if any. |
archiveExtension | The extension part of the archive name. |
archiveFile | The |
archiveFileName | The archive name. If the name has not been explicitly set, the pattern for the name is:
|
archiveName | Deprecated Replaced The archive name. If the name has not been explicitly set, the pattern for the name is:
|
archivePath | Deprecated Replaced The path where the archive is constructed. The path is simply the |
archiveVersion | The version part of the archive name. |
baseName | Deprecated Replaced The base name of the archive. |
caseSensitive | Specifies whether case-sensitive pattern matching should be used. |
classifier | Deprecated Replaced The classifier part of the archive name, if any. |
destinationDir | Deprecated Replaced The directory where the archive is generated into. |
destinationDirectory | The directory where the archive will be placed. |
dirMode | The Unix permissions to use for the target directories. |
duplicatesStrategy | The strategy to use when trying to copy more than one file to the same destination. |
entryCompression | The compression level of the entries of the archive. If set to |
excludes | The set of exclude patterns. |
extension | Deprecated Replaced The extension part of the archive name. |
fileMode | The Unix permissions to use for the target files. |
includeEmptyDirs | Tells if empty target directories will be included in the copy. |
includes | The set of include patterns. |
manifest | The manifest for this JAR archive. |
metadataCharset | The character set used to encode JAR metadata like file names. Defaults to UTF-8. You can change this property but it is not recommended as JVMs expect JAR metadata to be encoded using UTF-8 |
preserveFileTimestamps | Specifies whether file timestamps should be preserved in the archive. |
reproducibleFileOrder | Specifies whether to enforce a reproducible file order when reading files from directories. |
source | The source files for this task. |
version | Deprecated Replaced The version part of the archive name, if any. |
zip64 | Whether the zip can contain more than 65535 files and/or support files greater than 4GB in size. |
| Method | Description |
eachFile(closure) | 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 |
eachFile(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. |
exclude(excludeSpec) | Adds an exclude spec. This method may be called multiple times to append new specs.The given closure is passed a
|
exclude(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. |
exclude(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. |
exclude(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. |
expand(properties) | Expands property references in each file as it is copied. More specifically, each file is transformed using
Groovy's |
expand(properties, action) | Expands property references in each file as it is copied. More specifically, each file is transformed using
Groovy's |
filesMatching(patterns, action) | Configure the |
filesMatching(pattern, action) | Configure the |
filesNotMatching(patterns, action) | Configure the |
filesNotMatching(pattern, action) | Configure the |
filter(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 |
filter(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 |
filter(properties, 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 |
filter(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 |
from(sourcePath, c) | Specifies the source files or directories for a copy and creates a child |
from(sourcePath, configureAction) | Specifies the source files or directories for a copy and creates a child |
from(sourcePaths) | Specifies source files or directories for a copy. The given paths are evaluated as per |
include(includeSpec) | Adds an include spec. This method may be called multiple times to append new specs. The given closure is passed a
|
include(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. |
include(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. |
include(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. |
into(destPath) | Specifies the destination directory *inside* the archive for the files.
The destination is evaluated as per |
into(destPath, configureClosure) | Creates and configures a child |
into(destPath, copySpec) | Creates and configures a child |
manifest(configureClosure) | Configures the manifest for this JAR archive. |
manifest(configureAction) | Configures the manifest for this JAR archive. |
metaInf(configureClosure) | Adds content to this JAR archive's META-INF directory. |
metaInf(configureAction) | Adds content to this JAR archive's META-INF directory. |
rename(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. |
rename(sourceRegEx, 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. |
rename(sourceRegEx, replaceWith) | Renames files based on a regular expression. See |
rename(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. |
with(sourceSpecs) | Adds the given specs as a child of this spec. |
String appendix
Note: This property is deprecated and will be removed in the next major version of Gradle.
Note: This property has been replaced by archiveAppendix.
The appendix part of the archive name, if any.
- Default with
javaplugin: ""
The appendix part of the archive name, if any.
- Default with
javaplugin: ""
The base name of the archive.
- Default with
javaplugin: project.archivesBaseName
The classifier part of the archive name, if any.
- Default with
javaplugin: ""
Provider<RegularFile> archiveFile
Provider<RegularFile>The RegularFile where the archive is constructed.
The path is simply the destinationDirectory plus the archiveFileName.
- Default with
javaplugin: ${destinationDirectory}/${archiveFileName}
The archive name. If the name has not been explicitly set, the pattern for the name is:
[archiveBaseName]-[archiveAppendix]-[archiveVersion]-[archiveClassifier].[archiveExtension]
- Default with
javaplugin: ${archiveBaseName}-${archiveAppendix}-${archiveVersion}-${archiveClassifier}.${archiveExtension}
String archiveName
Note: This property is deprecated and will be removed in the next major version of Gradle.
Note: This property has been replaced by archiveFileName.
The archive name. If the name has not been explicitly set, the pattern for the name is:
[archiveBaseName]-[archiveAppendix]-[archiveVersion]-[archiveClassifier].[archiveExtension]
- Default with
javaplugin: ${archiveBaseName}-${archiveAppendix}-${archiveVersion}-${archiveClassifier}.${archiveExtension}
File archivePath (read-only)
Note: This property is deprecated and will be removed in the next major version of Gradle.
Note: This property has been replaced by archiveFile.
The path where the archive is constructed. The path is simply the destinationDirectory plus the archiveFileName.
- Default with
javaplugin: ${destinationDirectory}/${archiveFileName}
The version part of the archive name.
- Default with
javaplugin: project.version
String baseName
Note: This property is deprecated and will be removed in the next major version of Gradle.
Note: This property has been replaced by archiveBaseName.
The base name of the archive.
- Default with
javaplugin: project.archivesBaseName
Specifies whether case-sensitive pattern matching should be used.
- Default with
javaplugin: true
String classifier
Note: This property is deprecated and will be removed in the next major version of Gradle.
Note: This property has been replaced by archiveClassifier.
The classifier part of the archive name, if any.
- Default with
javaplugin: ""
File destinationDir
Note: This property is deprecated and will be removed in the next major version of Gradle.
Note: This property has been replaced by destinationDirectory.
The directory where the archive is generated into.
- Default with
javaplugin: project.distsDir
DirectoryProperty destinationDirectory
The directory where the archive will be placed.
- Default with
javaplugin: project.distsDir
Integer dirMode
The Unix permissions to use for the target directories. null means that existing
permissions are preserved. It is dependent on the copy action implementation whether these permissions
will actually be applied.
- Default with
javaplugin: null
DuplicatesStrategy duplicatesStrategy
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 CopySpec.eachFile(org.gradle.api.Action) or CopySpec.filesMatching(java.lang.String, org.gradle.api.Action).
- Default with
javaplugin: DuplicatesStrategy.INHERIT
ZipEntryCompression entryCompression
The compression level of the entries of the archive. If set to ZipEntryCompression.DEFLATED (the default), each entry is
compressed using the DEFLATE algorithm. If set to ZipEntryCompression.STORED the entries of the archive are left uncompressed.
- Default:
ZipEntryCompression.DEFLATED
String extension
Note: This property is deprecated and will be removed in the next major version of Gradle.
Note: This property has been replaced by archiveExtension.
The extension part of the archive name.
Integer fileMode
The Unix permissions to use for the target files. null means that existing
permissions are preserved. It is dependent on the copy action implementation whether these permissions
will actually be applied.
- Default with
javaplugin: null
Tells if empty target directories will be included in the copy.
- Default with
javaplugin: true
Manifest manifest
The manifest for this JAR archive.
String metadataCharset
The character set used to encode JAR metadata like file names. Defaults to UTF-8. You can change this property but it is not recommended as JVMs expect JAR metadata to be encoded using UTF-8
- Default:
UTF-8
Specifies whether file timestamps should be preserved in the archive.
If false this ensures that archive entries have the same time for builds between different machines, Java versions and operating systems.
- Default with
javaplugin: true
Specifies whether to enforce a reproducible file order when reading files from directories.
Gradle will then walk the directories on disk which are part of this archive in a reproducible order independent of file systems and operating systems. This helps Gradle reliably produce byte-for-byte reproducible archives.
- Default with
javaplugin: false
String version
Note: This property is deprecated and will be removed in the next major version of Gradle.
Note: This property has been replaced by archiveVersion.
The version part of the archive name, if any.
- Default with
javaplugin: project.version
Whether the zip can contain more than 65535 files and/or support files greater than 4GB in size.
The standard zip format has hard limits on file size and count. The Zip64 format extension practically removes these limits and is therefore required for building large zips.
However, not all Zip readers support the Zip64 extensions.
Notably, the ZipInputStream JDK class does not support Zip64 for versions earlier than Java 7.
This means you should not enable this property if you are building JARs to be used with Java 6 and earlier runtimes.
- Default:
false
AbstractCopyTask eachFile(Closure closure)
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.
AbstractCopyTask eachFile(Action<? super FileCopyDetails> action)
Action<? super FileCopyDetails>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.
AbstractCopyTask 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.
AbstractCopyTask exclude(Iterable<String> excludes)
Iterable<String>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.
AbstractCopyTask exclude(String... excludes)
String...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.
AbstractCopyTask exclude(Spec<FileTreeElement> excludeSpec)
Spec<FileTreeElement>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.
AbstractCopyTask expand(Map<String, ?> properties)
Map<String, ?>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(java.util.Map, org.gradle.api.Action)
should be used to disable this behavior.
AbstractCopyTask expand(Map<String, ?> properties, Action<? super ExpandDetails> action)
Map<String, ?>Action<? super ExpandDetails>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 }
AbstractCopyTask filesMatching(Iterable<String> patterns, Action<? super FileCopyDetails> action)
Iterable<String>Action<? super FileCopyDetails>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.
AbstractCopyTask filesMatching(String pattern, Action<? super FileCopyDetails> action)
Action<? super FileCopyDetails>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.
AbstractCopyTask filesNotMatching(Iterable<String> patterns, Action<? super FileCopyDetails> action)
Iterable<String>Action<? super FileCopyDetails>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.
AbstractCopyTask filesNotMatching(String pattern, Action<? super FileCopyDetails> action)
Action<? super FileCopyDetails>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.
AbstractCopyTask 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.
AbstractCopyTask filter(Class<? extends FilterReader> filterType)
Class<? extends FilterReader>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)
AbstractCopyTask filter(Map<String, ?> properties, Class<? extends FilterReader> filterType)
Map<String, ?>Class<? extends FilterReader>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'])
AbstractCopyTask filter(Transformer<String, String> transformer)
Transformer<String, String>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.
AbstractCopyTask from(Object sourcePath, Closure c)
Specifies the source files or directories for a copy and creates a child CopySourceSpec. The given source
path is evaluated as per Project.files(java.lang.Object[]) .
AbstractCopyTask from(Object sourcePath, Action<? super CopySpec> configureAction)
Action<? super CopySpec>Specifies the source files or directories for a copy and creates a child CopySpec. The given source
path is evaluated as per Project.files(java.lang.Object[]) .
AbstractCopyTask from(Object... sourcePaths)
Object...Specifies source files or directories for a copy. The given paths are evaluated as per Project.files(java.lang.Object[]).
AbstractCopyTask 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.
AbstractCopyTask include(Iterable<String> includes)
Iterable<String>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.
AbstractCopyTask include(String... includes)
String...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.
AbstractCopyTask include(Spec<FileTreeElement> includeSpec)
Spec<FileTreeElement>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.
AbstractArchiveTask into(Object destPath)
Specifies the destination directory *inside* the archive for the files.
The destination is evaluated as per Project.file(java.lang.Object).
Don't mix it up with AbstractArchiveTask.getDestinationDirectory() which specifies the output directory for the archive.
AbstractArchiveTask into(Object destPath, Closure configureClosure)
Creates and configures a child CopySpec with a destination directory *inside* the archive for the files.
The destination is evaluated as per Project.file(java.lang.Object).
Don't mix it up with AbstractArchiveTask.getDestinationDirectory() which specifies the output directory for the archive.
Creates and configures a child CopySpec with a destination directory *inside* the archive for the files.
The destination is evaluated as per Project.file(java.lang.Object).
Don't mix it up with AbstractArchiveTask.getDestinationDirectory() which specifies the output directory for the archive.
Configures the manifest for this JAR archive.
The given closure is executed to configure the manifest. The Manifest is passed to the closure as its delegate.
Configures the manifest for this JAR archive.
The given action is executed to configure the manifest.
Adds content to this JAR archive's META-INF directory.
The given closure is executed to configure a CopySpec. The CopySpec is passed to the closure as its delegate.
Adds content to this JAR archive's META-INF directory.
The given action is executed to configure a CopySpec.
AbstractCopyTask 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.
AbstractCopyTask 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'
AbstractCopyTask rename(Pattern sourceRegEx, String replaceWith)
Renames files based on a regular expression. See CopyProcessingSpec.rename(java.lang.String, java.lang.String).
AbstractCopyTask rename(Transformer<String, String> renamer)
Transformer<String, String>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.