Maven + Eclipse (Parte 1)
Autor: Leonardo de Amorim Rosa | Publicado: 2015-03-19T06:54:00-07:00
















1 - Overview e Instalação:

Depois do post sobre como funciona o suporte ao Maven no Netbeans, resolvi acrescentar mais ao assunto Maven e falar da sua integração e utilização no nosso querido Eclipse.Vou utilizar a versão Kepler na qual vocês poderão baixar do site eclipse.org.Nesta versão, um plugin chamado m2e (Maven Integration To Eclipse) já vem instalado e pronto para usar. Para saber se a sua versão contem o plugin, basta acessar o menu Help-&gt;About Eclipse e verificar se o ícone do plugin se encontra como na imagem abaixo:




Caso não contenha o plugin, basta efetuar o download utilizando o Eclipse Marketplace. A imagem abaixo mostra o plugin encontrado e pronto para a instalação.




Basta clicar no botão install e esperar o término da instalação e configuração do plugin.

2 - Criação de um simples projeto:

&nbsp;Vamos começar a utilizar de fato o suporte. Criaremos um projeto simples do tipo war (web archive) só para demonstrar a funcionalidade. Para começar, acesse a tela de criação de projetos através do menu File -&gt; New -&gt; Other ou simplesmente usando a combinação de teclas Ctrl + N. Depois de aberta a janela, procure por Maven Project. A imagem abaixo, demonstra a janela com o tipo de projeto selecionado.





Depois de selecionar o tipo de projeto, clique no botão Next e a tela para definir as informações básicas do projeto é exibida. Nesta tela, é possível criar seu projeto baseado em um template pré-fabricado do maven (archetype) ou com um template básico. Escolheremos o básico, marcando a opção Create a simple project. As demais configurações são relativas a localização do projeto que fica a seu critério. Depois de terminar, clique em Next novamente.




A próxima tela solicita a configuração detalhada do seu projeto. Nesta tela, as configurações específicas do seu projeto maven devem ser inseridas. Não esqueça de mudar a opção package para war, pois nosso projeto será do tipo web. Novamente, a imagem abaixo ilustra a janela já com a opção package contendo o item certo selecionado.




Terminada a configuração, clique em Finish e seu projeto será criado.

3 - O arquivo pom.xml:

Segunda a definição no site da Wikipédia, o arquivo pom (Project Object Model) representa o seguinte:
 
"Um Project Object Model (POM), ou em português Modelo de Projeto de 
Objeto, fornece todas as configurações para um único projeto. A 
configuração geral cobre o nome do projeto, seu proprietário e suas 
dependências de outros projetos. Também pode configurar fases 
individuais do processo de construção, que são implementados como plugins.
 Por exemplo, pode configurar o plugin compilador para usar a versão 1.5
 do Java para compilação, ou especificar o empacotamento do projeto 
mesmo que algumas unidades de teste falhem.

Projetos maiores poderiam ser divididos em vários módulos, ou 
sub-projetos, cada um com seu próprio POM. Cada um pode então escrever 
um POM raiz através do qual ele pode compilar todos os módulos com um 
único comando. POMs também podem herdar configuração de outros POMs. 
Todos os POMs herdam do Super POM por padrão. O Super POM fornece 
configuração padrão, tal como os diretórios fonte padrões, plugins 
padrões e assim por diante. "

Ou seja, nesse arquivo são definidas todas as configurações do seu projeto e mesmo configurando através de janelas, essas configurações são refletidas neste arquivo.
No eclipse ao clicar no arquivo, uma janela de configuração é exibida, contendo tudo que pode ser configurado para o projeto. A imagem abaixo mostra a janela.




Desta forma, é possível configurar de forma mais produtiva o necessário para o projeto. Note que o nível de configuração é bem básico e não extende a configuração de plugins que também é muito importante, fazendo com que precisemos configurar isso manualmente, além de outras configurações. 

Bem pessoal, na próxima parte irei abordar questões relativas a configurações de plugins básicos, execução de testes unitários e deploy. Até mais...