Apache Maven Introdução, conceitos e prática. Rafael Tavares - IFPB
O que é Maven ? “Apache Maven é um software de gestão de projeto , baseado no conceito de um projeto modelo de objeto (POM). Pode gerir a construção, elaboração de relatórios do projeto e documentação”. [ Apache Maven Project, 2013 ]
Sobre Maven O Maven gerencia todo o ciclo de vida de um projeto, desde a sua criação até sua implantação, ele cria uma estrutura padrão para o projeto, isso permite que um Projeto Maven seja independente de IDE. Mantém todas as informações do projeto em um único lugar , um arquivo XML chamado de POM (Project Object Model ), que é o arquivo de configuração do projeto onde são definidas todas as suas características . O Maven pode ser usado em linguagens como Java, C#, Ruby , Scala e outras. Mantido pela Apache Software Foundation, disponível para download em [https :// maven.apache.org/download.cgi].
Principais Características Independente de IDE Gerencia de dependências Uso de Plugins Automatização Facilidade de configuração Consistência Construções Multi-Módulo
POM - Project Object Model No POM são definidas informações básicas do projeto , como : Nome e versão ; Desenvolvedores; Repositórios de código fonte ; Dependências em bibliotecas externas ; Plugins do próprio Maven que são utilizados para facilitar a vida dos desenvolvedores;
POM - Project Object Model Um projeto é identificado no POM.xml através de: groupID : Identificador de projeto de grupos arbitrários. artfiactID : Nome de projeto arbitrário. version : Versão do Projeto . packaging : Tipo de pacote que será gerado, pode ser j ar (padrão), war ou pom .
POM - Project Object Model
Ciclo de Vida Uma construção Maven seguem um ciclo de vida: Validate – verifica se a sua configuração está correta; C ompile – compila o código fonte do projeto ; T est – executa os testes unitários do projeto; Package – empacota o projeto conforme foi definido na sua descrição ; Integration-test – executa os testes de integração; V erify – verifica a qualidade da aplicação e do código (normalmente com relatórios de análise de código, resultados de testes de integração e carga); Install – instala o artefato gerado no repositório local do Maven ; D eploy – envia o artefato gerado para um servidor remoto para que ela seja implantada;
Principais Comandos mvn compile : compila o código fonte do projeto. mvn test : executa os testes unitários do projeto. mvn package : empacota o projeto conforme foi definido na sua descrição. mvn install : instala o artefato gerado no repositório local do Maven . mvn deploy : envia o artefato gerado para um servidor remoto para que ela seja implantada.
Gerenciamento de dependências O gerenciamento de dependências é um dos melhores recursos presentes no Maven , as dependências nada mais são do que as bibliotecas externas necessárias no projeto, muitas vezes nossas aplicações precisam de bibliotecas que fornecem serviços especificos para a aplicação, como API JDBC, Log4J, JDOM e etc. Sem usar o Maven o desenvolvedor deve adicionar e manter atualizada essas bibliotecas manualmente, além de ser obrigado replicar isso em todas as maquinas que a aplicação for executada.
Gerenciamento de dependências Com o Maven maior parte desse processo torna-se automático. As dependencias só precisam ser descritas no POM.xml seguindo a seguinte estrutura:
Repositórios Quando uma dependência é adicionada ao POM.xml ela é baixada de forma automática e adicionada as bibliotecas do projeto, mas como isso é feito? De onde essas bibliotecas são baixadas? Para armazenar essas bibliotecas o Maven utiliza repositórios . Um repositório para o Maven é uma estrutura de diretórios e arquivos na qual ele armazena e busca por todas as dependências dos projetos que ele gerencia . Quando uma dependência é declarada em um projeto, o Maven procura essa dependência no seu repositório local. Se não estiver no repositório local, há uma busca nos repositórios remotos (na internet) que vem configurados automaticamente na ferramenta. Repositórios Locais normalmente são mantidos no diretório User /.m2/ repository
Repositórios
Repositórios Mas e se a biblioteca que eu preciso não estiver no meu repositório local ou em nenhum repositório online? Essa é uma questão comum de ocorrer, as vezes o seu projeto depende de uma biblioteca ou framework que não está disponível, porque ela não é open- source , outras vezes porque ninguém colocou ela em nenhum repositório .
Repositórios Para adicionar ela em nosso projeto, temos que fazer com que ela esteja disponível no repositório local. Isso é feito através dos seguintes comandos :
Referências Aula do Prof. Ricardo Job – IFPB, Campus Cajazeiras (2015) http:// diogodmoreira.com/blog/2014/02/04/tutorial-maven-intro.html http:// imasters.com.br/artigo/12336/java/dez-motivos-para-voce-usar-maven https:// maven.apache.org/index.html https:// pt.wikipedia.org/wiki/Apache_Maven