如何建议 maven-jaxb2-plugin 在两个地方使用相同的 class?

How to advise maven-jaxb2-plugin to use same class in two places?

我正在使用 maven-jaxb2-plugin 生成 JAXB classes。我无法控制 WSDL 或 XSD.

XSD 指定单个“MyObject”或包含“MyObjects”列表的父对象。我知道他们是一样的。但是插件没有(自然地)。有没有办法告诉它对两者都使用单个(非内部)class?否则,我需要写很多重复的代码...

谢谢!

是的,您可以控制使用绑定,例如 here 并且您可以强制使用相同的 class(您会收到警告,因为它们被重新定义)。

无论如何,您可能使用了带有多个命名空间的错误生成的 WSDL/XSD(例如,它们使用相同的代码库但公开了多个端点,因为它们是相同的 class 但对您来说是多个不同 classes).

尽管您“无法控制 WSDL” 要求修复它,如果没有,也许您可​​以统一(将一个脚本写入您的 CI/CD 管道)将它们全部放在一起(例如,多个 xsd 在一个根中)。

不幸的是,许多人错误地编写和发布了 Web 服务,给我们这些使用它们的人带来了很多(不必要的)麻烦:/