Spotted the use of the <splash> task in the Hibernate build.xml today (via BPH). So of course I had to add it to Clover’s build file. You can see the results in the following screenshot. The <splash> task shows an image and a progress bar while the build is executing (the image can even be an animated .gif).


This is cool and fun, but “cool” is not the only reason why I added it to a production build file. In a previous life, I was working on a huge GUI client in Java (in pre-1.0 Swing!). We would release to system test quite often (twice a month?), and for each release we would come up with a humorous and on-topic splash screen for the application. It was a good release valve, and was good for morale.

I’m sure that my co-workers will now replace the build splash image from time to time. You’ll do a cvs -q update -dP and then an ant build and all of a sudden some humorous picture will pop up. Nothing like a good chuckle between coders.

To put this into your own build, you will need something like the following. But things to note about this Ant snipet:

  • We use an “-init” target that most “core” targets depend on, but you’ll get the idea.
  • We prefix any target with “-” if that target shouldn’t really be called from the command line (this idiom is documented in the Ant manual)
  • When doing a “production” build using the “” target, I turn the splash screen off.
<target name="-splash" unless="nosplash">
    <property name="splash.dir" location="."/>
    <splash imageurl="file:${splash.dir}/fun/buildsplash.gif" />

<target name="-nosplash">
    <property name="nosplash" value="foo"/>

<target name="-init" depends="-splash">
        <format property="" pattern="MMMM dd yyyy"/>

<target name="" depends="-nosplash, -init, ..."/>

The <splash> task should be used to maximum effect in combination with the <sound> task.