tutorial que proyecto pom estructura espaƱol desde crear consola configurar arquitectura java maven gradle directory-structure

java - proyecto - pom xml que es



UbicaciĆ³n de los archivos fuente generados para la estructura de directorios de Maven (3)

Creo que la ubicación depende de cómo se genera y se maneja la fuente.

  1. El código fuente se genera automáticamente durante el proceso de compilación : luego usaría target/main/java/ , target/test/java/ y así sucesivamente. Este código no está registrado en CVS ya que puede reconstruirlo con bastante facilidad. En caso de que limpie su proyecto, el directorio de target se eliminará y la fuente se reconstruirá.

  2. El código fuente es generado manualmente por una herramienta externa o similar : Yo usaría generated/src/main/java/ generated/src/test/java/ , generated/src/main/resources/ y así sucesivamente. Este código debe ser registrado. Un beneficio es que, tan pronto como vea que se generated nombre del directorio de nivel superior, sabrá que también se generan todos los archivos / directorios a continuación. También tiene la estructura de directorios estándar de Maven bajo el directorio de nivel superior. Otro punto es que la limpieza es fácil, simplemente elimine lo generated y vuelva a crearlo, sin mirar a través de muchos otros directorios (como en su ejemplo: src/main/generated-java y src / test / generic-java).

EDITAR : Otra buena solución sería crear un proyecto de Maven que solo contenga la fuente generada como myproject-generated-1.0.3.jar . Este proyecto sería una dependencia en su aplicación real. Entonces solo pondrías tu fuente generada int src/main/java .

Además de la carpeta src/main/java , tenemos una carpeta que contiene algunas fuentes Java generadas que son necesarias para las fuentes principales. La generación de código se invoca manualmente , cuando sea necesario. La fuente generada se registra en el repositorio de la fuente. Todo será construido y embalado juntos .

¿Cuál sería la mejor ubicación para las fuentes Java generadas que se compilarán junto con las fuentes principales? Deberia ser:

  • /src/generated/java (siguiendo la misma lógica de nomenclatura para src/testInt/java para pruebas de integración)
  • /generated-src/main/java (en colisión con "El directorio src contiene todo el material de origen para construir el proyecto" )
  • /src/main/generated-java (bueno ... generated-java no es un tipo)
  • ...?

La primera opción parece ser la más apropiada para este caso. ¿Qué piensas? ¿Hay algo en los documentos de Maven que describa esta situación (que haya pasado por alto)? ¿Conoces algún repo con estructura similar?

Gracias.

Responder

Como lo sugiere @ Absurd-Mind, la dirección en la que estamos pensando es dividir la fuente en los submódulos (que funcionan bien en gradle). Por lo tanto, la fuente generada y alguna otra fuente relacionada entrarán en su propio submódulo (producirán el artefacto separado) y el resto irá en otro submódulo, que usa este. Gracias.


En el almacén de archivos de origen del proyecto Maven dentro de src/main/java , src/main/resources y el almacén de clase de prueba dentro de src/test/java . En Maven generó (código de compilación) el código almacenado en la carpeta de destino. Cuando construyes tu proyecto de Maven, todo el código generado se actualizará en la carpeta de destino.


Por lo que sé, no existe una estructura de carpetas estándar para las fuentes generadas. En mis proyectos, prefiero el tipo de notación src/gen/java .