Maven es una herramienta de gestión y construcción de proyectos Java que se utiliza principalmente para simplificar el proceso de compilación, empaquetado y distribución de aplicaciones. Fue desarrollado por Apache y sigue un enfoque basado en convenciones sobre configuraciones, lo que significa que utiliza un conjunto estándar de reglas y estructuras para facilitar la administración de proyectos.
A continuación, se enumeran las opciones y comandos más utilizados en Maven:
mvn clean
: Elimina los archivos generados en la carpeta target
, limpiando el entorno de trabajo.mvn compile
: Compila el código fuente del proyecto.mvn test
: Ejecuta las pruebas unitarias del proyecto utilizando frameworks como JUnit.mvn package
: Empaqueta el proyecto en un archivo JAR, WAR u otro formato según la configuración.mvn install
: Instala el artefacto generado en el repositorio local de Maven (~/.m2/repository
) para que pueda ser utilizado por otros proyectos.mvn deploy
: Despliega el artefacto en un repositorio remoto, como Nexus o Artifactory.mvn archetype:generate
: Crea un nuevo proyecto Maven a partir de un arquetipo (template).mvn dependency:tree
: Muestra un árbol de dependencias del proyecto, útil para identificar conflictos de versiones.mvn site
: Genera un sitio web con información del proyecto, incluyendo métricas, documentación y reportes.mvn verify
: Ejecuta todas las fases hasta la verificación del paquete, incluyendo pruebas integradas.-DskipTests
: Opción para omitir la ejecución de pruebas durante la construcción del proyecto.Un proyecto Maven típico sigue esta estructura de directorios:
proyecto-maven/ ├── src/ │ ├── main/ │ │ ├── java/ # Código fuente principal │ │ └── resources/ # Recursos principales (archivos de configuración, propiedades, etc.) │ └── test/ │ ├── java/ # Pruebas unitarias │ └── resources/ # Recursos para las pruebas ├── pom.xml # Archivo de configuración de Maven
El archivo pom.xml
es el corazón de un proyecto Maven. Contiene la configuración del proyecto, incluyendo dependencias, plugins, metadatos y el ciclo de vida del build. A continuación, se muestra un ejemplo básico:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.ejemplo</groupId> <artifactId>proyecto-ejemplo</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.2</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> </project>
Este archivo define el grupo, el nombre del artefacto, la versión, las dependencias y los plugins necesarios para construir el proyecto.
Maven es una herramienta poderosa que simplifica la gestión de proyectos Java al proporcionar un enfoque estandarizado y automatizado para construir, probar y distribuir aplicaciones. Su capacidad para manejar dependencias y su flexibilidad mediante plugins lo hacen indispensable en el desarrollo de software moderno.