que tienen un proyecto basado en Maven, en el que se trata de añadir algunas clases JAXB generados automáticamente por el "jaxb2-maven-plugin de" Maven plugin. Sin embargo, mi primer corte me tiene en un bucle de dependencia circular:clases generadas JAXB-gerente en un proyecto Maven
- Como estas clases JAXB aún no se generan, mis otras fuentes que hacen referencia a ellas tienen errores de compilación.
- Debido a esas otras fuentes tienen errores de compilación, estas clases JAXB No se deje generado.
Parece que hay dos posibilidades obvias para la solución de este
:- Comentario de salida las referencias rotas, por lo que el proyecto se basa y las clases JAXB se generan automáticamente. Luego copie esas fuentes generadas de
/target
en/src/main/java
, de modo que las referencias a ellas no causen errores de compilación. - Crea un proyecto completamente separado, que consiste en nada más que las cosas de JAXB. Incluirlo como una dependencia en mi proyecto principal.
Me estoy perdiendo algo aquí? Opción # 1 parece ridícula casa por la ventana ... que simplemente no puede ser la manera en que la gente utiliza JAXB. La opción n. ° 2 parece más racional, pero todavía bastante ineficiente y engorrosa. Realmente tengo que asumir el costo de un proyecto completamente separado solo para usar JAXB?
¿Hay enfoques más elegantes que los desarrolladores utilizan para hacer referencia a las clases generadas por JAXB en el mismo proyecto en el que el plugin de Maven los genera?
ACTUALIZACIÓN: Por petición, aquí es la parte relevante de mi POM:
<build>
<plugins>
<plugin>
<!-- configure the compiler to compile to Java 1.6 -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>xjc</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- The name of your generated source package -->
<packageName>com.mypackage</packageName>
</configuration>
</plugin>
</plugins>
</build>
Cuando corro mvn clean package
, veo mis fuentes JAXB que se generan por debajo de la /target
subdirectorio. Sin embargo, esas fuentes generadas no se agregan automáticamente a la ruta de clases para la fase de compilación.
POSTERIOR A LA RESOLUCIÓN DE ACTUALIZACIÓN: Resulta que mis problemas de compilación tenían más que ver con el hecho de que yo estaba corriendo en Eclipse, y su integración Maven tiene algunos problemas con "jaxb2-experto-plugin". Consulte this StackOverflow question para obtener más detalles sobre ese problema y su resolución.
Por favor, publique las secciones correspondientes del POM. – jiggy