Apache Maven: en resumen
Si es un desarrollador de Java, sus actividades diarias mientras trabaja en su proyecto incluyen: escribir el código, compilar el código, probar el código, empaquetarlo en forma de un artefacto como un archivo jar o war y luego implementarlo . artefacto a un servidor web.
Hay muchas tareas que debe realizar manualmente y, obviamente, puede automatizar estas tareas utilizando una biblioteca llamada Apache Maven .
En este artículo, comprenderemos qué es Apache Maven y cómo puede usarlo de manera efectiva para crear y administrar sus proyectos de Java.
Primero, comprendamos los fundamentos de maven.
¿Qué es Maven?
Maven es una herramienta de gestión de proyectos desarrollada para ayudar a gestionar proyectos que se desarrollan utilizando lenguajes JVM como Java y Scala. La tarea principal de las herramientas de gestión de proyectos incluye,
- Construyendo el código fuente
- Probando el código fuente
- Envasado en tarro, guerra u oreja
- Generando documentos java
- Administrar dependencias
Ahora, avancemos y veamos cómo instalar Maven en nuestra máquina.
- Abra https://maven.apache.org/ en su navegador
- Vaya a la sección de descargas y descargue la última carpeta zip de la versión maven y extráigala
- Establezca la variable de ruta de entorno Agregue JAVA_HOME y MAVEN_HOME
- Agregue la ruta maven en la variable de entorno. ej.: F:\apache-maven-3.6.3-bin\apache-maven-3.6.3\bin
Repositorio Maven:
Maven Repository es un directorio de archivos jar empaquetados con pom.xml. Maven busca dependencias en los repositorios. Hay tres tipos de repositorios maven.
- Repositorio local
- Repositorio central
- Repositorio remoto
Además, podemos cambiar la ubicación del repositorio local en el archivo settings.xml, que se encuentra en MAVEN_HOME/conf/settings.xml Ejemplo: E:\apache-maven-3.1.1\conf\settings.xml
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
</settings>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>e:/mavenlocalrepository</localRepository>
</settings>
El repositorio central contiene muchas bibliotecas comunes que se pueden ver con esta URLhttp://search.maven.org/#browse.
Repositorio remoto de Maven: el repositorio remoto de Maven se encuentra en la web. Algunas de las bibliotecas pueden faltar en el repositorio central, como la biblioteca JBoss, etc., por lo que debemos definir un repositorio remoto en el archivo pom.xml.
Estructura del proyecto Maven:
Ahora comprendamos la estructura del proyecto Maven. Cuando cree un proyecto maven, verá una carpeta llamada
- src — fuente — que es la raíz del código fuente de nuestra aplicación y la prueba unitaria de la aplicación
- src/main/java — que contiene el código fuente de nuestra aplicación, todo el código de producción que escribimos en nuestra aplicación está dentro de esta carpeta
- src/main/resources — donde almacenamos todos los archivos estáticos que usamos en nuestro proyecto. ejemplo application.properties , archivos XML, archivos CSV, etc.
- Si está desarrollando una aplicación web, todos los archivos html y javascript estarán en esta carpeta.
- src/test/java — aquí, donde escribimos la prueba unitaria y la prueba de integración para nuestra aplicación
- pom.xml — contiene los metadatos de las dependencias del proyecto
- objetivo: en esta carpeta, maven almacena todos los archivos de clase java compilados
POM contiene los metadatos del proyecto y también es responsable de administrar las dependencias para configurar complementos que nos ayudan a automatizar muchas tareas repetitivas, aquí está el pom.xml 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.maven.application</groupId>
<artifactId>my-app</artifactId>
<version>1</version>
</project>
- versión del modelo: la versión del modelo siempre se establecerá en 4.0.0 a menos que la cambie a otra versión de maven. Por ejemplo, versiones superiores a la 3.0
- archivo pom simple
- archivo súper pom
- archivo pom eficaz
Archivo super pom: puede encontrar el archivo super pom en el directorio de instalación de maven, en la ruta lib. Y dentro del archivo jar — maven-model-builder, podemos encontrar un paquete llamado org
Archivo pom efectivo: el archivo pom efectivo no es más que una combinación de archivos pom simples y súper pom. Es solo una forma de verificar toda la información de los archivos pom.xml en un solo lugar. Para echar un vistazo al archivo pom efectivo, vaya al tipo de terminal maven
mvn-help: effective-pom
Maven tiene dos tipos de dependencias
- Dependencia de instantánea: una dependencia de instantánea significa un proyecto que está en desarrollo activo y que es inestable.
- Dependencia de liberación: una vez que se completa el proyecto, se libera
Podemos controlar la visibilidad de la dependencia maven utilizando ámbitos de dependencia. Hay 5 tipos de visores
- Compilar: este es el alcance predeterminado para todas las dependencias y las dependencias marcadas con compilación están disponibles dentro del classpath del proyecto.
- Proporcionado: una dependencia cuyo alcance proporcionado se proporcionará en el tiempo de ejecución, ya sea por jdk o el servidor web
- Tiempo de ejecución: como sugiere el nombre, la dependencia marcada con tiempo de ejecución está disponible solo en tiempo de ejecución, pero no en tiempo de compilación.
- Prueba: estas dependencias solo están disponibles al momento de escribir y ejecutar la prueba.
- Alcance de los sistemas: esto es similar al alcance provisto, pero la única diferencia es que mencionamos explícitamente dónde podemos encontrar la dependencia en el sistema. En lugar de que JDK o el servidor web proporcionen esta dependencia en tiempo de ejecución, proporcionamos la ruta del sistema donde Maven puede encontrar esta dependencia. Podemos proporcionar la ruta usando la ruta del sistema
El ciclo de vida de compilación de Maven se divide en 3 pasos diferentes:
- Predeterminado: como parte de este paso, Maven realiza muchas tareas,
- maven lee el pom.xml y valida si tenemos un xml válido o no.
- Luego, maven compilará nuestro código fuente y creará los archivos de clase y los almacenará en la carpeta de destino.
- Luego, en la fase de prueba, como parte de la prueba, maven ejecuta la prueba unitaria dentro del proyecto.
- paquete: como parte del paquete, maven empaqueta el código fuente en un artefacto de nuestra elección, como archivos jar, war, ear o zip
- prueba de integración: si nuestro proyecto contiene pruebas de integración y se ejecuta
- verificar: maven verifica que la prueba de integración, que se ejecuta en la fase anterior, sea exitosa o no
- install — maven instalará el paquete creado en el repositorio local
- desplegar: después de la instalación, maven se desplegará en un repositorio remoto.
2. Limpiar: este paso se encarga principalmente de limpiar las clases java compiladas o los metadatos generados. Ejemplo: mvn instalación limpia
3. Sitio: Este es responsable de generar la documentación java que está presente dentro de nuestro proyecto.
Maven simplifica el proceso de compilación de una manera mucho más avanzada. Espero que hayas aprendido y entendido algunos puntos sobre Apache Maven.
Gracias por leer el artículo. Aplauda, comparta y comente. me animará a escribir más artículos de este tipo. ¡Comparta sus valiosas sugerencias, agradezco sus comentarios honestos!
Pregunta de entrevista más frecuente basada en Java8 Stream — Parte 1 La forma más fácil de acceder a una base de datos en JAVA Detectar múltiples excepciones en Java Codificación: Encuentre el n-ésimo número de Fibonacci en JavaScript Python explicado
![¿Qué es una lista vinculada, de todos modos? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































