Diseño de directorio estándar de Apache Maven

1. Introducción

Apache Maven es una de las herramientas de compilación más populares para proyectos Java. Además de solo descentralizar las dependencias y los repositorios, la promoción de una estructura de directorios uniforme en todos los proyectos también es uno de sus aspectos importantes.

En este artículo rápido, exploraremos el diseño de directorio estándar de un proyecto típico de Maven.

2. Diseño de directorio

Un proyecto típico de Maven tiene un archivo pom.xml y una estructura de directorio basada en convenciones definidas:

└───maven-project ├───pom.xml ├───README.txt ├───NOTICE.txt ├───LICENSE.txt └───src ├───main │ ├───java │ ├───resources │ ├───filters │ └───webapp ├───test │ ├───java │ ├───resources │ └───filters ├───it ├───site └───assembly

El diseño de directorio predeterminado se puede anular utilizando descriptores de proyecto, pero esto es poco común y desaconsejado.

Continuando con este artículo, descubriremos más detalles sobre cada archivo y subdirectorio estándar.

3. El directorio raíz

Este directorio sirve como raíz de todos los proyectos de Maven.

Echemos un vistazo más de cerca a los archivos y subdirectorios estándar que normalmente se encuentran en la raíz:

  • maven-project / pom.xml : define las dependencias y los módulos necesarios durante el ciclo de vida de compilación de un proyecto Maven
  • maven-project / LICENSE.txt : información de licencia del proyecto
  • maven-project / README.txt - resumen del proyecto
  • maven-project / NOTICE.txt : información sobre bibliotecas de terceros utilizadas en el proyecto
  • maven-project / src / main : contiene el código fuente y los recursos que se convierten en parte del artefacto
  • maven-project / src / test : contiene todo el código y los recursos de prueba
  • maven-project / src / it : generalmente reservado para las pruebas de integración utilizadas por el complemento Maven Failsafe
  • maven-project / src / site : documentación del sitio creada con el complemento del sitio de Maven
  • maven-project / src / assembly - configuración de ensamblaje para empaquetar binarios

4. El directorio src / main

Como su nombre indica, src / main es el directorio más importante de un proyecto de Maven. Todo lo que se supone que es parte de un artefacto, ya sea un frasco o una guerra , debe estar presente aquí.

Sus subdirectorios son:

  • src / main / java : código fuente de Java para el artefacto
  • src / main / resources : archivos de configuración y otros, como archivos i18n , archivos de configuración por entorno y configuraciones XML

  • src / main / webapp : para aplicaciones web, contiene recursos como JavaScript, CSS, archivos HTML, plantillas de visualización e imágenes
  • src / main / filtros : contiene archivos que inyectan valores en las propiedades de configuración en la carpeta de recursos durante la fase de compilación

5. El directorio src / test

El directorio src / test es el lugar donde residen las pruebas de cada componente de la aplicación.

Tenga en cuenta que ninguno de estos directorios o archivos pasará a formar parte del artefacto. Veamos sus subdirectorios:

  • src / test / java - código fuente de Java para pruebas
  • src / test / resources : archivos de configuración y otros utilizados por las pruebas
  • src / prueba / filtros : contiene archivos que inyectan valores en las propiedades de configuración en la carpeta de recursos durante la fase de prueba

6. Conclusión

En este artículo, analizamos el diseño de directorio estándar para un proyecto Apache Maven.

Se pueden encontrar múltiples ejemplos de estructuras de proyectos Maven en el proyecto GitHub.