Cuando creé una aplicación Spring Boot pude ver mvnwy mvnw.cmdarchivos en la raíz del proyecto. ¿Cuál es el propósito de estos dos archivos?
Cuando creé una aplicación Spring Boot pude ver mvnwy mvnw.cmdarchivos en la raíz del proyecto. ¿Cuál es el propósito de estos dos archivos?
Respuestas:
Estos archivos son del contenedor Maven . Funciona de manera similar al envoltorio Gradle .
Esto le permite ejecutar el proyecto Maven sin tener Maven instalado y presente en la ruta. Descarga la versión correcta de Maven si no se encuentra (por lo que sé por defecto en su directorio de inicio de usuario).
El mvnwarchivo es para Linux (bash) y mvnw.cmdes para el entorno de Windows.
Para crear o actualizar todos los archivos necesarios de Maven Wrapper, ejecute el siguiente comando:
mvn -N io.takari:maven:wrapper
Para usar una versión diferente de maven, puede especificar la versión de la siguiente manera:
mvn -N io.takari:maven:wrapper -Dmaven=3.3.3
Ambos comandos requieren experta en PATH(añadir la ruta a maven binque Pathen las variables del sistema) si ya tiene mvnw en su proyecto puede utilizar ./mvnwen lugar de mvnen los comandos.
Command mvnwusa Maven que se descarga por defecto ~/.m2/wrapperen el primer uso.
La URL con Maven se especifica en cada proyecto en .mvn/wrapper/maven-wrapper.properties:
distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.3.9/apache-maven-3.3.9-bin.zip
Para actualizar o cambiar la versión de Maven, invoque lo siguiente (recuerde --non-recursivepara proyectos de varios módulos):
./mvnw io.takari:maven:wrapper -Dmaven=3.3.9
o simplemente modificar .mvn/wrapper/maven-wrapper.propertiesmanualmente.
Para generar un envoltorio desde cero utilizando Maven (necesita tenerlo ya en PATHejecución:
mvn io.takari:maven:wrapper -Dmaven=3.3.9
El Maven Envoltura es una excelente opción para proyectos que necesitan una versión específica de Maven (o para los usuarios que no deseen instalar Maven en absoluto). En lugar de instalar muchas versiones de él en el sistema operativo, podemos usar el script de envoltura específico del proyecto.
mvnw: es un script ejecutable de shell Unix utilizado en lugar de un Maven completamente instalado
mvnw.cmd : es para el entorno de Windows
Casos de uso
El contenedor debería funcionar con diferentes sistemas operativos como:
Después de eso, podemos ejecutar nuestros objetivos de esta manera para el sistema Unix:
./mvnw clean install
Y el siguiente comando para Batch:
./mvnw.cmd clean install
Si no tenemos el Maven especificado en las propiedades del contenedor, se descargará e instalará en la carpeta $USER_HOME/.m2/wrapper/distsdel sistema.
Complemento Maven Wrapper
Complemento Maven Wrapper para realizar la instalación automática en un simple proyecto Spring Boot.
Primero, debemos ir a la carpeta principal del proyecto y ejecutar este comando:
mvn -N io.takari:maven:wrapper
También podemos especificar la versión de Maven:
mvn -N io.takari:maven:wrapper -Dmaven=3.5.2
La opción -N significa –no-recursivo para que el contenedor solo se aplique al proyecto principal del directorio actual, no en ningún submódulo.
Con mucho, la mejor opción hoy en día sería utilizar un contenedor Maven como herramienta de construcción. Un mvn.shguión como este sería suficiente:
#!/bin/bash
docker run --rm -ti \
-v $(pwd):/opt/app \
-w /opt/app \
-e TERM=xterm \
-v $HOME/.m2:/root/.m2 \
maven mvn "$@"
mvncomando para la operación maven, aunque podría usarlo./mvnwpara el mismo propósito.