Skip to content


Subversion checkout URL

You can clone with
Download ZIP
The Grails Web Application Framework
Java Groovy CSS HTML Shell PostScript
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
buildSrc/src/main/groovy package POM files into GRAILS_HOME/lib
gradle Merge test reports of unit and integration tests
grails-async Upgrade to Reactor 2.0.0 GA
grails-bom Upgrade plugin versions
grails-bootstrap Grails 3.0.2 built WAR not using correct environment - Fixes #9043
grails-compat use Nebula Extra Configurations plugin for gradle provided/optional c…
grails-console fix build failure, use optional in the correct way
grails-core Merge branch '3.0.x'
grails-databinding introduce grails.databinding.BindingUsing
grails-dependencies Travis publishing test
grails-docs gradle docs plugin not reading the properties from application.groovy…
grails-encoder cleanup deprecation warnings
grails-gradle-model/src/main/groovy/org/grails/gradle/plugin/model fix for GRAILS-12099, apply workaround for…
grails-gradle-plugin fix for GRAILS-12099, apply workaround for…
grails-gsp fix for GRAILS-12076 and GRAILS-12077
grails-logging fix failing tests
grails-plugin-async Merge branch '2.5.x'
grails-plugin-codecs Fixes #654 - Custom Codec not working
grails-plugin-controllers Remove duplicate bean already provided by UrlMappingsGrailsPlugin
grails-plugin-converters Merge branch '2.5.x' into 3.0.x
grails-plugin-databinding refactoring, deleting dead code, alignment to newer plugin API
grails-plugin-datasource fix for GRAILS-12037 "Problem With Multiple Datasources"
grails-plugin-domain-class Fix reloading of validator, which was broken
grails-plugin-events Fixes run-app fails with BeanDefinitionStoreException - Fixes #671
grails-plugin-filters fix failing tests
grails-plugin-gsp fix tests
grails-plugin-i18n Fixes #609 - Grails 3.0.1 cannot run jar for web-micro profile
grails-plugin-interceptors Fixes #9048 - Grails 3 Interceptor: No such property: modelAndView fo…
grails-plugin-mimetypes Merge branch '2.5.x'
grails-plugin-rest Merge branch '2.5.x'
grails-plugin-services remove unused shouldInject method
grails-plugin-testing Merge branch '2.5.x' into 3.0.x
grails-plugin-url-mappings Fix URL mapping reloading
grails-plugin-validation GRAILS-11989 - The trait has moved
grails-shell Shutdown pool in shutdown hook
grails-spring Fixes #686 - Grails 3.0.1 not loading resources.xml
grails-taglib Revert some changes for #640
grails-test-suite-base Reset state between tests properly in base class for tests in grails-…
grails-test-suite-persistence issue #9003 : binding ids to a collection of persistent instances doe…
grails-test-suite-uber Creating application with numbers in the application name generates i…
grails-test-suite-web Merge branch '2.5.x' into 3.0.x
grails-test use Nebula Extra Configurations plugin for gradle provided/optional c…
grails-validation UrlMappings range constraint broken - Fixes #9014
grails-web-boot fix for GRAILS-12076 and GRAILS-12077
grails-web-common Revert "Inject GrailsApplication to avoid request lookup"
grails-web-databinding issue #9003 : binding ids to a collection of persistent instances doe…
grails-web-fileupload rename package org.codehaus.groovy.grails -> org.grails
grails-web-gsp-taglib GRAILS-12045 - improve sitemesh layout handling
grails-web-gsp GRAILS-12048 - Return more appropriate error for missing views
grails-web-initializer remove last remains of old build system
grails-web-jsp make jsp-api dependency a provided dependency in grails-web-jsp
grails-web-mvc GRAILS-12080 - init app discovery strategy sooner
grails-web-sitemesh Merge branch '2.5.x'
grails-web-taglib Make null safe
grails-web-url-mappings redirect doesn't work in UrlMappings.groovy - Fixes #9035
grails-web fix build failure, use optional in the correct way
media vector logos
travis Travis build: fix script
.gitignore remove references to dsl-support directory
.springBeans ignoring test temporarily, as due to infrastructure issues it is not …
.travis.yml Travis: use a container and caches
INSTALL ignoring test temporarily, as due to infrastructure issues it is not …
LICENSE Update ant to 1.9.4
NOTICE update LICENSE and README README file udpated
build.gradle Merge branch '3.0.x' ignoring test temporarily, as due to infrastructure issues it is not …
gradlew Update gradle wrapper to 1.5-rc-1
gradlew.bat ignoring test temporarily, as due to infrastructure issues it is not …
pubring.gpg.enc Travis publishing test take 2
secring.gpg.enc Travis publish take 3
settings.gradle Replace EclipseModel based classpath resolution with custom Gradle To…
settings.xml.enc Travis publishing test take 2 Merge branch '2.5.x' make Travis CI build compatible with builds in forks and pull requests

