我有两个版本的相同jar文件。 (版本1和2)。我的问题是我希望特定包中的类使用另一个包中的一个版本和类来使用另一个版本。这些包都在同一个maven项目下。
尝试将两个jar文件作为依赖项添加到POM中,但第二个条目会覆盖第一个条目,并且只添加一个版本作为依赖项。
有没有办法在Maven中实现这一目标。?
答案 0 :(得分:1)
想想DLL Hell。你可以让同一个类的各种版本在一个JVM中共存的唯一方法是使用不同的类加载器加载每个版本,你不想这样做。
重写您的代码,以便所有这些都适用于最新版本的库,或者重写它以便它不需要库中的任何更改,要求您使用v2,您的选择。
答案 1 :(得分:0)
令牌丑陋的解决方案......
将项目拆分为两个模块,其中每个模块使用不同版本的依赖项。为了避免在jwenting的优秀答案中引用的类加载器问题,请使用Maven Shade Plugin重命名其中一个模块中的依赖包。
有关此操作的示例,请参阅Relocating Classes。