Objetivos e fases do Maven
1. Visão geral
Neste tutorial, vamos explorar diferentes ciclos de vida de construção Maven e suas fases.
Também discutiremos a relação central entre metas e fases.
2. Ciclo de vida da versão Maven
A construção do Maven segue um ciclo de vida específico para implantar e distribuir o projeto de destino.
Existem três ciclos de vida integrados:
-
padrão: o ciclo de vida principal, pois é responsável pela implantação do projeto
-
clean: para limpar o projeto e remover todos os arquivos gerados pela compilação anterior
-
site: para criar a documentação do site do projeto
Each life cycle consists of a sequence of phases. O ciclo de vida de construçãodefault consiste em 23 fases, pois é o ciclo de vida de construção principal.
Por outro lado, o ciclo de vida declean consiste em 3 fases, enquanto o ciclo de vida desite consiste em 4 fases.
3. Fase Maven
A Maven phase represents a stage in the Maven build ciclo de vida. Cada fase é responsável por uma tarefa específica.
Aqui estão algumas das fases mais importantes no ciclo de vida de construção dedefault:
-
validate: verifique se todas as informações necessárias para a construção estão disponíveis
-
compile: compila o código fonte
-
test-compile: compilar o código-fonte de teste
-
test: executa testes de unidade
-
O pacotepackage: compilou o código-fonte no formato distribuível (jar, war, ...)
-
integration-test: processe e implemente o pacote se necessário para executar testes de integração
-
install: instala o pacote em um repositório local
-
deploy: copia o pacote para o repositório remoto
Para obter a lista completa das fases de cada ciclo de vida, verifique oMaven Reference.
As fases são executadas em uma ordem específica. Isso significa que se executarmos uma fase específica usando o comando:
mvn
Isso não executará apenas a fase especificada, mas também todas as fases anteriores.
Por exemplo, se executarmos a fasedeploy - que é a última fase no ciclo de vida de construçãodefault - que executará todas as fases antes da fasedeploy também, que é toda adefaultciclo de vida:
mvn deploy
4. Gol Maven
Cada fase é uma sequência de metas, e cada meta é responsável por uma tarefa específica.
Quando executamos uma fase - todos os objetivos vinculados a essa fase são executados em ordem.
Aqui estão algumas das fases e metas padrão vinculadas a elas:
-
compiler:compile - a metacompile do plugincompiler está ligada à fasecompile
-
compiler:testCompile está ligado à fasetest-compile
-
surefire:test está ligado à fasetest
-
install:install está ligado à faseinstall
-
jar:jarewar:war está ligado à fasepackage
Podemos listar todos os objetivos vinculados a uma fase específica e seus plugins usando o comando:
mvn help:describe -Dcmd=PHASENAME
Por exemplo, para listar todos os objetivos vinculados à fasecompile, podemos executar:
mvn help:describe -Dcmd=compile
E obtenha a saída de amostra:
compile' is a phase corresponding to this plugin:
org.apache.maven.plugins:maven-compiler-plugin:3.1:compile
O que, como mencionado acima, significa que a metacompile do plugincompiler está vinculada à fasecompile.
5. Maven Plugin
A Maven plugin is a group of goals. No entanto, esses objetivos não são necessariamente todos vinculados à mesma fase.
Por exemplo, aqui está uma configuração simples do plugin Maven Failsafe, que é responsável por executar testes de integração:
maven-failsafe-plugin
${maven.failsafe.version}
integration-test
verify
Como podemos ver, o plugin Failsafe tem dois objetivos principais configurados aqui:
-
integration-test: executa testes de integração
-
verify: verifique se todos os testes de integração foram aprovados
Podemos usar o seguinte comando paralist all goals in a specific plugin:
mvn :help
Por exemplo, para listar todas as metas no plug-in à prova de falhas:
mvn failsafe:help
E a saída disso será:
This plugin has 3 goals:
failsafe:help
Display help information on maven-failsafe-plugin.
Call mvn failsafe:help -Ddetail=true -Dgoal= to display parameter
details.
failsafe:integration-test
Run integration tests using Surefire.
failsafe:verify
Verify integration tests ran using Surefire.
To run a specific goal, without executing its entire phase (and the preceding phases) podemos usar o comando:
mvn :
Por exemplo, para executarintegration-test objetivo do plug-in Failsafe, precisamos executar:
mvn failsafe:integration-test
6. Construindo um Projeto Maven
Para construir um projeto Maven, precisamos executar um dos ciclos de vida executando uma de suas fases:
mvn deploy
Isso executará todo o ciclo de vida dedefault. Alternativamente, podemos parar na faseinstall:
mvn install
Mas geralmente usaremos o comando:
mvn clean install
Para limpar o projeto primeiro - executando o ciclo de vidaclean - antes da nova compilação.
Também podemos executar apenas uma meta específica do plug-in:
mvn compiler:compile
Observe que, se tentarmos criar um projeto Maven sem especificar uma fase ou uma meta, isso causará o erro:
[ERROR] No goals have been specified for this build. You must specify a valid lifecycle phase or a goal
7. Conclusão
Neste artigo, discutimos os ciclos de vida de criação do Maven, bem como a relação entre as fases e os objetivos do Maven.