Apache Maven
Olá. Percebi que muitas pessoas chegaram ao post sobre o Apache Archiva procurando por Apache Maven. Sendo assim decidi fazer um post sobre o Maven para ajudar aqueles que desconhecem esse poderoso framework.
Bom o Maven é mais conhecido por gerenciar dependências. Com o Maven não é mais necessário acessar vários sites baixar uma série de bibliotecas adicioná-las ao projeto e quando tudo não vai bem procurar bibliotecas que você se esqueceu. Além disso, se for trabalhar em equipe, você enfrentará outros problemas como ter que colocar sempre uma serie de jars junto ao projeto quanto for passar o código para outros desenvolvedores. Não raramente acaba ficando um ou ouro jar para traz e vira um inferno procurar os jars faltantes.
Por outro lado se você utiliza Subversion ou GIT (o que eu espero que você esteja fazendo) você reduzirá bastante o problema com bibliotecas. Entretanto tem-se um outro problema depois de muitos commits de jars junto com o projeto seu repositório vai ficando mais e mais inchado. Enfim você ocupará espaço desnecessário no repositório.
O Maven resolve quase que completamente esse problema, na medida em que com ele você passará a commitar apenas código. Bom o Maven procura as dependências declaradas em um arquivo XML chamado POM (Project Object Model), baixa todas elas e armazena-as em um repositório local localizado no diretório .m2 dentro do diretório do usuário, dessa forma todo projeto que utilize uma dependência em comum irá compartilha-la a partir do diretório .m2. Desse modo inclusive o tráfego na rede é reduzido na medida em que não é necessário ficar baixando sempre a mesma dependência. Ainda assim é interessante utilizar uma ferramenta como o Nexus para fazer cache dessas dependência na rede interna da empresa minimizando o tráfego.
Além de gerenciar dependências o Maven possibilita dentre outras coisas montar uma arquitetura básica para vários tipos de aplicação com apenas alguns comandos. Espero que este post seja um pontapé inicial para que você comece a utilizar o Apache Maven. Num post posterior irei abordar a estrutura do POM e talvez o próprio Nexus.

Tags: , , , , , , ,