Historiquement, j'ai toujours utilisé les artefacts JAXB RI suivants dans mes projets Maven:
com.Sun.xml.bind:jaxb-impl
- Duréecom.Sun.xml.bind:jaxb-xjc
- Compilateur de schémacom.Sun.xml.bind:jaxb-jxc
- Générateur de schémaDepuis approximativement la version 2.2.10*
ces artefacts sont maintenant décrits comme "anciens" :
com.Sun.xml.bind:jaxb-impl
Ancien module JAXB Runtime.
Il semble donc que ces artefacts sont désormais obsolètes.
La question est:
Quels artefacts devraient être utilisés à la place?
Après clarification avec Oracle, les artefacts suivants doivent être utilisés:
Si vous souhaitez dé-marshal XML pour Java objets ou marshal Java objets en XML:
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>...</version>
</dependency>
Si vous avez un schéma XML et que vous souhaitez générer le code Java à partir de celui-ci:
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-xjc</artifactId>
<version>...</version>
</dependency>
schemagen
)Si vous avez des classes Java avec des annotations JAXB et que vous souhaitez générer un schéma XML basé sur celles-ci:
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-jxc</artifactId>
<version>...</version>
</dependency>
Les deux derniers artefacts (org.glassfish.jaxb:jaxb-xjc
et org.glassfish.jaxb:jaxb-jxc
) sont encapsulés par les plugins Maven, donc vous n'en auriez normalement pas besoin pendant l'exécution.
Si vos projets Maven n'obtiennent pas le chemin de classe complet, activez la sortie de débogage et vérifiez la console Maven. Vous pouvez y voir le message d'erreur suivant:
[ERREUR] 'dependencyManagement.dependencies.dependency.systemPath' pour com.Sun: tools: le pot doit spécifier un chemin absolu mais est $ {tools.jar} @
Cela est dû au problème suivant:
La solution de @rustyx consiste à ajouter -vm
à l'option Eclipse.ini
:
-vm
<PATH_TO_JDK>\jre\bin\javaw.exe