When changing a Java class under the src directory, a recompile does not set the local Grails classpath. This results in a changed class unable to compile if it references any other Java classes within the project.
To test, create a package with a couple of Java entity classes that refer to each other. Run the application. Change one of the two classes. Hilarity ensues as Grails repeated tries to recompile the changed class and repeated encounters compilation errors as (which should cause it to either stop compiling or exit the running app) the changed class cannot find any of the other classes, even if they are in the same package.
The only way to recompile the class is to stop the app, clean it, and then restart it to force a full build.