maven-shade-plugin:maven 如何在不同的 jar 中显示相同的 class?

maven-shade-plugin: how maven shade same class in different jar?

如果我的项目依赖于两个 jar,A 和 B,这两个 jar 又依赖于 class foo.bar.FooBar。但是他们在他们的 jar 中包含不同版本的 FooBar,并且只适用于该特定版本,例如A 依赖 FooBar v1,B 依赖 FooBar v3.

那么当 shade 插件将 A 和 B 合并到最终的 fat jar 中时,maven 如何重新定位它们以确保 A 和 B 都能正常工作?

这意味着您首先需要 A 和 B 的阴影版本,两者都有自己的 foo.bar.FooBar 重新定位版本。只有这样 A 才会 "recompiled" 有自己的 FooBar 版本,B 也是。 之后你可以创建一个胖罐子。