Skip to content

Commit 3165714

Browse files
authored
Exclude Multi-Release files from Jackson while shading (#2793)
Cucumber-JVM uses Jackson Databind to write json. Because Jackson is a very common dependency, to ensure we do not interfere with the system under test, we shade it. Unfortunately the Shade plugin occasionally gets updates and now includes multi-releases. These were not included in the relocation pattern and result in duplicate classes when Cucumber itself is shaded. As `cucumber-core` is not a multi-release jar, we can exclude the multi- release files altogether. Fixes: #2786
1 parent b0a4373 commit 3165714

File tree

2 files changed

+11
-6
lines changed

2 files changed

+11
-6
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1111

1212
## [Unreleased]
1313

14+
### Fixed
15+
- [Core] Exclude Multi-Release files from Jackson while shading ([#2786](https://github.com/cucumber/cucumber-jvm/pull/2786) M.P. Korstanje)
16+
1417
## [7.13.0] - 2023-07-02
1518
### Changed
1619
- [TestNG] Update dependency org.testng:testng to v7.8.0

cucumber-core/pom.xml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,12 @@
232232
<goal>shade</goal>
233233
</goals>
234234
<configuration>
235+
<transformers>
236+
<transformer implementation="org.apache.maven.plugins.shade.resource.ApacheLicenseResourceTransformer"/>
237+
<transformer implementation="org.apache.maven.plugins.shade.resource.ApacheNoticeResourceTransformer">
238+
<addHeader>false</addHeader>
239+
</transformer>
240+
</transformers>
235241
<artifactSet>
236242
<includes>
237243
<include>com.fasterxml.jackson.core:jackson-databind</include>
@@ -253,35 +259,31 @@
253259
<exclude>**/module-info.class</exclude>
254260
<exclude>**/module-info.class</exclude>
255261
<exclude>META-INF/MANIFEST.MF</exclude>
256-
<exclude>META-INF/LICENSE</exclude>
257-
<exclude>META-INF/NOTICE</exclude>
258262
<exclude>META-INF/services/**</exclude>
263+
<exclude>META-INF/versions/**</exclude>
259264
</excludes>
260265
</filter>
261266
<filter>
262267
<artifact>com.fasterxml.jackson.core:jackson-core</artifact>
263268
<excludes>
264269
<exclude>**/module-info.class</exclude>
265270
<exclude>META-INF/MANIFEST.MF</exclude>
266-
<exclude>META-INF/LICENSE</exclude>
267-
<exclude>META-INF/NOTICE</exclude>
268271
<exclude>META-INF/services/**</exclude>
272+
<exclude>META-INF/versions/**</exclude>
269273
</excludes>
270274
</filter>
271275
<filter>
272276
<artifact>com.fasterxml.jackson.core:jackson-annotations</artifact>
273277
<excludes>
274278
<exclude>**/module-info.class</exclude>
275279
<exclude>META-INF/MANIFEST.MF</exclude>
276-
<exclude>META-INF/LICENSE</exclude>
277280
</excludes>
278281
</filter>
279282
<filter>
280283
<artifact>com.fasterxml.jackson.datatype:jackson-datatype-jdk8</artifact>
281284
<excludes>
282285
<exclude>**/module-info.class</exclude>
283286
<exclude>META-INF/MANIFEST.MF</exclude>
284-
<exclude>META-INF/LICENSE</exclude>
285287
<exclude>META-INF/services/**</exclude>
286288
</excludes>
287289
</filter>

0 commit comments

Comments
 (0)