CodeGym /Blog Java /Random-ES /Parte 4. Los fundamentos de Maven
John Squirrels
Nivel 41
San Francisco

Parte 4. Los fundamentos de Maven

Publicado en el grupo Random-ES
Este material forma parte de la serie "Introducción al desarrollo empresarial". Artículos anteriores: Parte 4. Los fundamentos de Maven - 1Maven es una herramienta para administrar y construir proyectos: un asistente útil para los programadores de Java. Facilita la vida de los desarrolladores en cada etapa del trabajo: desde la creación de la estructura del proyecto y la conexión de las bibliotecas necesarias hasta la implementación del producto en el servidor. Tendrá que usar Maven cuando trabaje con cualquier marco. Entonces, hoy echemos un vistazo a sus funciones principales y veamos cómo usarlas.

Instalación paso a paso de Maven

  1. Primero, necesitamos instalar Maven. Descárgala desde este enlace .

  2. A continuación, descomprima el archivo descargado y establezca la variable de entorno M2_HOME en la ubicación del archivo descomprimido. Por ejemplo, C:\\Archivos de programa\\maven\\

  3. Para asegurarse de que todo esté instalado, ejecute lo siguiente en la línea de comando:

    mvn -versión

  4. Si se muestra la información de la versión de Maven, Java, etc., entonces todo está listo para funcionar.

  5. Ahora abra IntelliJ IDEA y cree un nuevo proyecto. En la primera ventana, seleccione Maven:

    Parte 4. Los fundamentos de Maven - 2
  6. Haga clic en "Siguiente" y complete la ventana que aparece:

    Parte 4. Los fundamentos de Maven - 3
  7. Luego, como siempre, crea un proyecto donde quieras.

    Una vez creado el proyecto, tome nota de su estructura:

    Parte 4. Los fundamentos de Maven - 4
Esta es la estructura estándar de un proyecto Maven :
  • la carpeta src/main/java contiene las clases de Java
  • la carpeta src/main/resources contiene los recursos utilizados por la aplicación (páginas HTML, imágenes, hojas de estilo, etc.)
  • la carpeta src/test es para pruebas
También preste atención al archivo llamado pom.xml . Este es el archivo principal para administrar Maven . La descripción completa del proyecto se encuentra aquí. No hay demasiada información por el momento, pero la agregaremos ahora.

Administrar dependencias en Maven

Es posible que te hayas encontrado con la frase "administrador de dependencias". Maven sabe cómo administrar las dependencias. Gracias a Maven, no tiene que pasar mucho tiempo buscando en Internet una biblioteca requerida, descargándola y luego conectándola a su proyecto. En su lugar, simplemente agrega la biblioteca requerida a la lista de dependencias en Maven.

Las dependencias se especifican en el nodo de dependencias del archivo pom.xml

Supongamos que necesita la biblioteca Apache Commons IO en su proyecto para simplificar el trabajo con archivos. Para agregar una biblioteca, escribimos cinco líneas en pom.xml:

<dependency>
   <groupId>commons-io</groupId>
   <artifactId>commons-io</artifactId>
   <version>2.6</version>
</dependency>
Ahora su archivo pom.xml debería verse así:

  <?xml version="1.0" encoding="UTF-8"?>
<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>example.com</groupId>
   <artifactId>example</artifactId>
   <version>1.0-SNAPSHOT</version>

   <dependencies>
       <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
           <version>2.6</version>
       </dependency>
   </dependencies>
</project>
Después de eso, permita que IntelliJ IDEA importe la dependencia (debe aparecer un cuadro de diálogo en la esquina inferior derecha). Ahora la biblioteca está lista para usar:

import org.apache.commons.io.FileUtils;

import java.io.File;

public class TestMaven {
   public static void main(String[] args) {
       File tempDirectory = FileUtils.getTempDirectory();
   }
}
Todas las dependencias posteriores también deben escribirse dentro de la <dependencies>etiqueta. Quizás se esté preguntando cómo encontrar la información sobre la biblioteca que necesita indicar dentro de la <dependency>etiqueta. Eso es fácil. Siempre se deben configurar tres parámetros: "groupId", "artifactId" y "version". Hay dos formas de determinar estos parámetros:
  1. En la web de la biblioteca. Si necesitamos la biblioteca Apache Commons IO, vamos al sitio web oficial y seleccionamos la pestaña "Información de dependencia". Toda la información necesaria está aquí ; simplemente puede copiarla y agregarla al <dependencies>nodo.

  2. En un repositorio Maven . Ingrese "apache commons io" en la barra de búsqueda y verá todas las versiones disponibles de la biblioteca. Después de seleccionar el correcto, simplemente copie lo siguiente:

    
    <dependency>
               <groupId>commons-io</groupId>
               <artifactId>commons-io</artifactId>
               <version>2.6</version>
           </dependency>
    

    y agréguelo a su pom.xml.

Tipos de repositorios Maven

Vale la pena que mencionemos los repositorios de Maven nuevamente, porque en realidad tenemos dos: un repositorio remoto (central) y un repositorio local (en su computadora). Todas las bibliotecas que agrega a sus proyectos se guardan en el repositorio local. Cuando Maven agrega una dependencia requerida a un proyecto, primero verifica si la biblioteca ya existe en el repositorio local. Accede al repositorio remoto solo si no encuentra la biblioteca localmente. Como puede ver, puede usar Maven para agregar dependencias, pero esto no es todo lo que puede hacer.

Construyendo un proyecto Java usando Maven

