Quais são exatamente as diferenças entre mvn clean package
e mvn clean install
? Quando eu executo esses dois comandos, eles parecem fazer a mesma coisa.
Quais são exatamente as diferenças entre mvn clean package
e mvn clean install
? Quando eu executo esses dois comandos, eles parecem fazer a mesma coisa.
Respostas:
Bem, ambos vão limpar. Isso significa que eles removerão a pasta de destino. A verdadeira questão é qual é a diferença entre pacote e instalação?
package
irá compilar seu código e também empacotá-lo. Por exemplo, se o seu pom disser que o projeto é um jar, ele o criará quando você o empacotar e o colocar em algum lugar no diretório de destino (por padrão).
install
irá compilar e empacotar, mas também colocará o pacote no seu repositório local. Isso fará com que outros projetos possam se referir a ele e capturá-lo no seu repositório local.
mvn clean install
não é mais rápido que mvn package
.
O que limpa (comum nos dois comandos) - remove todos os arquivos gerados pela compilação anterior
Chegando à diferença entre o pacote de comandos e a instalação , primeiro você precisa entender o ciclo de vida de um projeto maven
Essas são as fases padrão do ciclo de vida no maven
Como o Maven funciona é, se você executar um comando para qualquer uma das fases do ciclo de vida, ele executará cada fase padrão do ciclo de vida em ordem, antes de executar o próprio comando.
ordem de execução
validar >> compilar >> testar (opcional) >> pacote >> verificar >> instalar >> implantar
Portanto, quando você executa o comando mvn package , ele executa os comandos para todas as fases do ciclo de vida até o pacote
validar >> compilar >> testar (opcional) >> pacote
E quanto ao mvn install , ele executa os comandos para todas as fases do ciclo de vida até a instalação, o que inclui também o pacote
validar >> compilar >> testar (opcional) >> pacote >> verificar >> instalar
Portanto, efetivamente, o que isso significa é que os comandos install fazem tudo o que o comando package faz e um pouco mais (instale o pacote no repositório local, para uso como dependência em outros projetos localmente)
O pacote irá gerar Jar / war conforme o arquivo POM. install instalará o arquivo jar gerado no repositório local para outras dependências, se houver.
a fase de instalação vem após a fase do pacote
Empacotar e instalar são várias fases no ciclo de vida da compilação maven. A fase do pacote executará todas as fases anteriores a isso e parará de empacotar o projeto como um frasco. Da mesma forma, a fase de instalação executará todas as fases anteriores e finalmente instalará o projeto localmente para outros projetos dependentes.
Para entender o ciclo de vida da construção do maven, acesse o seguinte link https://ayolajayamaha.blogspot.in/2014/05/difference-between-mvn-clean-install.html
package
adicionará o pacote jar
ou war
a sua target
pasta. Podemos verificar quando, esvaziamos a pasta de destino (usando mvn clean
) e depois executamos mvn package
.
install
fará tudo o que package
fizer, além de adicionar o pacote jar
ou war
o repositório local. Para confirmar, verifique sua .m2
pasta.
package
einstall
.