The Grails console
Grails ships with an extended version of the regular Groovy console. To run the console simply type the following command from the root of a Grails project:
The console is a Swing GUI interface that lets you type arbitrary commands and execute them. It is a good way to learn Grails and try out the various dynamic finders available on your domain model.
The Grails interactive shell
In addition to the console there is the interactive shell. It works similar to the console but with a text UI only. To run the shell simply type the following command from the root of a Grails project:
There are instructions on how to use it when it loads, but essentially you type in the commands you want to execute separated by carriage returns and you then type
go followed by a carriage return to execute the commands.
General usage
Both console and shell are useful for working interactively with your Grails application:
- find domain objects with the help of dynamic finder methods
- call mutator methods on domain objects once you have a reference to them
- save() or delete() domain objects like you would otherwise do in a controller
- … _more to come here_
Such an interactive work can be helpful for debugging purposes, for verifying your assumptions about the object state and behavior, to test the effect of dynamic finder methods before putting the code in a controller.
Below is a transcript of an example session with a grails shell for a fictious book store application.
class Book {
String title
String author
String description
}
groovy:000> new Book(title:'Grails in Action', author:'Glen Smith',
groovy:001> description: 'Manning Early Access').save()
===> Book : 1
groovy:000> new Book(title:'The definitve Guide to Grails', author:'Graeme Rocher',
groovy:001> description: 'First book by the Project Lead of Grails').save()
===> Book : 2
groovy:000> Book.findAllByTitleLike('Grails%').title
===> [Grails in Action]
groovy:000> Book.findAllByTitleLike('%Grails%').title
===> [Grails in Action, The definitve Guide to Grails]
groovy:000> Book.findAllByAuthorLike('G%').author
===> [Glen Smith, Graeme Rocher].... more to come here (example with associations)
Packaging a WAR
To package a WAR file for deployment onto an application server you can do:
By default this will package for a production environment you can change this by doing:
grails test war // for test enviroment
grails dev war // for development environment
grails prod war // for production
If you want to package for X other environment you can do:
grails -Dgrails.env=blah war
A full list of the available targets is in the
Command Line