Générer des classes avec jaxb2-maven-plugin à partir de WSDL
Je rencontre des problèmes lors de la configuration de la jaxb2-maven-plugin
pour générer des classes Java à partir d'un WSDL et plusieurs fichiers XSD qui existent tous dans le même répertoire standard src/main/xsd
.
comment utiliser jaxb2 plugin maven avec XSD? est liée uniquement à ce que les réponses correctement suggérons d'utiliser le wsdl
paramètre dans la configuration des plugins, mais que la question est vraiment intéressé à inline XSDs et mon XSDs sont externes.
Le plugin but paramètres sont répertoriés ici.
Mon plugin de configuration est:
<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>
Je suis en train de tester cela avec mvn -X clean jaxb2:xjc
mais le plugin est en ignorant la .wsdl
comme on le voit dans la sortie de débogage
[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
source d'informationauteur andyb
Vous devez vous connecter pour publier un commentaire.
En examinant le Maven sortie de débogage des arguments passés à la JAXB XJC (et un peu d'essais et d'erreurs), j'ai trouvé que j'avais besoin de fournir plus de 2 paramètres de configuration du plugin.
Cela arrête le plugin de numérisation pour les fichiers XSD et utilise juste le
.wsdl
en tant que source. Les fichiers XSD sont inclus dans le fichier WSDL comme<xsd:include schemaLocation="datatypes.xsd" />
directives, par exemple, qui sont résolues localement dans tous les types de WSDL et XSD être générés comme des classes Java.La section de configuration qui a fonctionné pour moi est:
Sans
<xmlschema>false</xmlschema>
Maven erreurs avec:Si vous générez des fichiers wsdl et xsd, autant essayer de la mettre dans une autre exécution de la configuration: Il ne peut pas avoir le même
schemaDirectory
ou le plugin ne fonctionnera pas correctement la seconde exécution, de cause il met en cache les exécutions basés sur cette variable. Je le conseil à le faire commeJ'ai créé un
xsd
et unwsdl
dossier de configurations distinctes.J'ai essayé
jaxb2-maven-plugin
qui génèrent le fichier javaPour exécuter ce que j'ai utilisé la commande
Essayez cela, il va générer le jaxb classes dans le dossier src. Espérons que vous êtes à la recherche pour cela.
Vous pouvez utiliser le suit de code dans le fichier de configuration: