我在配置 jaxb2-maven-plugin
以从 WSDL 和多个 XSD 文件生成 Java 类时遇到问题,这些文件都存在于同一标准目录中 src/main/xsd
。
如何使用带有内联 XSD 的 jaxb2 maven 插件? 相关的只是因为答案正确地建议在插件配置中使用 wsdl
参数,但这个问题实际上与内联 XSD 有关,而我的 XSD 是外部的。
此处 列出了插件目标参数。
我的插件配置是:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<id>xjc</id>
<goals>
<goal>xjc</goal>
</goals>
</execution>
</executions>
<configuration>
<packageName>com.x.y.model</packageName>
<wsdl>true</wsdl>
</configuration>
</plugin>
我正在使用 mvn -X clean jaxb2:xjc
进行测试,但插件忽略了 .wsdl
如调试输出所示
[DEBUG] accept false for file c:\projects\foo\src\main\xsd\service.wsdl
[DEBUG] accept true for file c:\projects\foo\src\main\xsd\datatypes.xsd
[DEBUG] accept true for file c:\projects\foo\src\main\xsd\more-datatypes.xsd
原文由 andyb 发布,翻译遵循 CC BY-SA 4.0 许可协议
通过检查传递给 JAXB XJC 的参数的 Maven 调试输出(以及一些试验和错误),我发现我需要为插件提供另外 2 个配置参数。
这将停止插件扫描 XSD 文件并仅使用
.wsdl
作为源。例如,XSD 文件作为<xsd:include schemaLocation="datatypes.xsd" />
指令包含在 WSDL 中,这些文件在本地解析,导致 WSDL 和 XSD 中的所有类型都生成为 Java 类。对我有用的配置部分是:
没有
<xmlschema>false</xmlschema>
Maven 错误: