Tengo problemas para configurar jaxb2-maven-plugin
para generar clases Java desde un WSDL y múltiples archivos XSD que existen en el mismo directorio estándar src/main/xsd
.
cómo usar el plugin maven jaxb2 con XSD en línea? se relaciona solo porque las respuestas sugieren correctamente el uso del parámetro wsdl
en la configuración del complemento, pero esa pregunta se refiere realmente a los XSD en línea y mis XSD son externos.
Los parámetros de la meta del plugin se enumeran aquí .
La configuración de mi complemento es:
org.codehaus.mojo jaxb2-maven-plugin 1.5 xjc xjc com.xymodel true
Estoy probando esto con mvn -X clean jaxb2:xjc
pero el plugin ignora el .wsdl
como se ve en la salida de depuración
[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
Al examinar el resultado de depuración de Maven de los argumentos que se pasan a JAXB XJC (y un poco de prueba y error) encontré que necesitaba suministrar 2 parámetros de configuración más al plugin.
Esto detiene el escaneo del complemento para archivos XSD y solo usa .wsdl
como fuente. Los archivos XSD se incluyen en el WSDL como
directivas, por ejemplo, que se resuelven localmente y todos los tipos del WSDL y XSD se generan como clases de Java.
La sección de configuración que funcionó para mí es:
com.xymodel true false service.wsdl
Sin los
Maven con:
org.apache.maven.lifecycle.LifecycleExecutionException: Error al ejecutar el objective org.codehaus.mojo: jaxb2-maven-plugin: 1.5: xjc (default-cli) en el proyecto foo: No se pudo procesar el esquema: / c: / proyectos / foo /src/main/xsd/service.wsdl
Si está generando wsdl y xsd, intente poner en una configuración de ejecución diferente: puede que no tenga el mismo schemaDirectory
o el complemento no se ejecutará correctamente la segunda ejecución, ya que almacena en caché las ejecuciones basadas en esta variable. Te aconsejo que lo hagas como
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
una xsd
y una carpeta wsdl
para separar las configuraciones.
He intentado jaxb2-maven-plugin
que genera el archivo java
org.codehaus.mojo jaxb2-maven-plugin xjc src/main/webapp/schemas/ true src/main/java
Para ejecutar esto, he usado el comando
mvn jaxb2:xjc
Intenta esto, generará las clases jaxb en tu carpeta src. Espero que estés buscando esto.
Puedes usar el siguiente código en la configuración:
com.example.demo.wsdl true false horarios.wsdl ${project.basedir}/src/main/resources ${project.basedir}/src/main/java false