Objetivos e fases do Maven

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.