如何在特定的POM依赖项上导入特定的类?

问题描述 投票:0回答:1

我正在搜索具有不同Web服务调用的客户端模块。

该模块实现了WS API,并且大多数API共享一个公共的EnterpriseMessageHeader对象。

我遇到的问题是在运行时遇到的,无法找到特定的方法。当我查看代码并ctrl +将鼠标悬停在EnterpriseMessageHeader对象上时,它显示它引用了错误的POM依赖项。而不是引用第三个依赖。它引用了第一个。

由于所有API共享一个共同的groupID ...有没有办法强制引用/导入比GroupID更低的级别?

如果我将依赖项移动到列表顶部。运行时错误消失,Ctrl + Hover指向正确的依赖关系......

这现在弄乱了我拥有的其他WS实现。

java maven intellij-idea
1个回答
0
投票

所以你有两个不同的依赖项,它们都有一个具有相同的完全限定名的类(包名和groupId可能重合,但不一定是这种情况 - 真正的问题是两个依赖,无论它们的GAV是什么,包含一个具有相同名称的类)。

这个问题很棘手。 Java不允许您加载这两个类,代码可能会以意想不到的方式中断。

您可以尝试使用maven shade插件重命名依赖项中的一个包,但如果可能的话,通常最好避免尝试避免两个依赖项之一。

© www.soinside.com 2019 - 2024. All rights reserved.