Quando criei um aplicativo Spring Boot, pude ver mvnw
e mvnw.cmd
arquivos na raiz do projeto. Qual é o objetivo desses dois arquivos?
fonte
Quando criei um aplicativo Spring Boot, pude ver mvnw
e mvnw.cmd
arquivos na raiz do projeto. Qual é o objetivo desses dois arquivos?
Esses arquivos são do wrapper Maven . Funciona de maneira semelhante ao wrapper Gradle .
Isso permite que você execute o projeto Maven sem ter o Maven instalado e presente no caminho. Ele baixa a versão correta do Maven se não for encontrada (tanto quanto eu sei por padrão no diretório inicial do usuário).
O mvnw
arquivo é para Linux (bash) e mvnw.cmd
é para o ambiente Windows.
Para criar ou atualizar todos os arquivos necessários do Maven Wrapper, execute o seguinte comando:
mvn -N io.takari:maven:wrapper
Para usar uma versão diferente do maven, você pode especificar a versão da seguinte maneira:
mvn -N io.takari:maven:wrapper -Dmaven=3.3.3
Ambos os comandos exigem maven em PATH
(adicionar o caminho para maven bin
para Path
em Variáveis do sistema) se você já tem mvnw em seu projeto você pode usar ./mvnw
em vez de mvn
nos comandos.
mvn
comando para operação maven, embora pudesse usar./mvnw
para o mesmo propósito.O comando
mvnw
usa o Maven que é baixado por padrão~/.m2/wrapper
no primeiro uso.O URL com o Maven é especificado em cada projeto em
.mvn/wrapper/maven-wrapper.properties
:Para atualizar ou alterar a versão do Maven, chame o seguinte (lembre-se de
--non-recursive
para projetos com vários módulos):ou apenas modificar
.mvn/wrapper/maven-wrapper.properties
manualmente.Para gerar o wrapper a partir do zero usando o Maven (é necessário que ele já esteja em
PATH
execução:fonte
O Maven Wrapper é uma excelente opção para projetos que precisam de uma versão específica do Maven (ou para usuários que não desejam instalar o Maven). Em vez de instalar muitas versões dele no sistema operacional, podemos apenas usar o script de wrapper específico do projeto.
mvnw: é um script shell executável do Unix usado no lugar de um Maven totalmente instalado
mvnw.cmd : é para ambiente Windows
Casos de Uso
O wrapper deve funcionar com diferentes sistemas operacionais, como:
Depois disso, podemos executar nossos objetivos assim para o sistema Unix:
E o seguinte comando para o lote:
Se não tivermos o Maven especificado nas propriedades do wrapper, ele será baixado e instalado na pasta
$USER_HOME/.m2/wrapper/dists
do sistema.Plugin Maven Wrapper
Plugin Maven Wrapper para fazer a instalação automática em um projeto simples do Spring Boot.
Primeiro, precisamos ir na pasta principal do projeto e executar este comando:
Também podemos especificar a versão do Maven:
A opção -N significa –non-recursive, para que o wrapper seja aplicado apenas ao projeto principal do diretório atual, não em nenhum sub-módulo.
fonte
De longe, a melhor opção hoje em dia seria usar um contêiner de maven como ferramenta de construção. Um
mvn.sh
script como este seria suficiente:fonte