Last updated by 5 years ago

Page: Quick Start Portuguese, Version:1

English Version

Início Rápido

As informações que seguem tornam simples iniciar um projeto Grails. Também está disponível um screencast com os passos para criar uma pequena aplicação.

Criando um projeto Grails

Uma vez instalado (+) o Grails, você poderá utilizar uma função interna para criar novos projetos:

grails create-app

A função irá solicitar o nome do seu projeto e então irá criar a estrutura do projeto como exibido abaixo:

%PROJECT_HOME%
    + grails-app
       + conf                 ---> localização de artefatos de configuração, como fontes de dados
           + hibernate              ---> opcional; configurações do hibernate
           + spring                 ---> opcional; configurações do spring
       + controllers          ---> localização de artefatos de controladores
       + domain               ---> localização das classes de domínio
       + i18n                 ---> localização dos pacotes de mensagens para i18n
       + services             ---> localização dos serviços
       + taglib               ---> localização das tag libraries
       + util                 ---> localização das classes utilitárias especiais (ex., codecs, etc.)
       + views                ---> localização das visões
           + layouts              ---> localização dos layouts
   + lib
   + scripts                  ---> scripts
   + src
       + groovy               ---> opcional; localização para arquivos fonte em Groovy
                                   (para tipos outros que não estão em grails-app/*)
       + java                 ---> opcional; localização para arquivos fontes em Java
   + test                     ---> classes de testes geradas
   + web-app
       + WEB-INF

Configurando uma Fonte de Dados (Opcional)

A função "create-app", criou um artefato de fonte de dados do Grails para você no diretório "<..>/grails-app/conf", ele é chamado DataSource.groovy e possuí closures para cada um dos ambientes padrão: Development, TestData e Production (respectivamente: Desenvolvimento, Teste de Dados e Produção). Todos os exemplos que seguem funcionam no ambiente _development_. Para maiores informações sobre ambientes, veja Configuration#environments.

Por padrão, cada fonte de dados é configurada com um banco em memória chamado HSQLDB (ótimo para testes, mas provavelmente não muito útil para ambientes reais), portanto este passo é opcional:

dataSource {
  pooled = false
  driverClassName = "org.hsqldb.jdbcDriver"
  username = "sa"
  password = ""
}
// configuraçõs específicas do ambiente
environments {
  development {
    dataSource {
      dbCreate = "create-drop" // one of 'create', 'create-drop','update'
      url = "jdbc:hsqldb:mem:devDB"
    }
  }
  test {
    dataSource {
      dbCreate = "update"
      url = "jdbc:hsqldb:mem:testDb"
    }
  }
  production {
    dataSource {
      dbCreate = "update"
      url = "jdbc:hsqldb:file:prodDb;shutdown=true"
    }
  }
}
A configuração de uma fonte de dados é simplesmente uma questão de alterar os valores para o banco de dados desejado, além de colocar jar do driver no diretório "<..>/lib". As propriedades definidas no nó dataSource são herdadas pelos filhos.

Criando uma Classe de Domínio

Tenha certeza que você está no diretório raiz do seu projeto (por exemplo "meu-projeto") digitando

cd meu-projeto

grails create-domain-class

A função irá solicitar que você informe o nome da classe de domínio. Uma classe de domínio é um artefato persistente, e por padrão, todas as suas propriedades são persistidas no banco de dados (Vá para a seção GORM (Grails Object Relational Mapping) para mais informações):

class Livro {
    String titulo
    String autor
}

Neste ponto você pode querer criar alguns dados de teste. Uma forma fácil de fazer isso é criando e salvando os objetos de domínio na closure "init" da classe bootstrap da aplicação Grails, localizada em "<..>/grails-app/conf/BootStrap.groovy" (Obs.: na versão 0.5.6, e talves em outras, parece que este arquivo foi alterado para ApplicationBootStrap.groovy, com a declaração da classe também alterada para "class ApplicationBootStrap"):

class BootStrap {

def init = { servletContext -> // Cria alguns dados de teste new Livro(autor:"Stephen King",titulo:"The Shining").save() new Livro(autor:"James Patterson",titulo:"Along Came a Spider").save() } def destroy = { } }

(Observe que você pode criar e salvar os objetos aqui da mesma forma que faria nos controladores ou outras partes da aplicação em Grails; veja Grails Object Relational Mapping (GORM) para maiores informações sobre objetos de domínio.)

Crie um controlador

Os Controladores são centrais para as aplicações em Grails, eles tratam as requisições web e URLs do mapa de requisição para uma classe de controlador em uma closure junto à classe.

Execute o comando "grails create-controller" e digite o nome do controlador. Em nosso exemplo digitamos "Livro", o que gerou um controldor chamado {{grails-app/controllers/LivroController.groovy}}. Abra este controlador e altere-o como mostrado a seguir para que seja utilizado o Scaffolding dinâmico, o qual irá gerar dinamicamento sua aplicação em tempo de execução:

class LivroController {
     def scaffold = Livro
}
Certifique-se que você digitou "Livro" com a letra B maiúscula.

Nota: Você deverá remover ou comentar o trecho "def index = { } " do arquivo gerado para que o scaffolding funcione.

Alternativamente, você pode utilizar o comando "grails generate-all", o qual irá criar todo o scaffolding ("modelo") para você, e deixará o controlador gerado em paz, ao invés de sobreescrevê-lo com o scaffolding padrão. Isto pode ser valioso no aprendizado.

Iniciando o Grails

Para iniciar sua aplicação com Grails, execute o seguinte comando:

grails run-app
Isto irá iniciar uma instância de um servidor Jetty rodando na porta 8080. Para iniciar o serviço em uma porta diferente, como por exempro 9090, utilize o comando {{grails -Dserver.port=9090 run-app}}. Para acessar a lista de livros, abra um navegador e digite:
http://localhost:8080/meu-projeto/livro/list
Ou, sendo a closure "list" a ação padrão para o LivroController, você pode digitar:
http://localhost:8080/meu-projeto/livro
{tip:title=Deixe o Grails mais Veloz} O Grails pode parecer muito lento no modo de desenvolvimento, com páginas levando mais de um segundo para serem carregadas. Se isto se aplica à você, tente aumentar o tamanho máximo de memória heap através da variável de ambiente {{JAVA_OPTS}}, definindo seu valor para algo assim: '-Xmx512m' - isto irá definir o tamanho máximo de memória heap para 512Mb ao rodar o Grails, o que deve resultar em uma notável melhora no tempo de resposta. {tip}