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.