Applies the unified diff patches found at patches and
ending with the diffExtension (.diff by default)
to the content at the content path and writes the results
to the destination path.
The patch path can identify a file, in which case the content path must
also identify a file and the diffExtension is ignored, or a
directory in which case the content path must also identify a directory.
If these paths identify files then the result will be a file with the same
name as the content file, placed in the destination directory.
If patches and content are directories then the task will look for all
patches with the diffExtension under the source directory, and
apply the patches to files with the identical relative paths under the content
directory.
In other words, the patches must be named the same as the content files, with the diff extension added. These match and produce the result:
${patches}/a/b/c/d/e.txt.diff
${content}/a/b/c/d/e.txt
${destination}/a/b/c/d/e.txt
When the patch task is applied with the structure given in the
example above, the unified diff patch in e.txt.diff
is going to be applied to e.txt, and this generates the
file with the same name in the destination directory.
| Fields inherited from class | Fields |
|---|---|
class org.gradle.api.DefaultTask |
TASK_NAME, TASK_DESCRIPTION, TASK_GROUP, TASK_TYPE, TASK_DEPENDS_ON, TASK_OVERWRITE, TASK_ACTION, TASK_CONSTRUCTOR_ARGS |
| Type | Name and description |
|---|---|
java.nio.charset.Charset |
charsetThe character set in use, UTF-8 by default. |
java.lang.Object |
contentThe content to apply the patch(es) to. |
java.lang.Object |
destinationThe directory (not file) to write the patched content into. |
java.lang.String |
diffExtensionThe extension identifying the patch files. |
java.lang.Object |
patchThe patch to apply - syntactic sugar for using with single patches. |
java.lang.Object |
patchesThe patch(es) to apply. |
| Type Params | Return Type | Name and description |
|---|---|---|
|
void |
apply()Applies the patches to the content. |
|
org.gradle.api.Task |
configure(groovy.lang.Closure closure)Task configuration. |
|
java.io.File |
findDefaultDestinationDir()Looks up the destination directory of the processResources
task, if available, or returns null. |
| Methods inherited from class | Name |
|---|---|
class org.gradle.api.DefaultTask |
org.gradle.api.DefaultTask#getProject(), org.gradle.api.DefaultTask#setDescription(java.lang.String), org.gradle.api.DefaultTask#getIdentityPath(), org.gradle.api.DefaultTask#getStandardOutputCapture(), org.gradle.api.DefaultTask#setGroup(java.lang.String), org.gradle.api.DefaultTask#getAnt(), org.gradle.api.DefaultTask#getConvention(), org.gradle.api.DefaultTask#getLogging(), org.gradle.api.DefaultTask#getLogging(), org.gradle.api.DefaultTask#getDidWork(), org.gradle.api.DefaultTask#getAsDynamicObject(), org.gradle.api.DefaultTask#usesService(org.gradle.api.provider.Provider), org.gradle.api.DefaultTask#setShouldRunAfter(java.lang.Iterable), org.gradle.api.DefaultTask#getEnabled(), org.gradle.api.DefaultTask#getOutputs(), org.gradle.api.DefaultTask#getOutputs(), org.gradle.api.DefaultTask#getDestroyables(), org.gradle.api.DefaultTask#getLocalState(), org.gradle.api.DefaultTask#getTemporaryDir(), org.gradle.api.DefaultTask#mustRunAfter([Ljava.lang.Object;), org.gradle.api.DefaultTask#setMustRunAfter(java.lang.Iterable), org.gradle.api.DefaultTask#getMustRunAfter(), org.gradle.api.DefaultTask#finalizedBy([Ljava.lang.Object;), org.gradle.api.DefaultTask#setFinalizedBy(java.lang.Iterable), org.gradle.api.DefaultTask#getFinalizedBy(), org.gradle.api.DefaultTask#shouldRunAfter([Ljava.lang.Object;), org.gradle.api.DefaultTask#getTaskDependencies(), org.gradle.api.DefaultTask#getTaskDependencies(), org.gradle.api.DefaultTask#getShouldRunAfter(), org.gradle.api.DefaultTask#setActions(java.util.List), org.gradle.api.DefaultTask#getDependsOn(), org.gradle.api.DefaultTask#setDependsOn(java.lang.Iterable), org.gradle.api.DefaultTask#dependsOn([Ljava.lang.Object;), org.gradle.api.DefaultTask#onlyIf(groovy.lang.Closure), org.gradle.api.DefaultTask#onlyIf(org.gradle.api.specs.Spec), org.gradle.api.DefaultTask#setOnlyIf(groovy.lang.Closure), org.gradle.api.DefaultTask#setOnlyIf(org.gradle.api.specs.Spec), org.gradle.api.DefaultTask#setDidWork(boolean), org.gradle.api.DefaultTask#doFirst(java.lang.String, org.gradle.api.Action), org.gradle.api.DefaultTask#doFirst(groovy.lang.Closure), org.gradle.api.DefaultTask#doFirst(org.gradle.api.Action), org.gradle.api.DefaultTask#doLast(org.gradle.api.Action), org.gradle.api.DefaultTask#doLast(java.lang.String, org.gradle.api.Action), org.gradle.api.DefaultTask#doLast(groovy.lang.Closure), org.gradle.api.DefaultTask#getTaskIdentity(), org.gradle.api.DefaultTask#injectIntoNewInstance(org.gradle.api.internal.project.ProjectInternal, org.gradle.api.internal.project.taskfactory.TaskIdentity, java.util.concurrent.Callable), org.gradle.api.DefaultTask#getTaskActions(), org.gradle.api.DefaultTask#hasTaskActions(), org.gradle.api.DefaultTask#getOnlyIf(), org.gradle.api.DefaultTask#getImpliesSubProjects(), org.gradle.api.DefaultTask#setImpliesSubProjects(boolean), org.gradle.api.DefaultTask#replaceLogger(org.gradle.api.logging.Logger), org.gradle.api.DefaultTask#getTemporaryDirFactory(), org.gradle.api.DefaultTask#prependParallelSafeAction(org.gradle.api.Action), org.gradle.api.DefaultTask#appendParallelSafeAction(org.gradle.api.Action), org.gradle.api.DefaultTask#isHasCustomActions(), org.gradle.api.DefaultTask#getRequiredServices(), org.gradle.api.DefaultTask#getSharedResources(), org.gradle.api.DefaultTask#getTimeout(), org.gradle.api.DefaultTask#getLogger(), org.gradle.api.DefaultTask#property(java.lang.String), org.gradle.api.DefaultTask#isEnabled(), org.gradle.api.DefaultTask#configure(groovy.lang.Closure), org.gradle.api.DefaultTask#configure(groovy.lang.Closure), org.gradle.api.DefaultTask#getDescription(), org.gradle.api.DefaultTask#setEnabled(boolean), org.gradle.api.DefaultTask#hasProperty(java.lang.String), org.gradle.api.DefaultTask#getGroup(), org.gradle.api.DefaultTask#getInputs(), org.gradle.api.DefaultTask#getInputs(), org.gradle.api.DefaultTask#setProperty(java.lang.String, java.lang.Object), org.gradle.api.DefaultTask#compareTo(org.gradle.api.Task), org.gradle.api.DefaultTask#compareTo(java.lang.Object), org.gradle.api.DefaultTask#getName(), org.gradle.api.DefaultTask#getActions(), org.gradle.api.DefaultTask#getState(), org.gradle.api.DefaultTask#getState(), org.gradle.api.DefaultTask#getPath(), org.gradle.api.DefaultTask#getExtensions(), org.gradle.api.DefaultTask#wait(long, int), org.gradle.api.DefaultTask#wait(long), org.gradle.api.DefaultTask#wait(), org.gradle.api.DefaultTask#equals(java.lang.Object), org.gradle.api.DefaultTask#toString(), org.gradle.api.DefaultTask#hashCode(), org.gradle.api.DefaultTask#getClass(), org.gradle.api.DefaultTask#notify(), org.gradle.api.DefaultTask#notifyAll() |
The character set in use, UTF-8 by default.
The content to apply the patch(es) to. Can be a string path, a file object or a closure producing either.
The directory (not file) to write the patched content into.
The extension identifying the patch files. Set this property to a
different value like .patch for example, to instruct
the patching logic to look for files with an extension other than
.patch.
The patch to apply - syntactic sugar for using with single patches.
Use either patch or patches, it does not matter
which, if both are used then patch will be ignored.
The patch(es) to apply. Can be a string path, a file object or a closure producting either.
Applies the patches to the content.
Task configuration. If the processResources task is available
then its destination directory is set as the default destination directory.
closure - The configuration closure Looks up the destination directory of the processResources
task, if available, or returns null.