Do zero ao deploy com o vraptor-console

Um ponto importante na escolha de um framework web é as ferramentas de suporte ao desenvolvimento que o projeto disponibiliza ao seus usuários. Essas ferramentas facilitam o dia a dia do desenvolvedor, agilizando as tarefas comuns que se repetem entre projetos distintos.

O VRaptor é conhecido pela sua flexibilidade, curva de aprendizado, entre outras qualidades. Com o intuito de facilitar o desenvolvimento de aplicações com ele, criamos o vraptor-console, uma ferramenta de linha de comando que permite automatizar tarefas comuns, da criação de um novo projeto ao deploy da aplicação.

Instalação

Baixe o vraptor-console  e extraia o tar.gz em seu computador. Depois, coloque o diretório gerado no path:

$ tar xzf vraptor-console-0.7.0-SNAPSHOT.tar.gz -C ~/programas/
$ export PATH=$PATH:~/programas/vraptor-console/

Para conferir se está tudo certo, execute o vraptor-console no terminal e confira se funciona:

$ vraptor-console

A primeira execução pode demorar um pouco, pois o vraptor-console baixará o jetty, que servirá de base para subir a nossa aplicação. Se tudo ocorrer corretamente, o vraptor-console estará esperando comandos na entrada padrão. Execute o comando exit, ou digite ctrl+c para sair.

Criando sua aplicação

Para criar uma nova aplicação, execute no terminal: vraptor-console new br.com.caelum loja. Esse comando irá criar uma nova aplicação no diretório loja/ dentro da sua pasta atual.

Repare que o vraptor-console já criou a estrutura de diretórios de uma aplicação web e adicionou um controller simples do VRaptor, com um método que poderá ser acessado na home da nossa loja. Também foi criado um arquivo pom.xml simples, com as dependências básicas e algumas configurações necessárias. Esse diretório já pode ser importado para o Eclipse (ctrl+3 “Import (Existing Projects Into Workspace)”).

Usando o vraptor-console em desenvolvimento

Apesar da criação do projeto ser um passo bem simples, o foco do vraptor-console será o desenvolvimento no dia a dia. Entre no diretório de sua aplicação e inicie o vraptor-console:

$ cd loja
$ vraptor-console

Para subir seu projeto, execute o comando “run” que compila e inicia a aplicação na porta 8080. Ao final, acesse http://localhost:8080/ e confira a aplicação no ar. Qualquer alteração em jsp’s é carregada automaticamente pelo jetty: experimente modificar a mensagem na home.jsp e recarregar a página no navegador. As alterações em suas classes java necessitam que o servidor web seja reiniciado, para isso, execute o comando “restart”.

Você pode se conectar em debug pelo eclipse. Crie uma nova “Debug Configuration”. Vá em Run > Debug Configurations > Duplo clique em “Remote Java Application” e troque a configuração da parta 8000 para 1044. Execute essa nova configuração, mude para a perspectiva de debug e repare que o eclipse está conectado à JVM do vraptor-console. Experimente criar um break point no seu controller e recarregar a página para usar as funcionalidades de debug do eclipse. Repare que o hot code swapping funciona como em debug de aplicações normais, de forma que o corpo dos métodos podem ser modificados durante a execução e você não precisa reiniciar o servidor.

O vraptor-console também possui uris para executar algumas tarefas fora do ambiente de produção. Acessando http://localhost:8080/vraptor/restart, você pode reiniciar o servidor e em http://localhost:8080/vraptor/tests/unit você executa os testes de unidade e confere os resultados. Essas uris são úteis para executar tais tarefas remotamente, como por um servidor de integração contínua ou em ambiente de homologação, por exemplo.

Deploy no heroku

Para fazer um deploy no heroku, você deve usar o git para gerenciar as versões do seu projeto. Portanto, dentro do diretório da nossa aplicação, inicie o repositório e faça o primeiro commit:

$ git init .
$ git add .
$ git commit -m "primeiro commit"

Abra sua conta no heroku se você ainda não tem e instale o heroku toolbelt para acessar o heroku pela linha de comando.

Agora, podemos criar a aplicação no heroku:

$ heroku login
$ heroku create nome-da-app

Para fazer o deploy no heroku é preciso usar um buildpack customizado para o vraptor-console. Para configurar sua aplicação para usar esse buildpack faça:

$ heroku plugins:install https://github.com/heroku/heroku-buildpacks
$ heroku buildpacks:set csokol/vraptor-buildpack -a nome-da-app

Agora, vamos fazer o deploy da nossa aplicação. Um simples push no repositório do heroku irá desencadear o build da nossa aplicação e subir o servidor:

$ git push heroku master

Pronto! Alguns instantes após o final do push, você poderá acessar sua aplicação em http://<nome-da-app>.herokuapp.com/

