-
Génération jaxb avec Maven à partir d’une xsd
Si vous êtes l’heureux élu d’une XSD dans votre projet…Bravo ! A partir de cette XSD on va pouvoir grâce à jaxb :
- Générer les pojos java (décoré des annotations JAXB).
- faire du marshalling / unmarshalling.
Nous nous intéresserons au point 1. Comment bien gérer cette phase de génération? Comprenons que ces POJOs générer sont, d’une part soumis au changement pour toute modification du XSD et d’autre part n’a pas lieu de faire partie intégrante de votre projet au sens package java. Le seul élément qui doit se retrouver dans votre projet c’est la XSD lui même. L’idée est donc d’avoir la XSD au niveau de nos ressources projets et de demander à Maven de s’occuper de générer les pojos à partir de la XSD puis d’ajouter ces derniers au classpath de notre livrable (jar,war,ear…etc) à chaque build de Maven.
Prenons une XSD connue du milieu bancaire (flux SEPA) : https://github.com/w2c/sepa-sdd-xml-generator/blob/master/validation_schemes/pain.008.003.02.xsd.
- Etape 1 : Bien positionner la XSD
Placer la XSD dans scr/main/ressources/maXSD
- Etape 2 : Configuration de Maven
Dans notre pom maven nous ajoutons le plugin pour la génération des POJOS. Il convient d’indiquer le chemin de la xsd ainsi que le nom du package qu’on souhaite donner pour la génération.
</pre> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>jaxb2-maven-plugin</artifactId> <executions> <execution> <id>xjc</id> <goals> <goal>xjc</goal> </goals> <configuration> <schemaDirectory>src/main/resources/xsd</schemaDirectory> <packageName>fr.cadjee.sepa.jaxb</packageName> </configuration> </execution> </executions> </plugin> <pre>
- Etape 3 : C’est fini…lancer le build
Lancer votre mvn clean install :
voici un aperçu général de l’arborescence:
On peut bien entendu gérer plusieurs XSD dans des répertoires différents soit en ajoutant une autre exécution ou en utilisant le fichier xjb.
CDI : Context Dependency Injection, mise en route (Partie 1) Débuter avec JMeter
Génération jaxb avec Maven à partir d’une xsd
Articles récents
Comments are currently closed.