JAM’ing with Maven and Ant

Now I really don’t get this project. At first glance, JAM seems to provide some of the Maven functionality in a nice, structured, way using Ant. The part I don’t grok is that JAM depends on Maven. Huh?

Since I am sure to be missing something and am very interested in build tools, please comment if anyone can do a good job of explaining where JAM fits.

2 thoughts on “JAM’ing with Maven and Ant

  1. Rather than write a 500+ line Ant build file to facilitate a test-driven Java project, JAM allows you to assemble a build by importing reusable modules. JAM modules handle about 80% of the tedious packaging, testing, XDoclet, deployment and server control tasks you’d otherwise have to maintain by hand. However, every Java project has a unique set of dependencies and resources that can not be anticipated by a static set of build modules which is were Maven comes in. Maven’s project descriptor (or POM) allows one to express project attributes in a flexible and concise manner. JAM adopted the POM and uses a Maven-to-Ant plugin to generate the remaining 20% of Ant scripts that handle classpath and resource management.

    This approach combines the high-level declarative features of Maven with the low-level functional power of Ant without requiring a developer to learn Maven’s scripting language, Jelly. Once the project descriptor is specified, the JAM plugin is invoked by typing ‘maven jam’; after which it’s a pure Ant build environment.

  2. Thanks for your extensive reply, Richard, your explanation clears a lot of things up for me. Maybe depending on Maven at all is going to turn off many Ant users, though.

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>