ad-hockery: /ad·hok'@r·ee/, n.
Gratuitous assumptions... which lead to the appearance of semi-intelligent behavior but are in fact entirely arbitrary. Jargon File

Scripting Plugin and Dependency Installation

Another quick script that I find quite useful, particularly on continuous integration servers is my Prepare.groovy script. It solves a couple of problems

  • Some plugins are not as well behaved as others on installation, for example the Functional Testing plugin automatically installs when test-app or run-app is installed but will then immediately crash with a ClassNotFoundException because the libraries it depends on are not on the classpath yet. Re-running the command will then work but if the commands are part of a CI build it’s probably already bombed out and reported a broken build.

  • The Ivy plugin is great but test-app and run-app won’t invoke its get-dependencies target to pull down libraries the way they will automatically install plugins.

  • Sometimes the grails command you want the build to execute is supplied by a plugin so there’s no convenient way to run it directly from a brand new workspace because the plugin isn’t installed yet.

The script simply ensures all plugins are installed and then invokes the Ivy plugin’s get-dependencies target (only if the Ivy plugin is installed - it won’t blow up on you if you don’t use Ivy). At that point you should have a fully workable workspace and be able to run any grails command you like without your app complaining that some library or other isn’t present.

Web Statistics