I’ve been using Grails for some years now, and my normal workflow is something like:
grails create-app, followed by creating some domain class, followed by a a
grails generate-all, and a
grails run-app. It helps greatly in selling Grails, and people are usually quite impressed by the speed of having an up and running hello-world application in Grails.
However, since Grails 2.3.0, this is not the case anymore. The Grails scaffolding is now a separate plugin, and while that’s not bad per se, it is bad that it’s a compile time plugin. The compile time means that the plugin is only added to the project whenever a compile time target is used, and personally, I only get into the compile time whenever I do a run-app. And yes, you’re right, that’s after the generate-all, which, as you might have guessed, doesn’t work in Grails 2.3.0 before having run a compile target (and, not coincidentally,
grails create-domain-class is such a target…)
So, should you run into this, running
grails compile, even though it’s functionally not needed, solves your issues.