Maven 2 e a criação de projetos

Não me lembro se já falei do Maven 2 para desenvolvimento Java, mas caso já tenha falado me repito: É uma ferramenta incrível para gerenciamento de estrutura de projetos e de dependências.

Quantas vezes você já não se pegou fazendo um control+c e control+v em um projeto, deletando as classes na mão e aí começando outro depois de renomear tudo que tem que renomear? Então, com o maven e um comando você poderia simplesmente através de uma estrutura pré-definida criar um projeto inteiro.

Onde trabalho temos um cliente relativamente chato que define os frameworks que devemos utilizar, a estrutura que o nosso projeto deve ter, em qual lugar a camada de serviço deve se encontrar e tudo mais… Então ao invez de ele mandar uma pasta inteira com o projeto e tudo mais ele simplesmente manda um Archetype do Maven 2 e através de um comando agente gera o projeto de onde quer que esteja.

Bom, instalar o Maven é simplão você só baixa, descompacta e adiciona ele a seu Path.

Criação de um projeto simples a partir de um archetype-quickstart é efetuada utilizando um comando como o seguinte:


mvn archetype:generate -DgroupId=br.eximia -DartifactId=simple -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

Você percebe que os parâmetros são bastante auto-explicativos. Grupo, artefato e o nome do archetype do Maven.

Ao rodar o comando a seguir você só assiste o Maven criando uma pasta com toda a estrutura do seu projeto para você, até com um Hello World inclusive.

Lembrando que o Maven 2 não escolhe IDE e nem nada então uma coisa interessante após criar o seu projeto é destinar o mesmo ao Eclipse. Isto é feito através do comando:


mvn eclipse:eclipse

Aí você simplesmente importa este arquivo no Eclipse como um projeto Maven já existente. Para te ajudar neste projeto é bastante interessante que você instale o plugin m2Eclipse adicionando este repositorio aos seus updates e fazendo um next, next, next básico.

Note pela estrutura do projeto criado pelo Maven que este é um projeto de Console, então para a criação de um projeto web basta alterar o archetype, veja o comando:


mvn archetype:generate -DgroupId=br.eximia -DartifactId=simpleWeb -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

Note que o comando é exatamente o mesmo, eu só alterei o achetype, e aí temos um diretório chamado webapp e tudo mais que um projeto web precisa.

Como não é só porque um projeto é Web que ele tem código Java escrito o archetype não gera para você a pasta src/main/java, então você abre a sua estrutura e cria manualmente dentro de main a pasta java. Logo dentro de main haverão as pastas java, resources e webapp. De quebra eu já crio dentro de /src o diretório test e dentro deste o diretório java para abrigar os testes unitários. Então esta parte ficou com /src/test/java.

Agora um detalhe MUITO importante, da mesma forma que o comando para criar o projeto Console e o projeto web é diferente, o comando para fazer sua aplicação web suportar o Eclipse também é um pouco diferente.

Veja:


mvn eclipse:eclipse -Dwtpversion=2.0

Na verdade o comando é exatamente o mesmo, mas adicionamos um parametro que configura a versão do WTP, que é um plugin do Maven e do Eclipse para a configuração de aplicações web.

Após rodar este comando e importar o projeto no Eclipse verá que entenderá a estrutura do projeto com mais assertividade, verá também que ele gera os arquivos .classpath e .project do Eclipse.

Simples assim, agora é só colocar todas as dependencias do Maven dentro do seu POM que o Eclipse automaticamente baixará para o seu repositório local.

O legal que a partir de agora você já pode criar um servidor no seu eclipse, adicionar o projeto a ele e simplesmente iniciar o projeto, no meu caso o link http://localhost:8080/simpleWeb/, já estava funcionando com um Hello World.

Agora vem o motivador deste post. O site http://www.springfuse.com/, criar através de um archetype maven um projeto inteiro baseado em Spring, Spring WF, Primefaces e JPA, com um ótima estrutura que vale pena dar uma estudada.

É fantástico.

Tags: , , , ,

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Sair / Alterar )

Imagem do Twitter

You are commenting using your Twitter account. Sair / Alterar )

Foto do Facebook

You are commenting using your Facebook account. Sair / Alterar )

Connecting to %s


Seguir

Obtenha todo post novo entregue na sua caixa de entrada.