I agree with @gaolei An alternative to multi-project is to use plugins which gets you the same split, but you have to compile/deploy them on change, which you can do locally. The trade-off is that the plug-ins are precompiled and when working locally can be deployed to your local .m2. As for the source code if you set the build-up right it will include the source so when you deploy you can later pull in that plugin with its source for debugging.
One of the projects I worked on had a multi-project build with a common core of about 700k lines of Groovy code, and the applications were about 50k to 150k lines of Groovy code and took between 8 and 12 min. to compile and run from a clean, or about 3 to 4 min. on restart with no changes.
Grails and monliths have their place, but once they start getting too big then migrating to micro-services/services architecture, becomes attractive, but with its own trade-offs.