IntelliJ ¿Cómo puedo obtener Build | Reconstruir para generar POJO a partir de archivos XSD y compilarlos
Esta pregunta es específica de IntelliJ . También publicaré esto en el sitio de la comunidad de soporte de IntelliJ en https://intellij-support.jetbrains.com/hc/en-us/community/topics . Estoy usando la última versión de IntelliJ, que es 2023.3.4 (compilación n.º IU-233.14475.28, compilada el 13 de febrero de 2024).
Actualmente estoy usando el complemento maven com.evolvedbinary.maven.jvnet:jaxb30-maven-plugin:0.15.0
para tomar archivos *.XSD y generar POJO a partir de los XSD y compilar los POJO en clases para usar en mi aplicación.
Un fragmento de la estructura de mi directorio (para los propósitos de esta pregunta es):
maven-module1/
src/main/java/org/acme/myapp/Main.java
src/main/resources/xsd/myData.xsd
Después de ejecutar mvn clean install
, el complemento XJB genera fuentes y Maven las compila y las coloca en el directorio target/classes junto con otros archivos Java compilados. A continuación se muestra el resultado target/classes
y target/generated-sources
los directorios.
maven-module1/
target/generated-sources/xjc/org/acme/myapp/myData.java
target/classes/org/acme/myapp/Main.class
target/classes/org/acme/myapp/myData.class
Entonces, mis fuentes generadas no se colocan en un src/main/java
subdirectorio normal, sino en un subdirectorio dentro del directorio de destino.
<properties>
<maven-jaxb30-plugin-version>0.15.0</maven-jaxb30-plugin-version>
</properties>
<plugin>
<groupId>com.evolvedbinary.maven.jvnet</groupId>
<artifactId>jaxb30-maven-plugin</artifactId>
<version>${maven-jaxb30-plugin-version}</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<strict>false</strict>
<schemaIncludes>**/xsd/*.xsd</schemaIncludes>
<bindingIncludes>**/xjb/*.xjb</bindingIncludes>
<useDependenciesAsEpisodes>false</useDependenciesAsEpisoes>
</configuration>
</plugin>
¿Cómo puedo hacer que IntelliJ utilice este complemento de Maven para generar el código fuente y compilarlo?
lo que he probado
NOTA: Ya intenté usar el complemento IntelliJ descrito en https://www.jetbrains.com/help/idea/generate-java-from-xml-schema-using-jaxb-dialog.html
Y descubrí que tenía limitaciones (no me permitía ingresar al directorio de salida de destino/fuentes generadas)
Lo que estoy tratando de lograr es esto:
- Cuando cambio a una nueva rama de git y
- Ejecutar compilación | Reconstruya el módulo "mi-módulo-con-xsds-in-it", que
- IntelliJ genera los POJO y los compila.
Actualmente, mi solución es ejecutar maven clean install desde la línea de comando de ese directorio de módulo maven para generar y compilar los POJO XSD.
Puede ir a Configuración > Construir > Herramientas de compilación > Maven > Runner y seleccionar Delegar .
La documentación para esta función se encuentra en: https://www.jetbrains.com/help/idea/delegate-build-and-run-actions-to-maven.html#delegate_to_maven
Ese enlace dice:
De forma predeterminada, IntelliJ IDEA utiliza el generador nativo de IntelliJ IDEA para crear un proyecto Maven. Puede resultar útil si tiene un proyecto Java puro o Kotlin, ya que IntelliJ IDEA admite la compilación incremental, lo que acelera significativamente el proceso de compilación. Sin embargo, si tiene una configuración que cambia la compilación sobre la marcha, o su compilación genera un artefacto con un diseño personalizado, entonces es preferible Maven para el proceso de compilación.