On a recent flight from Boston to Melbourne i decided to have a play around with buildr and convert a small rest based web application from maven to buildr. Buildr is a ruby-based DSL build system for Java applications. The ruby plugin comes from the folks @ Intalio and born from their frustration in using maven for build management. The documentation on the rubyforge site is very good and provides a good introduction but to do more you’ll probably need to browse the ruby source code.

It took about a day of playing around before i managed to replicate my maven build, which included compiling, testing, packaging a war and running up the war on an instance of a jetty server.

All extension tasks (ala maven plugins) are written in Ruby so you get all the power and benefits of a turing complete language as opposed to the constraints of maven plugins. It’s definitely much easier to extend buildr with new tasks than to write a maven plugin.

You may have seen Assaf’s claims that builds are faster under buildr and my initial experience seems to confirm this.

If you’re looking at using it beyond a small project have a look at Apache ODE’s Rakefile, which is used to manage multi-project builds.