O que faz
O Maven é uma "ferramenta de gerenciamento de compilação", que serve para definir como seus .java
arquivos são compilados .class
, empacotados em .jar
( .war
ou .ear
) arquivos, (pré / pós) processados com ferramentas, gerenciando seu CLASSPATH
e todos os outros tipos de tarefas necessárias para construa seu projeto. É semelhante ao Apache Ant ou Gradle ou Makefiles em C / C ++, mas tenta ser completamente independente de que você não precisa de ferramentas ou scripts adicionais incorporando outras tarefas comuns, como baixar e instalar as bibliotecas necessárias, etc.
Ele também foi projetado em torno do tema "compilar portabilidade", para que você não tenha problemas, pois o mesmo código com o mesmo buildscript funciona em um computador, mas não em outro (esse é um problema conhecido, temos VMs do Windows 98 máquinas, já que não conseguimos compilar alguns de nossos aplicativos Delphi em nenhum outro lugar). Por esse motivo, também é a melhor maneira de trabalhar em um projeto entre pessoas que usam IDEs diferentes, pois é difícil importar scripts Ant gerados por IDE para outros IDEs, mas hoje todos os IDEs compreendem e dão suporte ao Maven ( IntelliJ , Eclipse e NetBeans ) Mesmo que você não goste do Maven, ele acaba sendo o ponto de referência para todas as outras ferramentas de criação modernas.
Por que você deve usá-lo
Há três coisas sobre o Maven que são muito legais.
O Maven (depois de declarar quais você está usando) fará o download de todas as bibliotecas que você usa e as bibliotecas que elas usam automaticamente para você. Isso é muito bom e facilita muito o manuseio de muitas bibliotecas. Isso permite evitar o "inferno das dependências" . É semelhante ao Ivy do Apache Ant .
Ele usa " Convenção sobre configuração " para que, por padrão, você não precise definir as tarefas que deseja executar. Você não precisa escrever uma etapa "compilar", "testar", "empacotar" ou "limpar", como faria no Ant ou no Makefile. Basta colocar os arquivos nos locais em que o Maven espera e eles devem funcionar imediatamente.
O Maven também possui muitos plug-ins agradáveis que você pode instalar para lidar com muitas tarefas de rotina, desde a geração de classes Java a partir de um esquema XSD usando JAXB até a medição da cobertura de teste com o Cobertura . Basta adicioná-los ao seu pom.xml
e eles se integrarão a tudo o que você deseja fazer.
A curva de aprendizado inicial é íngreme, mas (quase) todo desenvolvedor Java profissional usa o Maven ou deseja. Você deve usar o Maven em todos os projetos, embora não se surpreenda se demorar um pouco para se acostumar e que às vezes você deseja fazer as coisas manualmente, pois aprender algo novo às vezes dói. No entanto, quando você realmente se acostumar com o Maven, verá que o gerenciamento de compilação quase não leva tempo.
Como começar
O melhor lugar para começar é " Maven in 5 Minutes ". Isso permitirá que você inicie um projeto pronto para codificar com todos os arquivos e pastas necessários (sim, eu recomendo usar o arquétipo de início rápido, pelo menos no início).
Depois de começar, você precisará entender melhor como a ferramenta deve ser usada. Por esse motivo, " Better Builds with Maven " é o lugar mais completo para entender como ele funciona, no entanto, " Maven: The Complete Reference " está mais atualizado. Leia o primeiro para entender, mas use o segundo para referência.