Esta capacidad puede parecer inútil para un principiante. ¿Por qué necesitamos esto si tenemos un IDE? Dejame explicar. En primer lugar, el servidor en el que debe construir su aplicación puede no tener un entorno de desarrollo ni una interfaz gráfica. En segundo lugar, en proyectos grandes, Maven hace un mejor trabajo al construir el proyecto. Entonces, sin más preámbulos, consideraremos el proceso de creación de una aplicación usando Maven.

Etapas

El proceso de creación de una aplicación se conoce como el ciclo de vida de un proyecto Maven y consta de fases. Puede verlos en IDEA haciendo clic en Maven > ejemplo > Ciclo de vida en la esquina superior derecha: Parte 4. Los fundamentos de Maven - 5Como puede ver, hay 9 fases:
  1. clean: elimina todos los archivos compilados del directorio de destino (el lugar donde se guardan los artefactos terminados)
  2. validar: verifica si toda la información requerida para construir el proyecto está presente
  3. compile — compila archivos de código fuente
  4. prueba: inicia las pruebas
  5. paquete: paquetes de archivos compilados (en un archivo JAR, WAR, etc.)
  6. verificar: verifica si el archivo empaquetado está listo
  7. install: coloca el paquete en el repositorio local. Ahora puede ser utilizado por otros proyectos como una biblioteca externa
  8. sitio: crea la documentación del proyecto
  9. desplegar: copia el archivo construido en el repositorio remoto
Todas las fases se realizan secuencialmente: por ejemplo, la cuarta fase no se puede iniciar hasta que se completen las fases 1-3. Hay dos formas de iniciar una fase:
  • a través de la línea de comando:

    paquete mvn

    Parte 4. Los fundamentos de Maven - 6
  • usando IntelliJ IDEA:

    Parte 4. Los fundamentos de Maven - 7

    Antes de que comience la fase del paquete, se realizan las fases de validación, compilación y prueba. La fase limpia es una excepción. Es una buena idea ejecutar esta fase antes de cada compilación del proyecto. Puede enumerar varias fases, separándolas con espacios:

    paquete limpio mvn.

Además, cada fase tiene fases previas y posteriores: por ejemplo, implementación previa, implementación posterior, limpieza previa, limpieza posterior, etc., pero se usan muy raramente. Además, cada fase tiene objetivos. Los objetivos estándar se establecen de forma predeterminada. Los complementos de Maven agregan objetivos adicionales. A veces, durante una fase, es posible que deba realizar funciones adicionales. Hay complementos de Maven para esto. Puede encontrar una lista de complementos oficiales en el sitio web de Maven . Pero debe saber que hay muchos complementos personalizados que se pueden encontrar en sitios web de terceros. Y, por supuesto, si surge alguna necesidad exótica, siempre puede escribir un complemento personalizado usted mismo .

Complementos

Para agregar un complemento de Maven al proyecto, debemos agregar su descripción al archivo pom.xml, usando las etiquetas <build>y <plugins>, de manera similar a como agregamos las dependencias. Por ejemplo, supongamos que necesitamos un complemento para verificar que estamos usando la última versión de todas nuestras bibliotecas externas. Después de buscar un poco en Internet, puede encontrar este complemento e instrucciones sobre cómo usarlo. Configuremos el ID de grupo, el ID de artefacto y la versión. Te indicaremos qué objetivos debe cumplir el plugin y en qué fase. En nuestro caso, la verificación de dependencia en el pom.xml actual está configurada para que ocurra durante la fase de validación. Ahora nuestro archivo pom.xml se ve así:

<?xml version="1.0" encoding="UTF-8"?>
<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>example.com</groupId>
   <artifactId>example</artifactId>
   <version>1.0-SNAPSHOT</version>

   <build>
       <plugins>
           <plugin>
               <groupId>com.soebes.maven.plugins</groupId>
               <artifactId>uptodate-maven-plugin</artifactId>
               <version>0.2.0</version>
               <executions>
                   <execution>
                       <goals>
                           <goal>dependency</goal>
                       </goals>
                       <phase>validate</phase>
                   </execution>
               </executions>
           </plugin>
       </plugins>
   </build>

   <dependencies>
       <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
           <version>2.6</version>
       </dependency>
   </dependencies>
</project>
Podríamos seguir trabajando en nuestro proyecto. Pero intentemos cambiar la versión de Apache Commons IO a 2.0 y construir el proyecto. Nosotros recibiremos

[ERROR] Failed to execute goal com.soebes.maven.plugins:uptodate-maven-plugin:0.2.0:dependency (default) on project example: There is a more up-to-date version ( 2.6 ) of the dependency commons-io:commons-io:2.0 available. -> [Help 1]
Aquí tenemos un error de compilación generado por el complemento. El mensaje de error indica que estamos usando la versión 2.0 cuando la versión 2.6 está disponible. Básicamente, Maven es una herramienta muy útil. Quizás te parezca difícil de usar al principio, ¡pero practica! Crea tus proyectos usando Maven, y después de un tiempo estarás muy satisfecho con el resultado final. Este artículo omitió deliberadamente muchos detalles sobre Maven; nos enfocamos en los más esenciales. Pero no hay límite para la mejora: puedes leer más sobre Maven en su sitio web oficial . Parte 5. Servlets y la API de Java Servlet. Escribiendo una aplicación web simple Parte 6. Contenedores de Servlet Parte 7. Introducción al patrón MVC (Modelo-Vista-Controlador)
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION