Criando um projeto Maven (usando Archetype)

Bem, já passou da hora de começar a escrever algo aqui. Como disse no primeiro post estou montando toda a estrutura de uma série de projetos JEE e, o Maven é umas das principais ferramentas de apoio para que tudo funcione de maneira mais automatizada e simples para os desenvolvedores.

Não tenho a pretensão de explicar detalhadamente o funcionamento do Maven e sim fazer um guia básico para quem nunca ouviu falar e vai começar um projeto novo. Neste escopo, ele será utilizado para criar o esqueleto do projeto usando Archetype e gerenciar suas dependências, deixando o projeto mais enxuto. Além disso, ele pode ser utilizado para gerar um portal do projeto.

Voltando para a época em que comecei a programar em Java, o Framework padrão para desenvolvimento web era o Struts; já existia o WebWork, mas ainda não era muito aceito pelas empresas. Nessa época, iniciávamos os projetos a partir de um blank_project, que era a estrutura de um projeto Struts já configurado e com todas as dependências. Isso resolvia o problema, mas de uma maneira um tanto quanto amadora.

Além disso, os projetos tendem a ficar desorganizados com o passar do tempo, levando mais de um dia para fazer seu set-up em uma nova máquina, ficando refém de algum desenvolvedor que tenha experiência no projeto e que se lembre do último set-up (que provavelmente foi feito há mais de um ano). Usar corretamente o Maven é o primeiro passo para se evitar isso (em outro post eu falarei sobre integração contínua). Lembrando o que o CV disse no último encontro ágil, se algo é chato, faça-o sempre, assim ele não vai se transformar naquele monstro!

Voltando ao assunto principal, podemos criar um novo projeto através de um Archetype. Considerando que você já instalou e configurou o Maven em sua máquina para criar um projeto web simples basta entrar na pasta em que você deseja criar o projeto e executar o seguinte comando:

mvn archetype:generate -DinteractiveMode=n -DarchetypeArtifactId=maven-archetype-webapp -Dversion=0.0.1-SNAPSHOT -DgroupId=com.wordpress.felipefirmo -DartifactId=tutorialMaven

Onde archetypeArtifactId é o Archetype que você deseja utilizar, groupId é o código do grupo ao qual o projeto pertence, normalmente utilizamos a estrutura de packages (ex.: br.com.empresa) artifactId é o código do projeto, normalmente seu nome e version é a versão do projeto.

Pronto, o Maven fará o download do Archetype, suas dependências e criar o projeto configurado pra você!

Com isso, finalizamos a primeira parte do escopo proposto, que era criar o esqueleto do projeto. Para não ficar muito extenso vou finalizar este post por aqui e, assim que escrever os tutoriais propriamente ditos, posto a referência neste post para facilitar.