| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <title>FAQ | Apache Grails®</title> |
| <meta name="keywords" content="grails,jvm,framework,groovy,gradle,spring-boot,gorm"/> |
| <meta name="description" content="A powerful Groovy-based web application framework for the JVM built on top of Spring Boot"/> |
| <meta name="date" content="July 5, 2026"/> |
| <meta name="robots" content="all"/> |
| <meta name='twitter:card' content='summary_large_image'/> |
| <meta name='twitter:site' content='@grailsframework'/> |
| <meta name='twitter:description' content='A powerful Groovy-based web application framework for the JVM built on top of Spring Boot'/> |
| <meta name='twitter:creator' content='@grailsframework'/> |
| <meta property='og:image' content='https://grails.apache.org/images/grails.png'/> |
| <meta property='og:url' content='https://grails.apache.org/faq.html'/> |
| <meta property='og:title' content='FAQ | Apache Grails®'/> |
| <meta property='og:description' content='A powerful Groovy-based web application framework for the JVM built on top of Spring Boot'/> |
| <meta property='og:type' content='website'/> |
| |
| <meta charset='UTF-8'/> |
| <meta name='viewport' content='width=device-width, initial-scale=1'/> |
| <link rel='icon' href='https://grails.apache.org/images/favicon.ico'/> |
| <link rel='mask-icon' href='https://grails.apache.org/images/grails-pinned-icon.svg' color='feb672'/> |
| <link rel='alternate' type='application/rss+xml' title='RSS' href='https://grails.apache.org/rss.xml'/> |
| <link rel='stylesheet' href='https://grails.apache.org/stylesheets/screen.css'/> |
| <link rel='stylesheet' href='https://grails.apache.org/stylesheets/plugin.css'/> |
| <script src='https://grails.apache.org/javascripts/navigation.js'></script> |
| |
| <!-- Matomo --> |
| <script> |
| var _paq = window._paq = window._paq || []; |
| _paq.push(['setDoNotTrack', true]); |
| _paq.push(['disableCookies']); |
| _paq.push(['trackPageView']); |
| _paq.push(['enableLinkTracking']); |
| (function() { |
| var u = 'https://analytics.apache.org/'; |
| _paq.push(['setTrackerUrl', u + 'matomo.php']); |
| _paq.push(['setSiteId', '79']); |
| var d = document, g = d.createElement('script'), s = d.getElementsByTagName('script')[0]; |
| g.async = true; g.src = u + 'matomo.js'; s.parentNode.insertBefore(g, s); |
| })(); |
| </script> |
| <!-- End Matomo Code --> |
| |
| <script |
| async |
| src="https://widget.kapa.ai/kapa-widget.bundle.js" |
| data-website-id="d804a9f2-51a2-414c-97f7-12f2a1ba4609" |
| data-project-name="Apache Grails" |
| data-project-color="#3F4346" |
| data-font-family="system-ui,-apple-system,BlinkMacSystemFont,Roboto,Helvetica,Arial,Segoe UI,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;" |
| data-project-logo="https://grails.apache.org/images/grails.png" |
| data-modal-override-open-id="ask-ai-input" |
| data-modal-override-open-class="search-input" |
| data-user-analytics-fingerprint-enabled="true" |
| data-modal-title="Apache Grails AI Assistant" |
| data-modal-example-questions-title="Try asking me..." |
| data-modal-example-questions="How does database migration work?,How does Spring Security work?" |
| data-button-text-color="#FBB576" |
| data-modal-header-bg-color="#FFFFFF" |
| data-modal-title-color="#FBB576" |
| data-consent-required="true"></script> |
| |
| |
| <link rel='stylesheet' href='https://grails.apache.org/stylesheets/paginate.css'/> |
| <script src='https://grails.apache.org/javascripts/paginate.js'></script> |
| |
| |
| |
| <script src='https://grails.apache.org/javascripts/plugins.js'></script> |
| </head> |
| <body> |
| <header class='main-header'> |
| <div class='content'> |
| <a href='https://grails.apache.org/index.html'><img class='grails-logo' src='https://grails.apache.org/images/grails_logo.svg' alt='Grails Logo'/></a> |
| <a href='javascript:show("top-menus", "show-navigation-link")' id='show-navigation-link' |
| class='mobile align-center'>Show Navigation</a> |
| <div id='top-menus'> |
| <nav class='secondary-menu' id='secondary-menu'> |
| <ul> |
| <li><a href='https://grails.apache.org/casestudies/index.html'>Case Studies</a></li> |
| <li><a href='https://grails.apache.org/blog/index.html'>Blog</a></li> |
| <li><a href='https://grails.apache.org/learning.html'>Learning</a></li> |
| <li><a href='https://grails.apache.org/community.html'>Community</a></li> |
| <li><a href='https://grails.apache.org/search.html'>Search</a></li> |
| </ul> |
| </nav> |
| <nav class='main-menu' id='main-menu'> |
| <ul> |
| <li><a href='https://grails.apache.org/documentation.html'>Documentation</a></li> |
| <li><a href='https://grails.apache.org/download.html'>Download</a></li> |
| <li><a href='https://grails.apache.org/plugins.html'>Plugins</a></li> |
| <li><a href='https://grails.apache.org/guides'>Guides</a></li> |
| <li class='active'><a href='https://grails.apache.org/faq.html'>FAQ</a></li> |
| <li><a href='https://grails.apache.org/support.html'>Support</a></li> |
| <li><a href='https://start.grails.org'>Forge App</a></li> |
| </ul> |
| </nav> |
| </div> |
| </div> |
| </header> |
| |
| <article><div class='header-bar chalices-bg'><div class='content'><h1>Questions</h1></div></div><div class='content'><article id='questions'><div class='question' id='question_opensource'><h2 class='column-header'>Is Apache Grails an Open Source project?</h2><p>Yes, Apache Grails is an Open Source project licensed under the |
| <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License v2</a>.</p> |
| </div><div class='question' id='eccn'><h2 class='column-header'>What is the Export Control Classification Number (ECCN) for Grails?</h2><p>Grails is an open source technology that is not on the Commerce Control List, |
| and is therefore classified with the general purpose classification of EAR 99.</p> |
| </div><div class='question' id='question_learn'><h2 class='column-header'>What is the best way to learn about Grails?</h2><p>Read the <a href="/documentation.html">User Guide</a> for the version you are planning to use. |
| We recommend you start with the latest stable version of the framework. We have also |
| written a collection of <a href="https://grails.apache.org/guides">Guides</a>, which contain step-by-step |
| tutorials for solving common scenarios.</p> |
| </div><div class='question' id='question_training'><h2 class='column-header'>Do you offer Grails training?</h2><p>The Apache Software Foundation does not offer Grails Training.<br /> |
| See <a href="/support.html">Commercial Support Options</a>.</p> |
| </div><div class='question' id='question_usage'><h2 class='column-header'>Where can I ask questions about usage?</h2><p>The best place to get community support is to use the <a href="/community.html">Apache Grails User mailing lists</a>. |
| Alternatively you can use <a href="https://github.com/apache/grails-core/discussions">GitHub Discussions</a> or |
| <a href="https://slack.grails.org">Slack</a> Grails Community Slack.</p> |
| </div><div class='question' id='question_socialmedia'><h2 class='column-header'>Where can I find Grails on social media?</h2><p>You can find Grails on <a href="https://x.com/grailsframework">X</a> |
| and <a href="https://www.linkedin.com/groups/39757">LinkedIn</a>.</p> |
| </div><div class='question' id='question_mailinglist'><h2 class='column-header'>Do you have a mailing list?</h2><p>Yes, there are a number of mailing lists at the ASF. Check the |
| <a href="/community.html">Community</a> page for more information</p> |
| </div><div class='question' id='question_feature'><h2 class='column-header'>Where can I suggest a new feature or share an interesting finding?</h2><p>The best place is to use the <a href="/community.html">Apache Grails Developer mailing lists</a>.</p> |
| <p>You can also join <a href="https://slack.grails.org">Grails Community Slack</a> which a great place |
| to start a conversation with the Grails developers and other Grails users.</p> |
| </div><div class='question' id='question_slack_vs_stackoverflow'><h2 class='column-header'>What is the difference between the mailing list, Slack and interaction on Stack Overflow?</h2><ul> |
| <li>Use the <a href="https://slack.grails.org">Grails Community Slack</a> for discussion around |
| the framework's development.</li> |
| <li>For questions we recommend to use the <a href="/community.html">Apache Grails User mailing lists</a>.</li> |
| <li><a href="https://stackoverflow.com/questions/tagged/grails">Stack Overflow</a> also contains long lived Q&A.</li> |
| <li>Long lived discussions will occur on GitHub.</li> |
| </ul> |
| </div><div class='question' id='question_issue'><h2 class='column-header'>How do I report an issue with the Grails framework?</h2><p>The Grails project uses <a href="https://github.com/apache/grails-core/issues">GitHub issues</a> |
| to report and track issues, feature enhancements, and new features. |
| Make sure you're logged-in before proceeding.</p> |
| <p><a href="https://github.com/apache/grails-core/issues/new">Report an issue</a></p> |
| </div><div class='question' id='question_docs'><h2 class='column-header'>How can I contribute to improving the documentation?</h2><p>Grails documentation comes in several forms:</p> |
| <ul> |
| <li>The <a href="https://grails.apache.org/docs/latest/">reference documentation</a> contains language |
| specification, user guides, a getting started tutorial, and more.</li> |
| <li>The <a href="api.html">GroovyDoc APIs</a> documents the classes of the Grails code base.</li> |
| <li><a href="https://github.com/apache/grails-static-website">GitHub</a> allows users to contribute |
| to this website.</li> |
| </ul> |
| <p>Contributing to the documentation is fairly easy. Create a GitHub account or sign in |
| with an existing account, then go to the |
| <a href="https://grails.apache.org/docs/latest/">documentation website</a> |
| and select the "Improve this doc" button at the top of the page you wish to edit.</p> |
| <p>Please don't hesitate to help us make improvements, fix typos or broken language, |
| clarify complicated sections, add new material, and anything else you feel will be |
| helpful to other Grails users.</p> |
| </div><div class='question' id='question_code'><h2 class='column-header'>How can I contribute to Grails code?</h2><p>If you are looking to make an initial contribution, just raise your hand on the |
| <a href="/community.html">Apache Grails Developer mailing lists</a> and tell us about your desire |
| to work on a particular problem.</p> |
| <p>For more complicated tasks, the best approach is to bring your interest to the attention |
| of the Grails developers. They can provide guidance on how best to tackle a particular |
| problem, collaborate on implementation ideas, and discuss the semantics or scope of the |
| proposed change.</p> |
| <h3>Cloning the code base</h3> |
| <p>To work on the Grails code base, you should be proficient in <a href="https://git-scm.com/">Git</a> |
| and (ideally) have an account on <a href="https://github.com/">GitHub</a>, so you can create |
| <a href="https://help.github.com/articles/creating-a-pull-request">pull requests</a> with your changes.</p> |
| <p>If you have Git installed on your machine, you should be able to clone the Grails repository |
| with the following command:</p> |
| <pre><code>git clone git://github.com/apache/grails-core.git |
| </code></pre> |
| <p>Make sure you configure Git appropriately with the same email that you registered with on GitHub.</p> |
| <pre><code>git config --global user.name "YOUR NAME" |
| git config --global user.email "YOUR EMAIL" |
| </code></pre> |
| <p>You can verify these are configured appropriately by running:</p> |
| <pre><code>git config --list |
| </code></pre> |
| <h3>Working on the code base</h3> |
| <p>If you are working with the IntelliJ IDEA development environment, you can import the project using |
| the Intellij Gradle Tooling ("File / Import Project" and select the "build.gradle" file).</p> |
| <p>To get a local development version of Grails working, first run the install task.</p> |
| <pre><code>./gradlew assemble |
| ./gradlew publishToMavenLocal |
| </code></pre> |
| <p>Then install <a href="https://sdkman.io">SDKman</a>, which is the quickest way to set up a development environment.</p> |
| <p>Once you have SDKman installed, point SDKman to your local development version of Grails.</p> |
| <pre><code>sdk install grails dev /path/to/checkout |
| sdk use grails dev |
| </code></pre> |
| <p>Now the "grails" command will be using your development version!</p> |
| <p>The most important command you will have to run before sending your changes is the check command.</p> |
| <pre><code>./gradlew check |
| </code></pre> |
| <p>For a successful contribution, all tests should be green!</p> |
| <h3>Creating a pull request</h3> |
| <p>Once you are satisfied with your changes:</p> |
| <ul> |
| <li>commit your changes in your local branch</li> |
| <li>push your changes to your remote branch on GitHub</li> |
| <li>send us a <a href="https://help.github.com/articles/creating-a-pull-request">pull request</a></li> |
| </ul> |
| </div><div class='question' id='question_develocity'><h2 class='column-header'>Where can I view the Develocity instance for the Grails framework?</h2><p>Our Develocity instance can be found at <a href="https://develocity.apache.org/scans?scanList.help=project&search.rootProjectNames=grails*">https://develocity.apache.org/</a>.</p> |
| </div><div class='question' id='question_sponsors'><h2 class='column-header'>Who sponsors Grails development?</h2><p>The Apache Grails framework is a community driven effort, run under the |
| Apache Software Foundation.</p> |
| </div><div class='question' id='community_collective'><h2 class='column-header'>Can I help fund the development of Apache Grails?</h2><p>While the Apache Grails project does not accept direct funding, the community-run |
| <a href="https://opencollective.com/friends-of-grails">Friends of Grails</a> initiative supports |
| activities within the Apache Grails community.</p> |
| </div></article></div> </article> |
| <footer> |
| <div class='content'> |
| <div class='apache-grails'> |
| <p>Apache Grails is supported by the Apache Software Foundation and the Grails community.</p> |
| <a href='https://apache.org'><img src='https://www.apache.org/img/asf_logo.png' width='200px' alt='Apache Software Foundation'/></a> |
| <p>Apache, Apache Grails, Grails, Groovy, and the ASF logo are either registered trademarks or trademarks of The Apache Software Foundation.</p> |
| </div> |
| <nav class='social-media-nav'> |
| <ul> |
| <li><a href='mailto:dev@grails.apache.org'><img src='https://grails.apache.org/images/email.svg' alt='Email Icon'/></a></li> |
| <li><a href='https://slack.grails.org'><img src='https://grails.apache.org/images/slack.svg' alt='Slack Icon'/></a></li> |
| <li><a href='https://www.youtube.com/@GrailsFramework'><img src='https://grails.apache.org/images/youtube.svg' alt='Youtube Icon'/></a></li> |
| <li><a href='https://bsky.app/profile/grails.apache.org'><img src='https://grails.apache.org/images/bsky.svg' alt='Bluesky Icon'/></a></li> |
| <li><a rel="me" href="https://fosstodon.org/@grails"><img src='https://grails.apache.org/images/mastodont.svg' alt='Mastodon Icon'/></a></li> |
| <li><a href='https://www.linkedin.com/showcase/official-grails/'><img src='https://grails.apache.org/images/linkedin.svg' alt='LinkedIn Icon'/></a></li> |
| <li><a href='https://github.com/apache/grails-core'><img src='https://grails.apache.org/images/github.svg' alt='GitHub Icon'/></a></li> |
| <li><a href='https://twitter.com/grailsframework'><img src='https://grails.apache.org/images/x-twitter.svg' alt='Twitter Icon'/></a></li> |
| </ul> |
| </nav> |
| </div> |
| <div class='footer-bottom'> |
| <p>© 2005-2026 the Apache Grails project</p> |
| <p>Grails is Open Source: |
| <a href='https://www.apache.org/licenses/'>License</a>, |
| <a href='https://privacy.apache.org/policies/privacy-policy-public.html'>Privacy Policy</a>, |
| <a href='https://www.apache.org/foundation/sponsorship'>Sponsor Apache</a>, |
| <a href='https://www.apache.org/events/current-event'>Events</a>, |
| <a href='https://www.apache.org/security'>Security</a>, |
| <a href='https://www.apache.org/foundation/thanks.html'>Thanks</a>, |
| <a href='https://grails.apache.org/support-schedule.html'>Support Schedule</a> |
| </p> |
| </div> |
| </footer> |
| |
| </body> |
| </html> |