从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