¿Qué es Maven?
Maven es una poderosa herramienta de gestión de proyectos basada en POM (modelo de objetos de proyecto). Se utiliza para la construcción de proyectos, dependencias y documentación. Simplifica el proceso de construcción como ANT. Pero es mucho más avanzado que ANT.
En resumen, podemos decir que maven es una herramienta que se puede usar para construir y administrar cualquier proyecto basado en Java. maven facilita el trabajo diario de los desarrolladores de Java y, en general, ayuda a comprender cualquier proyecto basado en Java.
¿Qué hace Maven?
Maven realiza muchas tareas útiles como
- Podemos construir fácilmente un proyecto usando maven.
- Podemos agregar fácilmente jars y otras dependencias del proyecto usando la ayuda de maven.
- Maven proporciona información sobre el proyecto (documento de registro, lista de dependencias, informes de pruebas unitarias, etc.)
- Maven es muy útil para un proyecto al actualizar el repositorio central de JAR y otras dependencias.
- Con la ayuda de Maven, podemos poner cualquier número de proyectos en tipos de salida como JAR, WAR, etc. sin necesidad de realizar scripts.
- Usando maven podemos integrar fácilmente nuestro proyecto con un sistema de control de fuente (como Subversion o Git).
¿Cómo funciona maven?
Conceptos básicos de Maven:
- archivos POM: Los archivos del modelo de objetos del proyecto (POM) son archivos XML que contienen información relacionada con el proyecto y la información de configuración, como dependencias, directorio de origen, complementos, objetivos, etc. que Maven usa para construir el proyecto. Cuando deba ejecutar el comando maven, proporcione el archivo POM de maven para ejecutar los comandos. Maven lee un archivo pom.xml para realizar su configuración y operaciones.
- Dependencias y Depósitos: Las dependencias requeridas por el Proyecto son bibliotecas Java externas y los repositorios son directorios de archivos JAR empaquetados. La tienda local es solo un directorio en el disco duro de su máquina. Si las dependencias no se encuentran en el repositorio local de Maven, Maven las descarga del repositorio central de Maven y las coloca en su repositorio local.
- Construir ciclos de vida, etapas y objetivos: Un ciclo de vida de compilación es una secuencia de etapas de compilación, y cada etapa de compilación tiene una secuencia de objetivos. Un comando de Maven es el nombre de un ciclo de vida, una etapa o un objetivo de compilación. Si se solicita un ciclo de vida ejecutado emitiendo un comando maven, también se ejecutan todos los pasos de compilación en ese ciclo de vida. Si se solicita la ejecución de un paso de construcción, también se ejecutan todos los pasos de construcción anteriores en la secuencia definida.
- Construir perfiles: Cree perfiles y un conjunto de valores de configuración que le permitan construir su proyecto utilizando diferentes configuraciones. Por ejemplo, es posible que necesite compilar su proyecto para su computadora local, para desarrollo y prueba. Para habilitar diferentes compilaciones, puede agregar diferentes perfiles de compilación a sus archivos POM usando sus elementos de perfil y se activan de diferentes maneras.
- Complementos de construcción: Los complementos de construcción se utilizan para cumplir un objetivo específico. puede agregar un complemento al archivo POM. Maven tiene varios complementos estándar que puede usar y también puede implementar los suyos propios en Java.
Proceso de instalación de Maven
La instalación de Maven incluye los siguientes pasos:
- Verifique que Java esté instalado en su sistema o no. si no, instale java (Enlace para la instalación de Java)
- Compruebe si la variable de entorno Java está configurada o no. si no, establezca la variable de entorno java. (enlace a instalar Java y establecer la variable de entorno)
- Descargar maven (Enlace)
- Descomprima su maven zip en cualquier parte de su sistema.
- Agregue el directorio bin del directorio creado apache-maven-3.5.3 (depende de su versión de instalación) a la variable de entorno PATH y a la variable del sistema.
- abrir cmd y ejecutar mvn-v ordenar. Si se imprimen las siguientes líneas de código, la instalación está completa.
Apache Maven 3.5.3 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-25T01:19:05+05:30)
Maven home: C:apache-maven-3.5.3bin..
Java version: 1.8.0_151, vendor: Oracle Corporation
Java home: C:Program FilesJavajdk1.8.0_151jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
Archivo maven pom.xml
POM significa que el modelo de objetos del proyecto es fundamental para que Maven funcione. Maven lee un archivo pom.xml para realizar su configuración y operaciones. Es un archivo XML que contiene información relacionada con el proyecto e información de configuración como dependencias, directorio fuente, enchufar, objetivos, etc.. utilizado por Maven para construir el proyecto.
El ejemplo de pom.xml
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 < modelVersion >4.0.0</ modelVersion > < groupId > com.project.loggerapi </ groupId > < artifactId >LoggerApi</ artifactId > < version >0.0.1-SNAPSHOT</ version > <!-- Add typical dependencies for a web application --> < dependencies > < dependency > < groupId >org.apache.logging.log4j</ groupId > < artifactId >log4j-api</ artifactId > < version >2.11.0</ version > </ dependency > </ dependencies > </ project > |
Elementos utilizados para crear el archivo pom.xml
- proyecto Es el elemento raíz del archivo pom.xml.
- versión del modelo versión del modelo significa qué versión del modelo POM está utilizando. Use la versión 4.0.0 para maven 2 y maven 3.
- Identificación del grupo- groupId significa el ID del grupo del proyecto. Es único y, a menudo, usará una ID de grupo que es similar al nombre del paquete raíz de Java del proyecto, ya que usamos groupId com.project.loggerapi.
- identificación del artefacto- artefactoId utilizado para dar el nombre del proyecto que está construyendo. En nuestro ejemplo, nuestro nombre de proyecto es LoggerApi.
- versión El elemento de versión contiene el número de versión del proyecto. Si su proyecto ha sido lanzado en diferentes versiones, entonces es útil dar una versión de su proyecto.
Otros elementos del archivo Pom.xml
- dependencia Se utiliza un elemento de dependencia para definir la lista de dependencias del proyecto.
- dependencia dependencia define una dependencia y se usa dentro de una etiqueta de dependencia. Cada dependencia se describe por su ID de grupo, ID de artefacto y versión.
- nombre este elemento se usa para nombrar nuestro proyecto maven.
- alcance este elemento se usa para definir un alcance para este proyecto maven que se puede compilar, ejecutar, probar, proporcionar el sistema, etc.
- embalaje- El elemento de empaquetado se utiliza para empaquetar nuestro proyecto en tipos de salida como JAR, WAR, etc.
Repositorio Maven
Los repositorios de Maven son directorios de archivos JAR empaquetados con algunos metadatos. Los metadatos asociados a los proyectos a los que pertenece cada archivo JAR empaquetado, incluidas las dependencias externas de cada JAR empaquetado, son archivos POM. Estos metadatos permiten que Maven descargue recursivamente las dependencias de sus dependencias hasta que todas las dependencias se descarguen e instalen en su máquina local.
Maven tiene tres tipos de repositorios:
- Tienda local
- Repositorio central
- almacenamiento remoto
Maven busca dependencias en estos repositorios. Maven primero busca en el Repositorio local, luego en el Repositorio central y luego en el Repositorio remoto si el repositorio remoto está especificado en el POM.
- Tienda local – Un repositorio local es un directorio en la máquina del desarrollador. Este repositorio contiene todas las descargas de Maven. Maven solo necesita descargar las dependencias una vez, incluso si varios proyectos dependen de ellas (por ejemplo, ODBC).
De forma predeterminada, el repositorio local de maven es el directorio user_home/m2.
ejemplo – C:Usuariosasingh.m2 - Repositorio central – Se crea una comunidad de Maven en el repositorio central de Maven. Maven busca en este repositorio central las dependencias que se necesitan pero que no se encuentran en su repositorio local. Luego, Maven descarga estas dependencias en su repositorio local. Puedes ver la tienda central a través de este enlace.
- tienda remota Un repositorio remoto es un repositorio en un servidor web desde el cual Maven puede descargar dependencias. A menudo se usa para albergar proyectos dentro de la organización. Luego, Maven descarga estas dependencias en su repositorio local.
- Maven puede agregar automáticamente todas las dependencias requeridas para el proyecto leyendo un archivo pom.
- Su proyecto se puede construir fácilmente de acuerdo con jar, war, etc. de acuerdo a sus requerimientos usando Maven.
- Maven facilita el inicio de un proyecto en diferentes entornos y no requiere la inyección de dependencia, la construcción, el procesamiento, etc. manejar.
- Agregar una nueva dependencia es muy fácil. Simplemente escriba el código de dependencia en un archivo pom.
- Maven necesita una instalación de maven en el sistema para funcionar y un complemento de maven para el ide.
- Si el código maven para una dependencia existente no está disponible, esa dependencia no se puede agregar usando maven.
- Cuando el proyecto tiene muchas dependencias. Entonces es fácil manejar esas dependencias usando maven.
- Cuando una versión de dependencia se actualiza con frecuencia. Luego, simplemente actualice la ID de la versión en el archivo pom para actualizar las dependencias.
- La compilación, la integración y las pruebas continuas se pueden manejar fácilmente con maven.
- Cuando necesite una forma sencilla de generar documentos a partir del código fuente, compile el código fuente, compile el código Empaquetado en archivos JAR o ZIP.
Una aplicación práctica de Maven
Cuando está trabajando en un proyecto de Java y hay muchas dependencias en ese proyecto, compilaciones, requisitos, entonces es muy difícil y tedioso manejar todas esas cosas manualmente. Por lo tanto, es muy útil utilizar alguna herramienta que pueda hacer estos trabajos.
maven es asi construir una herramienta de gestión que puede hacer de todo, como agregar dependencias, administrar el classpath del proyecto, generar automáticamente un archivo war y jar y muchas otras cosas.
Ventajas y desventajas de usar Maven
ventajas:
Desventajas:
¿Cuándo se debe usar Maven?
La herramienta Maven Build se puede utilizar en las siguientes condiciones:
Referencia- Documentación de Apache Maven