Build Java projects with Raven article published
Over the course of a few years a number of build automation tools have surfaced. One tool that is widely accepted as a standard in the Java community is Ant, a cross-platform build tool that uses an XML file format.
Ant’s attractiveness stems from its ease-of-use and ability to be seamlessly extended with custom capabilities. Plenty of people know how to use Ant and there is a broad ecosystem of tools and support around it. On the other hand, given the nature of the XML syntax, Ant is occasionally limited when it comes to expressiveness. As a result, build tools based on an existing scripting language have entered the scene.
One such tool, Raven, a build platform built on top of Ruby, leverages the power of a full-featured programming language with the simplicity of a build-centric Domain Specific Language. Paul Duvall describes this in the latest installment of his “Automation for the people” series,
“In particular, Raven enables dependency-based tasking with a full-featured imperative programming language (rather than a declarative one like XML).”
In addition to expanding on the benefits of Raven including demonstrating two approaches to getting Raven installed and configured, his article, “Build Java projects with Raven” also illustrates the relationship between Raven and Rake. If you’re looking for a tool that enables you to utilize the power and flexibility of the Ruby language within a build script, check out the article first, then check out Raven.
Learn about the other installments of “Automation for the people”, a series of articles dedicated to exploring the practical uses of automating software development processes and teaching you when and how to apply automation successfully.

November 13th, 2007 at 5:02 pm
why would someone want to use Raven if you have Maven2?
November 13th, 2007 at 5:31 pm
I’m not advocating that everyone go out and start using Raven on all their existing Java projects. However, I do see it as a step in the right direction in that it provides a more expressive language (no XML!) which gives you the capability of writing in Ruby from the build script itself (without using script insertions like Ant/Maven). And, with Rake, it supports the dependency-based tasking model.
November 14th, 2007 at 1:11 pm
If one has built up, over time, an extensive set of artifacts from a Maven2 project, you don’t need to trash them, since they can be wrapped up as gems: Raven helps with that. Oddly enough, in the same way that Maven uses jar artifacts from the java world, Raven could be said be be slightly better because it uses both (rather, it can be made to use even those resources used in an adhoc, intrinsic manner by Maven). Also with the fact that scripts aren’t the basis of Raven’s building power unlike Maven as Paul has mentioned, it can only get better. At the moment, i’m trying to find out just how good builr (http://buildr.rubyforge.org/) is in relation to Raven.
November 27th, 2007 at 4:09 pm
I’m glad to read that the constraints of standard xml scripting is finally being recognized. We at Openmake Software sorted this out years ago when we introduced build methods written in PERL. Like Raven, PERL allowed us to deliver Ant using a more robust language, and we are still doing it. In addition, we use PERL to actually generate the build scripts themselves, allowing those who want to test early to also build often, without being interrupted by build scripts that have become out of date becuase of coding changes.