使用WSDL中的jaxb2-maven-plugin生成类
我无法配置jaxb2-maven-plugin
来从WSDL和多个XSD文件生成Java类,这些文件都存在于同一标准目录src/main/xsd
。
如何使用内联XSD的jaxb2 maven插件? 只是因为答案正确地建议在插件配置中使用wsdl
参数,但该问题确实与内联XSD有关,而我的XSD是外部的。
此处列出了插件目标参数。
我的插件配置是:
org.codehaus.mojo jaxb2-maven-plugin 1.5 xjc xjc com.xymodel true
我用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文件作为
指令包含在WSDL中,这些指令在本地解析,导致WSDL和XSD中的所有类型都生成为Java类。
对我有用的配置部分是:
com.xymodel true false service.wsdl
没有
Maven错误:
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和xsd,那么尝试放入不同的执行配置:它可能没有相同的schemaDirectory
或者插件在第二次执行时不会成功运行,因为它会根据此变量缓存执行。 我建议这样做
org.codehaus.mojo jaxb2-maven-plugin 1.6 generate-sri-facturas generate-sources xjc target/generated-sources/sri ${commonsource.packageName} src/main/resources/schema/xsd factura_v1.1.0.xsd generate-sri-autorizacion-comprobantes generate-sources xjc target/generated-sources/sri/autorizacion ${commonsource.packageName}.autorizacion true false src/main/resources/schema/wsdl AutorizacionComprobantes.wsdl
我创建了一个xsd
和一个wsdl
文件夹来分离配置。
我试过生成java文件的jaxb2-maven-plugin
org.codehaus.mojo jaxb2-maven-plugin xjc src/main/webapp/schemas/ true src/main/java
为了运行这个,我使用了命令
mvn jaxb2:xjc
试试这个,它将生成jaxb类到你的src文件夹中。 希望你是在寻找这个。
您可以在配置中使用以下代码:
com.example.demo.wsdl true false horarios.wsdl ${project.basedir}/src/main/resources ${project.basedir}/src/main/java false