kev*_*314 6 maven maven-shade-plugin
我有两个通过 Maven 导入的依赖项,它们都导入了一个公共库,但版本不同,但版本彼此不兼容。基本上是这篇文章中描述的问题:

但不幸的是,对我来说,解决方案并不像博文描述的那么简单,因为没有通用版本的包 Z适用于这两个依赖项。
跳过导致这一点的糟糕设计决策,因为我不控制这些库中的任何一个,我希望重新打包顶级依赖项之一并遮蔽其所有依赖项,以便它基本上可以使用自己的独立版本的 Z。这可以用 Maven 完成吗?
我考虑过的一个解决方案是隔离所有依赖于包的类,Y并将它们放在一个单独的应用程序中,然后将其作为导入的阴影jar进行传送X,但是我想知道是否有更简单的方法来实现这一点。
正如每个人都建议您可以使用maven-shade-plugin。开源项目通过为每个需要着色的依赖项创建一个 maven 子项目来处理这个问题。因此,在您的情况下,您需要 3 个 Maven 项目:
您的 Maven 项目层次结构如下所示:
具有用于着色依赖项的 maven 子项目的项目示例是here。查看shaded-ning19文件夹以了解如何创建专用的 maven 项目来为依赖项着色。
| 归档时间: |
|
| 查看次数: |
3414 次 |
| 最近记录: |