Skip to content

Commit d8ddcd8

Browse files
committed
New steps
1 parent e58e09b commit d8ddcd8

File tree

1 file changed

+18
-5
lines changed

1 file changed

+18
-5
lines changed

docs/configuration/merging/README.md

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -77,21 +77,33 @@ Different strategies will lead to different results for `foo/bar` files in the J
7777
```
7878

7979
The [`ResourceTransformer`][ResourceTransformer]s like [`ServiceFileTransformer`][ServiceFileTransformer] will not work
80-
as expected as the duplicate resource files fed for them are excluded beforehand. However, this behavior might be what you expected for duplicate `foo/bar` files, preventing them from being included.
80+
as expected as the duplicate resource files fed for them are excluded beforehand. However, this behavior might be what
81+
you expected for duplicate `foo/bar` files, preventing them from being included.
8182

82-
Want [`ResourceTransformer`][ResourceTransformer]s and `duplicatesStrategy` to work together? There are several steps
83-
to take:
83+
Want [`ResourceTransformer`][ResourceTransformer]s and `duplicatesStrategy` to work together? There are several common
84+
steps to take:
8485

85-
1. Set the strategy to `INCLUDE` or `WARN`.
86+
1. Set the default strategy to `INCLUDE` or `WARN`.
8687
2. Apply your [`ResourceTransformer`][ResourceTransformer]s.
8788
3. Remove duplicate entries by
88-
- overriding the default strategy for specific files using [`filesMatching`][Jar.filesMatching] or [`eachFile`][Jar.eachFile] functions
89+
- overriding the default strategy for specific files to `EXCLUDE` or `FAIL` using
90+
[`filesMatching`][Jar.filesMatching], [`filesNotMatching`][Jar.filesNotMatching], or [`eachFile`][Jar.eachFile] functions
8991
- or applying [`PreserveFirstFoundResourceTransformer`][PreserveFirstFoundResourceTransformer] for specific files
9092
- or write your own [`ResourceTransformer`][ResourceTransformer] to handle duplicates
9193
- or mechanism similar.
9294
4. Optionally, enable [`ShadowJar.failOnDuplicateEntries`][ShadowJar.failOnDuplicateEntries] to check duplicate entries in the final JAR.
9395
5. Optionally, use [Diffuse](https://github.com/JakeWharton/diffuse) to diff the JARs.
9496

97+
or the steps like:
98+
99+
1. Set the default strategy to `EXCLUDE` or `FAIL`.
100+
2. Apply your [`ResourceTransformer`][ResourceTransformer]s.
101+
3. Bypass the duplicate entries which should be handled by the [`ResourceTransformer`][ResourceTransformer]s using
102+
[`filesMatching`][Jar.filesMatching], [`filesNotMatching`][Jar.filesNotMatching], or [`eachFile`][Jar.eachFile] functions
103+
to set their `duplicatesStrategy` to `INCLUDE` or `WARN`.
104+
4. Optionally, enable [`ShadowJar.failOnDuplicateEntries`][ShadowJar.failOnDuplicateEntries] to check duplicate entries in the final JAR.
105+
5. Optionally, use [Diffuse](https://github.com/JakeWharton/diffuse) to diff the JARs.
106+
95107
## Basic ResourceTransformer Usage
96108

97109
For simpler use cases, you can create a basic transformer:
@@ -453,6 +465,7 @@ It must be added using the [`transform`][ShadowJar.transform] methods.
453465
[AbstractCopyTask]: https://docs.gradle.org/current/dsl/org.gradle.api.tasks.AbstractCopyTask.html
454466
[Jar.eachFile]: https://docs.gradle.org/current/dsl/org.gradle.jvm.tasks.Jar.html#org.gradle.jvm.tasks.Jar:eachFile(org.gradle.api.Action)
455467
[Jar.filesMatching]: https://docs.gradle.org/current/dsl/org.gradle.jvm.tasks.Jar.html#org.gradle.jvm.tasks.Jar:filesMatching(java.lang.Iterable,%20org.gradle.api.Action)
468+
[Jar.filesNotMatching]: https://docs.gradle.org/current/dsl/org.gradle.jvm.tasks.Jar.html#org.gradle.jvm.tasks.Jar:filesNotMatching(java.lang.Iterable,%20org.gradle.api.Action)
456469
[AppendingTransformer]: ../../api/shadow/com.github.jengelman.gradle.plugins.shadow.transformers/-appending-transformer/index.html
457470
[DuplicatesStrategy]: https://docs.gradle.org/current/javadoc/org/gradle/api/file/DuplicatesStrategy.html
458471
[GroovyExtensionModuleTransformer]: ../../api/shadow/com.github.jengelman.gradle.plugins.shadow.transformers/-groovy-extension-module-transformer/index.html

0 commit comments

Comments
 (0)