Cuando creé una aplicación Spring Boot pude ver mvnw
y mvnw.cmd
archivos en la raíz del proyecto. ¿Cuál es el propósito de estos dos archivos?
fuente
Cuando creé una aplicación Spring Boot pude ver mvnw
y mvnw.cmd
archivos en la raíz del proyecto. ¿Cuál es el propósito de estos dos archivos?
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 mvnw
archivo es para Linux (bash) y mvnw.cmd
es 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 bin
que Path
en las variables del sistema) si ya tiene mvnw en su proyecto puede utilizar ./mvnw
en lugar de mvn
en los comandos.
mvn
comando para la operación maven, aunque podría usarlo./mvnw
para el mismo propósito.Command
mvnw
usa Maven que se descarga por defecto~/.m2/wrapper
en el primer uso.La URL con Maven se especifica en cada proyecto en
.mvn/wrapper/maven-wrapper.properties
:Para actualizar o cambiar la versión de Maven, invoque lo siguiente (recuerde
--non-recursive
para proyectos de varios módulos):o simplemente modificar
.mvn/wrapper/maven-wrapper.properties
manualmente.Para generar un envoltorio desde cero utilizando Maven (necesita tenerlo ya en
PATH
ejecución:fuente
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:
Y el siguiente comando para Batch:
Si no tenemos el Maven especificado en las propiedades del contenedor, se descargará e instalará en la carpeta
$USER_HOME/.m2/wrapper/dists
del 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:
También podemos especificar la versión de Maven:
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.
fuente
Con mucho, la mejor opción hoy en día sería utilizar un contenedor Maven como herramienta de construcción. Un
mvn.sh
guión como este sería suficiente:fuente