O vraptor-console foi criado com a intenção de ajudar o desenvolvedor no dia-a-dia, enquanto modifica seu código e testa sua aplicação. Em conjunto com a nova versão do JRebel, o vraptor-console permite minimizar o tempo de espera entre testes manuais durante o desenvolvimento. Recentemente também foi feito o release do forge-vraptor-plugin que pode ser facilmente extendido para suportar as ações de desenvolvimento do vraptor-console.

18 Comentários

  1. Danilo Miranda 11/06/2013 at 11:29 #

    Mais uma vez a Caelum me dando motivos para ter orgulho de ser brasileiro.
    Parabéns!! 🙂

  2. Lucas Moreira 11/06/2013 at 12:26 #

    ja uso o vraptor-console faz tempo e recomendo para todos que usam VRaptor!

  3. Mário 12/06/2013 at 10:30 #

    Quando um framework tem console que monta a estrutura do projeto pra mim e deploya no heroku. Tem o meu respeito! VRaptor cada dia melhor!

    Parabéns

  4. Robson Leite 13/06/2013 at 22:47 #

    Praticidade do mundo Rails em aplicações do “Jeitão” Java… Parabéns… Melhorei mto nossa eficiência com o VRaptor… agora então… Parabéns a Caelum….

  5. Ramon Pires 14/06/2013 at 09:45 #

    Merece meu respeito tecnológico.

  6. Tiago 18/06/2013 at 13:12 #

    Mas e as outras coisas comuns em aplicações VRaptor como criar um controller, uma action (e o jsp correspondente se houver), um component, um interceptor, é possível fazer através dessa ferramenta?

  7. Lucas Caixeta 18/06/2013 at 14:17 #

    Realmente, muito interessante.
    Parabéns a todos!!!

    O lamentável, no entanto, é as empresas atualmente não buscarem novos métodos para desenvolvimento… digo, a maioria se contenta com o que “sempre foi usado” e não inova, não busca alternativas que se tornem primordiais.

    No mais, é sempre bom aprender algo novo.

  8. Francisco Sokol 18/06/2013 at 18:59 #

    Obrigado pelos elogios pessoal! Espero que vocês usem e aproveitem!

    Ressaltando que qualquer problema/bug que encontrarem pode ser enviado no sistema de issues do github: https://github.com/caelum/vraptor-console/issues

    Além disso, ideias novas e pedidos são muito bem vindos e também podem ser enviados por lá!

  9. Francisco Sokol 19/06/2013 at 11:45 #

    Oi Tiago,

    Esse não foi o nosso foco inicialmente no vraptor-console. Mas se no futuro essa feature muito pedida pelo pessoal, podemos implementar!

    O vraptor-scaffold (https://github.com/caelum/vraptor-scaffold) e o forge-vraptor-plugin (https://github.com/rsaraiva/forge-vraptor-plugin) já são capazes de fazer uma parte da geração de código para aplicações que utilizam o VRaptor.

  10. Alex 03/07/2013 at 11:25 #

    Alguém fez o tutorial do post funcionar? na parte da heroku não funciona, é como se o jetty e aplicação não subisse.

  11. Francisco Sokol 05/07/2013 at 00:24 #

    Oi Alex,

    Acabei de testar novamente e deu certo. O que aparece na saída do seu terminal? Qual é a sáida quando você executa “heroku logs”?

    Coloque no gist.github.com ou similar pra gente ver!

    abraço,

  12. RodrigoDutra 19/01/2014 at 15:27 #

    Francisco, nao estou conseguindo colocar o vraptor-console para funcionar no Ubuntu… segui seu tutorial mais nao roda … Poderia me dar mais alguma dica? Grato.

  13. Francisco Sokol 19/01/2014 at 18:49 #

    Oi Rodrigo! Qual erro está acontecendo?

  14. Luiz Henrique Leme 03/03/2015 at 09:47 #

    Sokol,

    Sei que o post é um pouco antigo, mas duas perguntas.

    1) O vraptor-console é compatível com Windows?

    2) Se for compatível, tem algum tutorial de instalação pois segui este do post e não está funcionando.

    Agradeço pela atenção.

    Luiz Leme

  15. Chico Sokol 03/03/2015 at 18:52 #

    Oi Luiz!

    Infelizmente não é possível usar no windows mesmo por conta de alguns bash scripts que a gente usa (talvez seja possível usando aquele cygwin, mas nunca tentei).

    De toda forma, o vraptor-console infelizmente não funciona com o VRaptor 4. Uma alternativa legal é o vraptor-forge: https://github.com/asouza/vraptor-forge

    Ainda está bem no começo mas é uma boa considerar se estiver criando um projeto novo.

  16. Thiago 08/03/2015 at 23:07 #

    Sei que o post é antigo, mas não estou conseguindo completar o push, diz que foi rejeitado por falha em referências.

    Fiz um gist: https://gist.github.com/thgbarros/11a4281a98c6af4bddec

Deixe uma resposta