Usando Maven Archetype WebApps Module

Olá Pessoal, 

 

O post de hoje é mais uma contribuição. Quero compartilhar com vocês um archetype maven que criamos aqui na empresa e deixamos no github. A seguir resumo o que já vem nele.  Veja também como criar seu archetype.

 

Lets go… 

webapps-module archetype maven 

Esse archetype nasceu com o objetivo de ter um template com a base da maioria dos projetos aqui na empresa e evitar trabalho repetitivo sempre que formos criar um novo projeto. Este é baseado em modules. Sabemos que no catalogs do maven há uma pilha de archetypes, mas alguns que tentamos usar para o nosso cenário aqui sempre estavam com erros muito chatos para resolver, dai vamos fazer o nosso.

Vou fazer uma pequena apresentação desse archetype.

Github 

https://github.com/camilolopes/archetype-webapps-module

O readme.md tem as informações mais pontuais, sem muito detalhe.

A divisão em módulos 

O archetype foi dividido em módulos. Quando você cria vai ter:

  1.  módulo principal: terá o nome da app que você informar na criação;
  2. webapps-core: é o nome default. Esse módulo cuida de todo back-end da aplicação. Aqui tem os testes unitários, persistência com hibernate etc;
  3. webapps-web: é o nome default, mas pode ser alterado e esse cara cuida de todo front-end da aplicação e tem uma dependência do modulo webapps-core.

Note: quando você cria o projeto baseado no archetype, este vem com configurações default. Você precisa customizar de acordo ao seu projeto, portanto:

1. Remova a dependencia de webapps-core no projeto webapps-web. E adicione a dependência webapps-core do seu projeto. Importe o projeto webapps-core para IDE antes;

Qual a vantagem de usar esse archetype? 

  • Todos os módulos já vem prontos para uso, com as configurações feitas para Spring, Hibernate, teste em memória com HSQLDB usando o DBUnit;
  • Spring core configurado;
  • Hibernate configurado;
  • DBunit configurado e usando uma estrutura que desenvolvi para evitar repetição de setup;
  • Há um arquivo chamado its-dataset.xml que é para o dbunit, mas você pode alterar o nome do arquivo e atualizar a classe DBUnitConfiguration.java para o nome correspondente;
  • Jersey configurado. Se você precisar, o arquivo web.xml já está ok. Caso não precise, pode remover;

Criando projeto baseado no archetype 

Passo 1 

Vou assumir que você baixou o archetype no github e seguiu os passos no arquivo readme, ok?

Passo 2 

Após ter instalado o archetype localmente, vá no Eclipse (e considerando que você tem o plugin do maven)

crie um novo projeto maven project.

Passo 3 

Agora vamos procurar pelo archetype. Escolha all catalogs.

archetypewebappsmodulecatalog

Observe que ele apareceu. Escolha e clique em next.

Passo 4 

Preencha com as informações do seu projeto.

archetypeproject

Clique em finish e aguarde o projeto ser criado

Passo 5 

Observe que temos dois módulos:

 archetypemyappsexample

Pronto. Preciso mudar mais alguma coisa?

Sim. Como todo template ele vem vazio, com informações de banco de dados. Os packages usados pelo spring são

o default do archetype, e você precisa informar o seu. Então aqui vai um checklist do que você precisa alterar:

  •  app-context.xml
  •  test-context.xml
  • parent/pom.xml: se você for usar o plugin flyway informe aqui as configurações do banco de dados. Não é requerido fazer essa alteração.

Você pode renomear o diretório (algo como myapps-core) ou manter como está. Os packages do projeto também podem ser renomeados, mas fique atento porque se você mudar o nome do package apenas precisa informar isso no arquivo app-context.xml  e test-context.xml do Spring. Não se assuste, porque a mudança é bem pequena e simples.

