pom plugin example java maven jaxb jaxb2

java - plugin - ¿Qué artefactos debo usar para JAXB RI en mi proyecto Maven?



maven resources folder (1)

Después de la aclaración con Oracle, se deben utilizar los siguientes artefactos:

Tiempo de ejecución

Si desea descomponer XML a objetos Java u ordenar objetos Java como XML:

<dependency> <groupId>org.glassfish.jaxb</groupId> <artifactId>jaxb-runtime</artifactId> <version>...</version> </dependency>

Compilador de esquemas (XJC)

Si tiene un esquema XML y desea generar el código Java a partir de él:

<dependency> <groupId>org.glassfish.jaxb</groupId> <artifactId>jaxb-xjc</artifactId> <version>...</version> </dependency>

Generador de esquemas (JXC / schemagen )

Si tiene clases Java con anotaciones JAXB y desea generar un esquema XML basado en ellas:

<dependency> <groupId>org.glassfish.jaxb</groupId> <artifactId>jaxb-jxc</artifactId> <version>...</version> </dependency>

Los dos últimos artefactos ( org.glassfish.jaxb:jaxb-xjc y org.glassfish.jaxb:jaxb-jxc ) están envueltos por complementos de Maven, por lo que normalmente no los necesitaría en el tiempo de ejecución.

Uso de Eclipse

Si sus proyectos Maven de alguna manera no obtienen el classpath completo, active la salida de depuración y verifique la consola Maven. Es posible que vea el siguiente mensaje de error allí:

[ERROR] ''dependencyManagement.dependencies.dependency.systemPath'' para com.sun: tools: jar debe especificar una ruta absoluta pero es $ {tools.jar} @

Esto se debe al siguiente problema:

Maven no elige JAVA_HOME correctamente

La solution de @rustyx es agregar la opción -vm al eclipse.ini :

-vm <PATH_TO_JDK>/jre/bin/javaw.exe

Históricamente, siempre utilicé los siguientes artefactos JAXB RI en mis proyectos de Maven:

  • com.sun.xml.bind:jaxb-impl - Tiempo de ejecución
  • com.sun.xml.bind:jaxb-xjc - Compilador de esquemas
  • com.sun.xml.bind:jaxb-jxc - Generador de esquemas

Desde aproximadamente la versión 2.2.10* estos artefactos ahora se describen como "antiguos" :

com.sun.xml.bind:jaxb-impl

Antiguo módulo JAXB Runtime.

Parece que estos artefactos ahora son obsoletos.

La pregunta es:

¿Qué artefactos deberían usarse en su lugar?