Friday, October 9, 2009

Maven

There is a lot of discussion on the net about issues with using Maven for builds. Fairly old post by Howard Lewis (Tapestry creator).
Read this Infoq Maven debate Another post worth reading is Don Brown's

The key problems with Maven seem to be:
  1. Poor documentation leading to a somewhat steep learning curve
  2. Inconsistent builds due to fact that repository metadata is not properly maintained and newer broken versions of plugins can be released. Maintaining transitive dependencies is a hard problem! This issue can be addressed by using very specific versions of plugins in the Maven pom.xml and by caching dependencies in a local metadata repo and configuring your Maven build to look there first before going to general repos like Maven or ibiblio.
  3. Verbosity of the pom.xml- this is primarily due to XML language choice itself. One way to address this is to use inheritance and put most of common stuff in a parent pom so that a project's pom is limited primarily to dependencies.
  4. Dealing with large multi-module projects - even Ant builds I suspect will have a problem here.