Espero que tenham gostado e sugestões são bem vindas. Essa é a primeira versão do archetype e estamos criando outros para cenários bem comuns de projetos Java. Archetype sempre baseado em módulos. Temos que fazer algumas configurações mais pontuais, mas o tempo gasto é menor do que criar tudo manualmente sempre que tem um novo projeto.

Eu te recomendo testar o archetype com as configurações default, ver se atende ao que precisa e depois gerar um novo projeto customizado para o que vai desenvolver.

Abracos. See ya!!

Série AngularJS: Maven archetype com AngularJS e Yeoman

 

Olá Pessoal,

Iai vai desenvolver sua aplicação com AngularJS e Java, mas vai no archetype do maven e não tem nada? Já era, agora tem rs. Acabei de criarum archetype Maven com AngularJS + Yeoman

Lets…

Overview 


O motivo de criar esse archetype é que tenho trabalhado bastante nos últimos 4 meses com AngularJS e back-end Java e tem surgido novos projetos, alguns pequenos, outros médio porte, e ter que fazer setup toda hora é meio chato, heim? Então, para unir o útil ao agradável, resolvi um problema aqui no projeto para todos os projetos que vão trabalhar usando módulos no maven e o back-end será Java com front-end AngularJS, para evitar aquele tempo gasto em setup (mesmo que seja uma hora, já compensa). Eu já fiz outros archetypes e estão no meu github.

O que tem de legal nesse archetype?

Bem, o que tem de legal é o seguinte:

  • Hibernate 4.x já vem configurado com o Spring;
  • Spring Core 3.x;
  • MySql 5.x
  • DBUnit (configurado e pronto pra sair usando);
  • DAO Generic e Service Generic;
  • Jersey 1.x
  • AngularJS 1.0.x
  • Yeoman Tools
  • Twitter Bootstrap
  • Flyway (para db migration – opcional a configuração)

Só isso que vem de legal, rs. No AngularJs eu optei pela versão estável ao invés da Release candidate.

Como usar?

Simples. Para não repetir aqui no blog o que já escrevi no readme.md do projeto, siga os passos da instalação do archetype no seu repositório maven local.

Instalado. E agora?

Vamos criar um projeto e fazer uns ajustes como com qualquer template que vem com informações default e precisam ser ajustadas para atender ao nosso projeto.

Passo 1

Crie um novo projeto maven e escolha a opção All Catalogs e em seguida digite br. para filtrar e aparecer o archetype que acabou de instalar.

archetypeangularjscatalog

Passo 2

Escolha o archetype e preencha com as informações do seu projeto.

Passo 3

Clique em finish.

Passo 4

Seu projeto vai estar quebrado, conforme a imagem a seguir

archetypeangularjsprojectfailure

Passo 5

Abra o pom.xml do projeto webapps-web e remova a dependência webapps-core que tem configurações default do archetype

archetypewebappscoreangularjsremoved

Passo 6

Adicione a dependência do seu projeto

archetypeangularjswebappscore

Passo 7

Seu projeto deve estar assim agora:

archetypeangularjsprojectresult

Dentro de webapps-web/webapps temos a pasta apps e toda a estrutura gerada pelo Yeoman.

Passo 8

Vá na raiz do projeto e execute:

mvn tomcat:run

Aplicação deve subir agora acesse: http://localhost:8080/webapps-web/

Pronto, agora é só usar.

Claro que você vai precisar especificar as informações de banco de dados, estrutura do seu packages, etc. Vou assumir que você já conhece os frameworks(spring, hibernate, jersey etc) que o archetype aborda e sabe alterar, afinal de contas você não vai criar um projeto com Spring se não sabe mexer com o framework, concorda? Para facilitar, deixei comentários nos arquivos .xml, onde você deve alterar.

Download Archetype Maven AngularJS 

https://github.com/camilolopes/archetype-webapps-module-angularjs

Em breve stou subindo outros archetypes para projetos pequenos, aguardem mais alguns dias :D.  Se quiser ser avisado assim que publicar pode me acompanhar no github ou assinar o blog. 

Abracos. Vou ficando por aqui.