MAVEN WRAPPER: Simplifica la consistencia de Maven en equipos de desarrollo

0
85

MAVEN WRAPPER: Simplifica la consistencia de Maven en equipos de desarrollo

TABLA DE CONTENIDOS:

1. DEFINICIÓN DE WRAPPER        

2. BENEFICIOS DE UTILIZAR WRAPPER        

3. ENTORNO        

4. CONFIGURACIÓN        

5. ESPECIFICAR LA VERSIÓN DE MAVEN        

6. USANDO AUTENTICACIÓN:        

7. COMANDOS        

8. TIPOS DE IMPLEMENTACIÓN DE APACHE MAVEN WRAPPER:        

9. CONCLUSIÓN        

10. REFERENCIAS        

1. DEFINICIÓN DE WRAPPER

Maven Wrapper es una herramienta que permite a los desarrolladores descargar y ejecutar una versión específica de Apache Maven sin la necesidad de tenerla instalada previamente.

Dicho de otra manera, es una forma sencilla de asegurar que todos los desarrolladores de un proyecto tienen la misma versión de Maven y, por lo tanto, todo lo necesario para correr el programa.

2. BENEFICIOS DE UTILIZAR WRAPPER

Algunos beneficios de utilizar Maven Wrapper son:

  1. Consistencia en el entorno: ya que todos los desarrolladores utilizarán la misma versión de Maven especificada en el proyecto.
  1. Facilita la configuración: los desarrolladores no necesitan instalar la versión correcta de Maven manualmente, sino que el Wrapper lo hace automáticamente.
  2. Simplifica la integración continua: las herramientas de integración continua pueden utilizar el Wrapper para garantizar que siempre se esté utilizando la versión correcta de Maven.
  3. Es portable: el proyecto no depende de la configuración del sistema. Todo lo necesario para su ejecución está incluido en el repositorio.
  4. Controla dependencias y plugins: además de la versión de Maven, también es posible controlar versiones específicas de plugins y dependencias, las cuales pueden ser críticas para el entorno.
  5. Simplifica las actualizaciones: para actualizar la versión de Maven es tan fácil como cambiar una propiedad en el archivo de configuración del Wrapper (lo veremos a continuación).
  6. Garantiza la seguridad: ya que la versión de Maven que se ejecute ya ha sido probada previamente y es compatible con el proyecto.

3. ENTORNO

Ahora que ya nos sabemos la teoría, vamos a la práctica:

Para poder hacer uso de Maven Wrapper solamente es necesario tener:

  1. Un sistema operativo compatible: Linux, OSX / macOs, Windows, Solaris (10 y 11) o BSD.
  2. Una shell compatible con POSIX para ejecutar el script de Wrapper.
  3. Mínimo la versión 3.x de Maven y 1.8 del JDK

4. CONFIGURACIÓN

La forma más sencilla de configurar Maven Wrapper en nuestro proyecto es hacer uso de Maven Wrapper Plugin, especificando la versión de este en el archivo de configuración de dependencias (pom.xml) de nuestro proyecto:

<project>

  …

  <build>

<!– Para definir la versión del plugin en el POM principal –>

    <pluginManagement>

      <plugins>

        <plugin>

          <groupId>org.apache.maven.plugins</groupId>

          <artifactId>maven-wrapper-plugin</artifactId>

          <version>3.3.1</version>

        </plugin>

        …

      </plugins>

    </pluginManagement>

<!– Para usar los objetivos del plugin en el POM principal–>

    <plugins>

      <plugin>

        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-wrapper-plugin</artifactId>

      </plugin>

      …

    </plugins>

  </build>

  …

</project>

Después, ejecutaremos en la terminal:

mvn wrapper:wrapper

Por defecto, este plugin asumirá la misma versión de Maven que se encuentra en el entorno de ejecución (la cual se puede ver ejecutando mvn -v).

Tras el anterior comando,

