0

Maven

#Maven
Acácio Martins
Acácio Martins

Apache Maven, ou Maven, é uma ferramenta de automação de compilação utilizada primariamente em projetos Java. Ela é similar à ferramenta Ant, mas é baseada em conceitos e trabalhos diferentes em um modo diferente.

Também é utilizada para construir e gerenciar projetos escritos em C#, Ruby, Scala e outras linguagens.


Ciclo de vida, fases e objetivos


Ciclos de vida possuem estágios (fases) e cada fase, um ou mais objetivos podem ser executados.


O Maven possui nativamente 3 ciclos de vida: clean, site, default.



Ciclos de vida e suas fases


clean — remove todos os arquivos e diretórios criados pelo Maven como parte do build.

site — gera a documentação do projeto, que pode ser publicada ou customizada

default — compreende um conjunto de fases para lidar com o build e deploy do projeto.


1) validate — Valida se todas as informações do projeto estão disponíveis e corretas;


2) compile — Compila o código fonte;


3) test — Roda os testes unitários dentro do framework configurado;


4) package — Empacota o código compilado no formato de distribuição (jar ou war);


5) verify — Realiza checagens para verificar se o pacote é válido;


6) install — Instala o pacote no repositório local para uso como uma dependência em outros projetos localmente;


7) deploy — Instala o pacote final no repositório configurado;


Fases, seus plugins e objetivos



Arquivo de configuração


pom.xml — Project Object Model


Comandos mais conhecidos


  • mvn compile
  • mvn test
  • mvn package
  • mvn clean package
  • mvn install — Este comando executa cada fase do ciclo de vida default em ordem (validate, compile, package, etc.), antes de executar install.


Escopo das dependências


Existem 6 diferentes escopos disponíveis:


  • compile — Dependência necessária para compilação. Significa, por consequência, que é necessária para testes bem como em runtime (quando o projeto está rodando). Escopo default das dependências.


  • test — Dependência necessária somente para testes. Significa que esta dependência está no código de teste. Como o código de teste não é usado para rodar o projeto, esta dependência não é necessária em runtime.


  • runtime — Dependência não necessária durante a compilação, mas para rodar o projeto.


  • provided — Dependência necessária para compilação e runtime, mas não empacotada com o projeto para distribuição. Esta dependência será fornecida pelo usuário. shared library.


  • system — Similar a provided, porém necessita ser indicado explicitamente a localização do arquivo JAR. Pouco utilizada.


  • import — Dependência utilizada para centralizar projetos com vários módulos.
0
12

Comentários (2)

0
V

Vitor Paulon

17/08/2021 21:12

Legal! Gostei muito da explicação, fácil de entender. Obrigado!

0
J

JOSE ALMEIDA

17/08/2021 19:03

Estou aguardando mais detalhes , pois apenas aprendi sobre aspectos gerais do Maven. Quando teremos a continuação deste tema?

Arquiteto de TI na Porto Seguro | Programador Java e JavaScript | Mentor de Dev Jr | Estudante de Cloud Computing | Apaixonado por TI

Brasil