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