Además, se crearán en nuestro proyecto dos archivos (mvnw y mvnw.cmd) y un directorio oculto .mvn:

                mvnw

                mvnw.cmd

                .mvn   

                    wrapper

                                  MavenWrapperDownloader.java

                                  maven-wrapper.jar 

                                  maven-wrapper.properties

Maven Wrapper se compone de tres partes:

  • maven-wrapper → proporciona maven-wrapper.jar que descarga, instala y corre Maven.
  • maven-wrapper-distribution → proporciona los scripts mvnw/mvnw.cmd.
  • maven-wrapper-plugin → es el plugin de wrapper que facilita la instalación del wrapper en el proyecto.

5. ESPECIFICAR LA VERSIÓN DE MAVEN

Para especificar una versión de Apache Maven, en lugar del anterior comando, se debe ejecutar el siguiente:

mvn wrapper:wrapper -Dmaven=x 

(siendo x la versión de maven deseada, por ejemplo la 3.4.5).

Otra opción es hacer el cambio de versión en el distributionUrl en .mvn/wrapper/maven-wrapper.properties. Por ejemplo:

distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.5.4/apache-maven-3.5.4-bin.zip

6. USANDO AUTENTICACIÓN:

Para descargar Maven sobre una dirección que requiere autenticación básica existen dos opciones:

  1. Modificar las variables de entorno MVNW_USERNAME y MVNW_PASSWORD.
  2. Añadir el usuario y contraseña en el distributionUrl de la siguiente manera:

distributionUrl=https://username:password@<yourserver>/maven2/org/apache/maven/apache-maven/3.2.1/apache-maven-3.2.1-bin.zip

7. COMANDOS

Normalmente, para instalar una versión específica de Apache Maven, se ejecuta el comando “mvn” de la siguiente manera: mvn clean install

Pero ahora, con esta configuración, se ejecuta con los scripts del wrapper:

En Linux, BSD, macOS o Solaris:

./mvnw clean install

En Windows:

mvnw.cmd clean install

Este comando se ejecutará igual que una instrucción normal de Maven, con la diferencia de que si el usuario no tiene la versión necesaria especificada en .mvn/wrapper/maven-wrapper.properties, primero se descargará, se instalará y luego se usará. Esta versión de Maven se desempaqueta en la carpeta ${user.home}/.m2/wrapper/dists.

8. TIPOS DE IMPLEMENTACIÓN DE APACHE MAVEN WRAPPER:

Existen 4 tipos disponibles para este plugin:

  • Only-script.
  • Script.
  • Bin.
  • Source.

El tipo predeterminado es only-script, pero se puede especificar ejecutando el comando:

mvn wrapper:wrapper -Dtype=x

(siendo x el tipo de implementación deseado).

9. CONCLUSIÓN

El uso de Maven Wrapper ofrece una solución eficaz para garantizar la consistencia en los entornos de desarrollo, facilitando la configuración, integración continua y portabilidad de proyectos. Al permitir que todo el equipo de desarrollo utilice la misma versión de Maven sin necesidad de instalaciones manuales, se simplifica el manejo de dependencias y plugins, y se asegura que las versiones ejecutadas ya han sido probadas y son compatibles con el proyecto. Además, la actualización de versiones se vuelve más sencilla, lo cual mejora la seguridad y la eficiencia en el desarrollo de software.

10. REFERENCIAS

https://www.hermanbarrantes.dev/maven-wrapper/

https://maven.apache.org/wrapper/

https://maven.apache.org/wrapper/maven-wrapper-plugin/usage.html

https://www.baeldung.com/maven-wrapper

https://javastreets.com/blog/maven-wrapper.html

https://maven.apache.org/wrapper/maven-wrapper-plugin/

https://maven.apache.org/wrapper/maven-wrapper-plugin/plugin-info.html

DEJA UNA RESPUESTA

Por favor ingrese su comentario!

He leído y acepto la política de privacidad

Por favor ingrese su nombre aquí

Información básica acerca de la protección de datos

  • Responsable:
  • Finalidad:
  • Legitimación:
  • Destinatarios:
  • Derechos:
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad