我正在丰富具有不同WebService调用的客户端模块。
该模块实现WS API,并且大多数API共享一个公共的EnterpriseMessageHeader对象。
在运行时遇到了我遇到的问题,在其中找不到特定的方法。 当我查看代码并将ctrl + hover悬停在EnterpriseMessageHeader对象上时,它表明它引用了错误的POM依赖关系。而不是引用第三依赖性。它引用第一个。
由于所有API都共享一个公共的groupID,有没有办法强制将引用/导入设置为比GroupID更低的级别?
如果我将依赖关系移到列表的顶部。运行时错误消失,Ctrl + Hover指向正确的依赖项...
这现在搞乱了我拥有的其他WS实现。
答案 0 :(得分:0)
因此,您有两个不同的依赖项,它们都具有一个具有相同全限定名的类(包名和groupId可能是重合的,但不一定是这种情况-真正的问题是两个依赖项,无论它们的GAV是多少可能包含一个同名的类。
这个问题很棘手。 Java不允许您同时加载类和代码,它们可能会以意外的方式中断。
您可以尝试使用Maven Shade插件重命名依赖项中的一个软件包,但是通常最好避免使用两个依赖项中的一个。