Maven de dependências ao build.

André Chaves
Code Maestro
Published in
3 min readApr 28, 2016

Quando começamos um projeto Java, é comum que não saibamos qual proporção ele tomará com o tempo. Ao precisar de uma biblioteca ou um framework apenas importamos no classpath, dentro de uma pasta lib e tudo funciona normalmente.

Entretanto, conforme nosso projeto cresce, precisamos gerenciar cada pacote necessário, cada biblioteca e também as dependências!

Dependendo do projeto, ainda precisamos nos preocupar com os testes de unidade e de integração, com o build e deploy! Fazer tudo isso começa a se tornar extremamente trabalhoso.

O que é Maven

Para solucionar este problema a Apache desenvolveu o Maven, uma ferramenta de automação de compilação que, além de gerênciar dependências, nos permite gerenciar todo o processo de build do projeto com relatórios e documentação!

Configurando as dependências

Quando utilizamos o Maven, configuramos um arquivo xml chamado POM (Project Object Model), que fornece todas as configurações necessárias para o projeto em um único arquivo.

Nesse arquivo POM.xml podemos definir quais são as dependencias (Dependencies). Portanto, se quisermos usar um framework para mapeamento de objeto-relacional, como o Hibernate, basta irmos no nosso POM.xml e adicionar uma dependencia (Dependency) dentro das nossas Dependecies especificando o groupId, artifactId e a version:

E o maven baixará e gerenciará tudo que é necessário para nosso Hibernate funcionar!

Mas, e para descobrir o groupId, artifactId e version de cada dependência que quisermos adicionar?

Para isso, podemos utilizar o site mvnrepository.com! Lá podemos procurar pela dependência que quisermos e encontraremos todas as versões disponíveis.

No próprio repositório já é disponibilizado o código pronto com a dependency já configurada com o groupId, artifactId e a version!

Como fazer o build

Agora, temos todas nossas dependências configuradas e gerenciadas pelo Maven! Perfeito, mas e para buildar? Usamos o Maven também!

O processo de build segue algumas fases (Phases) desde validar nosso projeto (validate), compilar (compile), rodar os testes de unidade (test), empacotar (package), rodas os testes de integração (integration-test), verificar (verify), instalar (install) e até deployar (deploy)!

Portanto, ao rodar no nosso terminal, ou em alguma IDE, o processo de deploy do maven:

$ mvn deploy

Ele passará por cada uma das fases até deployar nosso projeto. Se quisermos apenas rodar os testes de unidade:

$ mvn test

Passaremos por validate e compile até rodar os testes. Ou seja, cada fase que chamamos rodará as fases que antecedem ela.

Incrementando

Além de conseguir executar uma fase específica do processo de build, podemos também configurar fases especificas no nosso POM.xml e adicionar plugins que realizam funcionalidades. Como por exemplo o PMD, que analisa nosso código e gera relatórios.

Com isso, podemos ter uma ideia do quão ampla podem ser as funcionalidades do Maven. Podemos gerenciar toda a estrutura de dependências do projeto, gerar relatórios, rodar testes, buildar e até deployar!

A utilização de uma ferramenta de automação de compilação pode aumentar muito o rendimento de uma equipe inteira, por isso é importante que sempre procuremos conhecer e implementar essas ferramentas no nosso dia-a-dia =)

Uma lista completa de plugins e tudo sobre Maven pode ser encontrado na pagina maven.apache.org (disponivel em ingles)

--

--

André Chaves
Code Maestro

Empreendedor, CTO, desenvolvedor e apaixonado por automação.