Status

Not ready for serious consideration or feedback

Target Release

?

Original Authors

Sean Gilligan

Abstract

This is a placeholder for a proposal to add support for Maven 2 to the Roller build process. Currently, it is just a place for Sean to put notes while learning the existing Roller build.

Requirements

There are two basic approaches to adding Maven 2 support, each of which would have a different set of requirements:

  1. Maven is the primary (or only) build system
  2. The primary build uses Ant and the Maven build is an alternative for those who prefer Maven

For now, this proposal assumes Maven would be the primary or only build system. This means all issues must be addressed to the satisfaction of the team. Allowing Maven as a secondary build system would, perhaps, be easier to implement, but it would create a maintenance issue as the Maven build could diverge from the Ant build. In addition, one of the main benefits of a Maven build, pulling the JARs out of SVN, could not be implemented. So, for now, I am approaching this with a view towards an implementation that would meet all the requirements for building Roller.

Implementation Schedule/Timing

There are a few reasons why the time for a switch to Maven has not yet arrived:

  1. A switch to Maven 2 will not add any new features to Roller
  2. The Ant build is already using the Maven 2 Ant Tasks for deploying Roller jars to local Maven repository
  3. The most active committers on the project (Dave and Allen) are opposed to Maven 2.
  4. There are ongoing efforts to make improvements in Maven 2 that may address some of the valid concerns expressed on this list. For example <http://www.jroller.com/mrdon/entry/making_maven_2_not_suck>.

This proposal (when finished) should be reconsidered when two or more of the following are true:

  1. A much improved version of Maven is available (e.g. a 2.1 release)
  2. The Roller build needs to be restructured anyway (perhaps to break it down into re-usable components, etc.)
  3. There are (new) active committers on the project who are comfortable with Maven 2 and are willing to be responsible for the conversion AND ongoing maintenance (including helping the other committers adjust)

(See Mailing list posting)

It may also be possible to restructure the existing build to be a little more Maven-friendly. The Ant build could use the Ant Tasks for Maven or Ivy to pull in JARs, for example. This could allow some of the benefits of Maven, without all the pain. This could be a transitional step towards a full Maven build.

Issues

General Issues

Specific Issues

Benefits

It will be important for these benefits to be clearly described and contrasted with mechanisms in the current (or an improved Ant build.)

Drawbacks

(How are these different than "General Maven Issues" above?)

Comments

Please enter comments below or send comments directly to Sean Gilligan – we're trying to hold off on discussing this on the lists for a while.