sexta-feira, 19 de fevereiro de 2010

Maven - Introdução

Finalmente um assunto que eu gosto :D. O Apache Maven ou simplemente Maven. Que ele faz? Resposta bonita: "gerencia e automatiza projetos Java".Se fizerem uma rápida busca na net vão ver várias comparações entre o Ant e o Maven, mas para não se confundirem pensem no Ant como um script (similar a um .bat ou um .sh). É comum em ambientes de compilação a utilização dessas duas ferramentas. Em se tratando em definir um ambiente de compilação, o Maven ganha na sua facilidade comparado ao Ant.

O Maven tem sua estrutura definida num arquivo XML, conhecido como Project Object Model (POM). Ele descreve todo o processo de construção de um projeto, suas dependências (bibliotecas que o projeto utiliza), componentes e a sua sequência de construção. O Maven contém tarefas pré-definidas que realizam funções bem conhecidas como compilação e geração de jar.

Uma característica chave do Maven é que ele é construído para trabalhar em rede. O controle de dependência do projeto é transparente ao programador, pois quando iniciado a compilação a ferramenta verifica se há necessidade de baixar um novo jar ou atualizar a sua versão (tudo isso está definido no POM), baixando esse jar de um repositório externo (há vários repositórios de jars free) ou mesmo de um repositório corporativo.

Estrutura de pastas padrão que o Maven aceita (todos os novos projetos que utilizam Maven fazem uso dessa estrutura ... mas ela pode também ser configurada).

 pom.xml           -- Arquivo de configuração do projeto
  src/                  -- pasta raiz
    |
    |---main/           -- tronco principal
    |    |
    |    |---java/      -- código fonte Java
    |    |---resources/   --   recursos (arquivos de configuração, imagens, etc)
    |    |               

    |    |---webapp/    -- aplicação web Java
    |                     
    |---test/           --  tronco de testes unitários e de integração
    |    |---java/      -- código fonte dos testes do JUnit
    |    |---resources/ -- recursos dos testes

Exemplo de projetos que utilizam Maven:
  Glassfish: https://glassfish.dev.java.net/
  JBoss: http://www.jboss.org/
  PDFBox: http://pdfbox.apache.org/
  Velocity: http://velocity.apache.org/
  Axis: http://ws.apache.org/axis/
  CXF: http://cxf.apache.org/
  Felix: http://felix.apache.org/

... o Tomcat tem um projeto começado no Maven ... mas ainda não o adota

Um comentário: