I'm about to deploy several grails apps on top of a single Tomcat server, and I have the following doubts:
Thanks
I think best practices are to keep the libraries in the war, because if you update a library that's shared then you have make sure it's compatible with all of your apps that are using it. We do this with grails and with spring in general that way we don't have to go back and do compatibility testing each time we upgrade.
Also I believe that tomcat loads an instance of the class per application so you don't save on memory by using it as a common class.
See also:
Does Tomcat load the same library file into memory twice if they are in two web apps?