Grails Convention
Grails File Structure
In Grails they stress convention over configuration. Grails basic structures follow the MVC pattern. The grails-app/domain directory holds the Models, the grails-app/views directory holds the Views and the grails-app/controllers directory holds the Controllers. There are:
%PROJECT HOME%
- grails-app
- conf
- BootStrap.groovy <- Initializes the database with given data.
- BuildConfig.groovy <- Holds configurations for the build (dependencies, plugins, repositories, error logging level).
- Config.groovy <- Holds various configurations for the project.
- DataSource.groovy <- Holds database settings for each type of environment.
- SpringSecurityConfig.groovy <- Holds additional configuration settings for the Spring Security plugins. Has to be included at the
beginning of Config.groovy. - UrlMappings.groovy <- Allows the changing of the Url scheme.
- controllers <- Holds the controller classes.
- domain <- Holds the model classes, grails will by default create a corresponding table for each file in this directory.
- services <- Directory to hold any services the application will host.
- views <- Holds the view gsps.
- conf
- lib
- scripts <- Holds the various grails command scripts as well as any user-defined scripts.
- src
- groovy <- Generic groovy source files that don't have a conventional location.
- java <- Java source files, will be compiled and included in WAR file.
- test <- Holds the test files that will be run by the "grails test-app" script.
Grails Commands
Running grails is done through script commands in the command windows after installing grails.
Some of the commands I used in creating this web service:
- grails create-app " " - Sets up the new project, creating the file structure.
- grails clean - Deletes all compiled resources from the application, usually used before running application.
- grails run-app - Runs the application.
- grails create-domain-class " " - Creates a domain class of the given name (ex. edu.hawaii.its.holidayWebService.Holidays will create the Holidays domain
class in the package edu.hawaii.its.holidayWebService) - grails create-service " " - Creates a service class.
- grails generate-all " " - Creates a fully implemented controller and a corresponding set of GSP views.
All the commands can be seen here or by running the "grails help" script from the command line.