从WSDL使用jaxb2-maven-plugin生成类

我在配置时无法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

回答:

通过检查传递给JAXB XJC的参数的Maven调试输出(以及一些试验和错误),我发现我需要为插件提供2个更多的配置参数。

这将停止插件扫描XSD文件,而仅将其.wsdl用作源。例如,XSD文件作为<xsd:includeschemaLocation="datatypes.xsd"/>指令包含在WSDL中,这些指令在本地解析,导致WSDL和XSD中的所有类型都生成为Java类。

对我有用的配置部分是:

<configuration>

<packageName>com.x.y.model</packageName>

<wsdl>true</wsdl>

<xmlschema>false</xmlschema>

<schemaFiles>service.wsdl</schemaFiles>

</configuration>

没有以下<xmlschema>false</xmlschema>错误:

org.apache.maven.lifecycle.LifecycleExecutionException:无法在项目foo上执行目标org.codehaus.mojo:jaxb2-maven-

plugin:1.5:xjc(default-cli):无法处理架构:/ c:/ projects / foo

/src/main/xsd/service.wsdl

以上是 从WSDL使用jaxb2-maven-plugin生成类 的全部内容, 来源链接: utcz.com/qa/423701.html

回到顶部