如何使用 cxf-xjc-plugin 从多个 xsd 生成 pojo?

How to generate pojos from multiple xsd with cxf-xjc-plugin?

我想将 Maven cxf-xjc-plugin 插件用于 xsd 文件中的 java 类。我有大约 30 个 xsd 个文件,我必须 link 在 xsdOptions.

中明确每个文件

是否可以为此插件提供通配符匹配以从找到的任何 xsd 个文件生成?

不幸的是,此插件强制开发人员为每个 XSD 编写路径。您不能使用通配符来指定 XSD 个文件的路径。

但是,对插件进行了未记录的更新,允许指定目录而不是文件列表。因此,如果您的所有 XSD 都在同一个目录中,您可以指定它。我从 cxf-commits 邮件列表中跟踪到 this email 的更改,日期为 2015 年 7 月,来自 dkulp@apache.org:

Convenience option for configuring the code generation from XSD files: Instead of having to explicitly list every single file using the <xsd> element, now the new <xsdDir> element can be used instead for specifying a directory. From this directory all *.xsd files will be used for code generation.

此属性 is not documented but you can find it in the source code 例如版本 3.0.5。

然后您可以进行以下配置:

<xsdOption>
  <xsdDir>/path/to/directory/having/all/XSD</xsdDir>
  <!-- rest of configuration -->
</xsdOption>

请注意,通过阅读源代码,搜索 XSD 文件不是递归的:所有 XSD 必须放在这个目录中,而不是子目录中,以便插件找到它们.