J'ai déterminé que deux [~ # ~] jaxb [~ # ~] plugins pour Maven 2 existent, avec des configurations différentes.
L'un est de Sun: http://jaxb.dev.Java.net/jaxb-maven2-plugin/ , l'autre de Mojohaus: http://mojohaus.org/jaxb2 -maven-plugin /
Lequel de ces deux plugins peut être recommandé?
Merci Matt. Lors de mon petit projet de recherche, j'ai découvert qu'il existe un autre plugin provenant des sunners:
<groupId>com.Sun.tools.xjc.maven2</groupId>
<artifactId>maven-jaxb-plugin</artifactId>
et celui-là:
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
et toujours celui de Codehouse.
Résumons. On a:
D'après les commentaires de ce fil , j'ai toujours utilisé le maven-jaxb2-plugin (c'est-à-dire le plugin n ° 1):
Concernant le plugin org.jvnet.jaxb2.maven2: maven-jaxb2 par rapport à com.Sun.tools.xjc.maven2: maven-jaxb-plugin, c’est définitivement le premier ( http://maven-jaxb2-plugin.Java.net/ ).
Ce plugin a bien plus de fonctionnalités que com.Sun.tools.xjc.maven2: maven-jaxb-plugin, le développement est actif. Enfin, je suis l’un des auteurs :) et je dirais que nous restons en contact avec les développeurs et les utilisateurs de JAXB et que nous réagissons aux dernières fonctionnalités/demandes.
Et en effet, le plugin n ° 2 n'est pas très actif (mort?). Et parce que j'ai toujours été heureux avec # 1, je n'ai jamais utilisé le plugin # 3, donc je ne peux vraiment rien en dire. Juste au cas où, voici une configuration de travail pour le plugin n ° 1:
<project>
...
<build>
<plugins>
<plugin>
<inherited>true</inherited>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
J'ai récemment essayé les trois plug-ins mentionnés ci-dessus (inclus ici aussi):
J'ai fini par utiliser une quatrième option: Le plugin CXF XJC Maven http://cxf.Apache.org/cxf-xjc-plugin .html
Si je manque quelque chose que j'aimerais savoir, mais la configuration semblait plus simple pour ce que j'essayais de faire et me permettait plus facilement de traiter la génération de classes en double dans le même espace de noms - semblable à cette question: Existe-t-il un moyen de traiter les définitions d'éléments en double dans plusieurs fichiers .xsd dans JAXB? .
J'ai maintenant un contrôle granulaire sur chaque XSD entrant et le package Java correspondant; voici un exemple de configuration proche de celui que j'utilise.
<plugin>
<groupId>org.Apache.cxf</groupId>
<artifactId>cxf-xjc-plugin</artifactId>
<version>2.3.0</version>
<configuration>
<extensions>
<extension>org.Apache.cxf.xjcplugins:cxf-xjc-dv:2.3.0</extension>
</extensions>
</configuration>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<goals>
<goal>xsdtojava</goal>
</goals>
<configuration>
<sourceRoot>${basedir}/target/generated-sources/src/main/Java</sourceRoot>
<xsdOptions>
<xsdOption>
<xsd>src/main/resources/schema/commands.xsd</xsd> <!--shares a common.xsd file causing the conflicts-->
<packagename>com.foo.bar.commands</packagename>
</xsdOption>
<xsdOption>
<xsd>src/main/resources/schema/responses.xsd</xsd>
<packagename>com.foo.bar.responses</packagename>
</xsdOption>
</xsdOptions>
</configuration>
</execution>
</executions>
</plugin>
Je suis l'auteur de maven-jaxb2-plugin .
Le plugin maven-jaxb2 utilise actuellement JAXB 2.1. Dans les prochaines versions, nous fournirons également les versions JAXB 2.0 et JAXB 2.2.
En ce qui concerne "quel plugin est le meilleur" discussion, vérifiez les fonctionnalités , décidez-vous. Faites-moi savoir si vous manquez une fonctionnalité.
Sur une légère tangente: il y avait un problème avec l'utilisation de maven-jaxb2-plugin avec Eclipse Indigo que j'ai posté ici . Un correctif (extension) est récemment disponible.
Ce n'est pas du tout en désaccord avec la recommandation de maven-jaxb2-plugin sur maven2-jaxb-plugin. Je ne sais pas, mais je suppose que maven2-jaxb-plugin a le même problème, probablement non résolu.
Je suppose que celui-ci correspond à la spécification JAXB d’origine et le codehaus à la spécification JAXB 2.1 (et si le dev.Java.net se chargerait au cours de ce siècle, je serais en mesure de le dire).