Grails no Ubuntu 6.06

Este blog deixou de ser mantido, mas o autor continua escrevendo aqui. Não deixe de assinar o novo feed!

grails_logo.jpgSeguindo a linha do post em que eu mostrei como instalar e executar os primeiros comandos no JRuby, neste post eu mostrarei como instalar o Grails no Ubuntu e montar uma aplicação de cadastro em poucos minutos! Sim, você nem imagina o quanto pode ser rápido e fácil criar aplicações em Java. Duvida? Então veja por si só.

Baixando os arquivos

Entre no site do Grails e baixe a versão 0.4.1 (ou a última versão estável). Como a aplicação que será desenvolvida utilizará um banco de dados, certifique-se de que sua máquina possua um banco de dados instalado (que seja suportado pelo Hibernate) e o driver JDBC correspondente. Aqui, eu utilizei o MySQL.

Depois que o download do Grails terminar, descompacte-o em um local qualquer.

Instalando o Grails

Precisamos definir a variável de ambiente GRAILS_HOME. Para isso, abra o arquivo /etc/environment e faça a seguinte alteração:

  1.  
  2. GRAILS_HOME="local_onde_o_grails_foi_extraido"
  3. PATH="$GRAILS_HOME/bin:…"
  4.  

Crie também um link simbólico para o script do Grails na pasta /usr/bin:

  1.  
  2. #!/bin/sh
  3.  
  4. DIRNAME=`dirname "$0"`
  5. . "$DIRNAME/startGrails"
  6.  
  7. startGrails org.codehaus.groovy.grails.cli.GrailsScriptRunner "$@"
  8.  

… e deve ser modificado para:

  1.  
  2. #!/bin/sh
  3.  
  4. . "$GRAILS_HOME/bin/startGrails"
  5.  
  6. startGrails org.codehaus.groovy.grails.cli.GrailsScriptRunner "$@"
  7.  

É isso! O Grails está instalado. Tente rodar o comando grails help no teminal para testar se está tudo bem. Não se incomode se demorar um pouco para o comando executar.

Criando a aplicação

Para ter uma idéia de como o Grails funciona, iremos criar uma aplicação bem simples, que servirá para fornecer um cadastro de pessoas. Para cada pessoa, o sistema armazenará o nome, a idade e o e-mail.

O banco de dados que eu utilizei aqui foi o MySQL. Então, criei um schema no MySQL chamado grails_test:

  1.  
  2. class DevelopmentDataSource {
  3.    boolean pooling = true
  4.    String dbCreate = "create-drop" // one of ‘create’, ‘create-drop’, ‘update’
  5.    String url = "jdbc:mysql://localhost:3306/grails_test"
  6.    String driverName = "com.mysql.jdbc.Driver"
  7.    String username = "user"
  8.    String password = "password"
  9. }
  10.  

Como você já deve imaginar, o Grails precisa do driver JDBC para a aplicação funcionar. Então, copie o JAR correspondente ao driver no diretório lib, situado no diretório-raíz da aplicação.

Criando o cadastro

Primeiramente vamos definir a classe Person, que fará a interface entre o objeto Person e a tabela no banco de dados:

  1.  
  2. class Person{
  3.    String name
  4.    int age
  5.    String email
  6. }
  7.  

Vamos gerar agora os arquivos que implementam o cadastro. No terminal, digite o comando:

  1.  
  2. class PersonController {
  3.    def scaffold = Person
  4. }
  5.  

… outra forma de se obter o mesmo resultado:

  1.  
  2. class PersonController {
  3.    def scaffold = true // controller de Person, então faz scaffolding de Person!
  4. }
  5.  

Tudo deverá funcionar como esperado.

Faça o teste! Rode a aplicação… preste atenção também no terminal onde o comando grails run-app foi executado. Veja o Grails criando as Views on the fly!

Conclusão

Gaste um tempo observando o código gerado pelo Grails. Você perceberá que ele utiliza alguns frameworks bastante conhecidos pelos desenvolvedores Java, como o Hibernate e o Spring.

Não se engane: o Grails não é um framework isolado. Os scripts Groovy são interoperáveis com qualquer código Java, fator este que pode determinar o uso do Groovy e do Grails na criação de aplicações sérias.
Curioso para saber mais sobre o Grails? Visite a página do projeto e veja o que o Grails pode fazer por você. Quem sabe o Grails não seja útil no seu próximo projeto…

UPDATE

Para uma introdução à linguagem Groovy, acesse este post. Nele, mostro algumas características interessantes da linguagem, além de mostrar também como implementar testes unitários.

Tags: , , , , ,