Maven 🧰
O Maven é uma ferramenta de automação de compilação utilizada principalmente em projetos Java. Foi criada pela Apache Software Foundation no ano de 2002 e é uma das ferramentas mais utilizadas para construir projetos Java. O Maven permite que você compile, teste, empacote, instale e implante projetos. Ele também fornece maneiras de gerenciar dependências e configurações de projeto.
Principais conceitos 📚
Para automatizar a construção de um projeto, o Maven utiliza um conceito de ciclo de vida. Um ciclo de vida é uma sequência de fases que são executadas em ordem a fim de construir um projeto. Cada fase é responsável pela execução de uma ou mais tarefas específica.
O principais ciclos de vida com suas respectivas fases no Maven são: default, clean e site.
- O ciclo de vida default compreende as fases: validate, compile, test, package, verify, install e deploy.
- Já o ciclo de vida clean inclui as fases pre-clean, clean e post-clean.
- Finalmente, o ciclo de vida site inclui as fases pre-site, site e post-site.
A Figura 1 a seguir mostra um mapa conceitual sobre os ciclos de vidas e as fases do Maven.
Figura 1 - Mapa conceitual sobre os ciclos de vidas e as fases do Maven
O ciclo de default é o mais utilizado e é o que será abordado neste material.
- validade: valida o projeto, como por exemplo, verificar se os recursos necessários estão disponíveis.
- compile: compila o código fonte do projeto.
- test: executa os testes unitários do projeto.
- package: empacota o código compilado em um formato específico, como por exemplo, um JAR (Java Archive) ou WAR (Web Archive).
- verify: executa uma análise de qualidade no projeto, como por exemplo, inspeções de código, teste de integração e cobertura.
- install: instala o pacote no repositório local, para que ele possa ser utilizado como dependência em outros projetos.
- deploy: implanta o projeto.
Cada fase pode utilizar um ou mais plugins. Um plugin do Maven adiciona funcionalidades na fase em que é executado. Por exemplo, o plugin maven-pmd-plugin
adiciona a funcionalidade de análise estática de código na fase verify
do ciclo de vida default
Um plugin pode ter um conjunto de goals. Um goal é uma tarefa específica que um plugin executa. Por exemplo, o plugin maven-pmd-plugin
tem o goal pmd
que executa a análise estática de código. Porém, esse mesmo plugin possui outros goals como check
e cpd
. Todos esses goals podem ser executados na fase verify
do ciclo de vida default.
Configuração 🖥️
Para configurar o Maven em um projeto, é necessário criar um arquivo pom.xml
(Projeto Object Model) na raiz do projeto. O arquivo pom.xml
é um arquivo de configuração do Maven que contém informações sobre o projeto, como por exemplo, o nome do projeto, a versão, a descrição, as dependências, os plugins, entre outras informações.
CC BY 4.0 DEED