Grails plugins are a good packaging mechanism for reusing code / design / schema in applications or for clarifying ownership of several authors (which seems likely for a large application), but I do not think that they will save you in terms of deployment pain - at the end of course, the code is still present in the application, and the application should still configure plugins, etc.
Yes, you will save a little time due to caching the plugin for deployment purposes, but you will pay it with additional difficulties in the code, testing and version control of the plugins themselves.
However, I think that creating the domain + services plugin is a good module for reuse - we just did it, but it is more painful than helping with deployment problems.
IMO, the "best practice" for a large Grails application is to think about splitting the application into smaller applications using communication either through a database, or using memcache, or through some form of messaging - a lot of clean "no" shift everything this and strives for better scalability. Use plugins in every application where you want to use code or circuit reuse or circuitry and get enough reuse to justify the various overheads.
Wayne
source share