Build Status


Grails is a framework used to build web applications with the Groovy programming language. The core framework is very extensible and there are numerous plugins available that provide easy integration of add-on features.

Getting Started

You need a Java Development Kit (JDK) installed, but it is not necessary to install Groovy because it's bundled with the Grails distribution.

To install Grails, visit and download the version you would like to use. Set a GRAILS_HOME environment variable to point to the root of the extracted download and add GRAILS_HOME/bin to your executable PATH. Then in a shell, type the following:

grails create-app sampleapp
cd sampleapp
grails run-app

To build Grails, clone this GitHub repository and execute the install Gradle target:

git clone
cd grails-core
./gradlew install

If you encounter out of memory errors when trying to run the install target, try adjusting Gradle build settings. For example:

export GRADLE_OPTS="-Xmx2G -Xms2G -XX:NewSize=512m -XX:MaxNewSize=512m -XX:MaxPermSize=1G"

Performing a Release

Releases of Grails are automated by Travis CI.

To create a release perform the following steps.

First check that the tests are passing and all is well on Travis.

With that done checkout the Profile Repository and tag it for the release version. The tag should begin with the letter 'v'. For example::

$ git clone
$ cd grails-profile-repository
$ git tag v3.0.2
$ git push --tags

Next, update the Grails version in build.gradle and grails-core/src/test/groovy/grails/util/ and then push the changes to git:

$ git add build.gradle grails-core/src/test/groovy/grails/util/
$ git commit -m "Release Grails 3.0.2"
$ git push

After pushing these changes to the repository you must wait for the build to complete. During this phase the JAR files will be uploaded to the Grails Artefactory Repository.

Once the build completes successfully, tag the release using Git:

 $ git tag v3.0.2
 $ git push --tags

The Travis CI build will run again and automatically upload the tagged release to Github and be available of the Releases page.

Note: Although by default Grails uses Artefactory to resolve dependencies, it is useful to have them in Maven Central too. To ensure they go to Maven Central login to Sonatype OSS Nexus with your account details then "Close" and "Release" the staged JAR files.

At this point it is a good idea to release the documentation:

$ git clone
$ cd grails-doc
$ echo "grails.version=3.0.2" >
$ git add
$ git commit -m "Release 3.0.2 docs"
$ git tag v3.0.2
$ git push --tags

The Travis CI build for the documentation will automatically publish the documentation and make it available on the website at:

Finally to update the website's download page you should edit the sitemap


Grails and Groovy are licensed under the terms of the Apache License, Version 2.0.

YourKit is kindly supporting Grails open source projects with its full-featured Java Profiler. YourKit, LLC is the creator of innovative and intelligent tools for profiling Java and .NET applications. Take a look at YourKit's leading software products: YourKit Java Profiler and YourKit .NET Profiler.

Something went wrong with that request. Please try again.