(Quick Reference)



Runs a Grails application in an embedded servlet container

This target is not intended to be used for application deployment. There are many optimizations implemented when generating a WAR file for deployment that are not available to run-app since run-app is optimized for developer productivity, not performance.


grails run-app
grails run-app -https // with HTTPS
grails test run-app
grails -Dserver.port=8090 -Denable.jndi=true -Ddisable.auto.recompile=true run-app



grails [env]* run-app


  • https - Start an HTTPS server (on port 8443 by default) alongside the main server. Just to be clear, the application will be accessible via HTTPS and HTTP. A self-signed key will be generated. Intended for development use only.

Supported system properties:

  • disable.auto.recompile - Disables auto-recompilation of Java sources, which can be processor intensive (defaults to false)
  • recompile.frequency - Specifies how frequently (in seconds) Grails checks for changes to Java and Groovy sources in your project (defaults to 3).
  • grails.server.port.http/server.port - Specifies the HTTP port to run the server on (defaults to 8080)
  • grails.server.port.https - Specifies the HTTPS port to run the server on (defaults to 8443)
  • grails.server.host/server.host - Specifies the host name to run the server on (defaults to localhost)

Fired Events:

  • StatusFinal - When the container has been started
  • StatusUpdate - When the container is reloading

This command starts Grails in an embedded servlet container that can serve HTTP requests. The default container is Tomcat but alternative containers are supported via the plugin system. For example to run Grails with Jetty run the following two commands:

grails uninstall-plugin tomcat
grails install-plugin jetty