instalação limpa do mvn vs. deploy vs. release

132

Estou apenas aprendendo a ser inteligente, e recentemente precisamos ir cada vez mais. Eu gostaria de saber a diferença entre

mvn clean install

mvn release

mvn deploy

Seja o mais descritivo possível.

myusuf3
fonte

Respostas:

223

As fasesclean , installe são válidas do ciclo de vida e a invocação delas acionará todas as fases que as precedem e os objetivos vinculados a essas fases.deploy

instalação limpa do mvn

Este comando chama a cleanfase e depois a installfase sequencialmente:

  • clean: remove arquivos gerados no momento da construção no diretório de um projeto ( targetpor padrão)
  • install: instala o pacote no repositório local , para uso como dependência em outros projetos localmente .

mvn deploy

Este comando chama a deployfase:

  • deploy: copia o pacote final para o repositório remoto para compartilhar com outros desenvolvedores e projetos .

liberação mvn

Esta não é uma fase válida nem uma meta, portanto não fará nada. Mas, se refere ao plug-in do Maven, usado para automatizar o gerenciamento de lançamentos. A liberação de um projeto é feita em duas etapas: preparee perform. Conforme documentado:

A preparação de um release passa pelas seguintes fases do release:

  • Verifique se não há alterações não confirmadas nas fontes
  • Verifique se não há dependências do INSTANTÂNEO
  • Altere a versão nas POMs de x-SNAPSHOT para uma nova versão (você será solicitado a usar as versões)
  • Transforme as informações do SCM no POM para incluir o destino final da tag
  • Execute os testes do projeto nos POMs modificados para confirmar que tudo está funcionando corretamente
  • Confirme as POMs modificadas
  • Identifique o código no SCM com um nome de versão (isso será solicitado)
  • Colocar a versão nas POMs em um novo valor y-SNAPSHOT (esses valores também serão solicitados)
  • Confirme as POMs modificadas

E depois:

A execução de uma liberação executa as seguintes fases da liberação:

  • Saída de um URL do SCM com tag opcional
  • Execute as metas predefinidas do Maven para liberar o projeto (por padrão, implantar a implantação do site)

Veja também

Pascal Thivent
fonte
1
Você pode esclarecer o seguinte: Esta não é uma fase válida nem uma meta, portanto não fará nada. Mas se refere ao plug-in de liberação do Maven. Se não é uma fase nem uma meta, como chamamos isso?
gvlasov
26
  • mvn installcolocará seu projeto maven empacotado no repositório local , para aplicativos locais, usando o seu projeto como uma dependência.
  • mvn release basicamente colocará seu código atual em uma tag no seu SCM, alterará sua versão em seus projetos.
  • mvn deploycolocará seu projeto maven empacotado em um repositório remoto para compartilhamento com outros desenvolvedores.

Recursos :

Colin Hebert
fonte