Maven + log4j 1.2.15 = BOOM!

Don’t try to use log4j 1.2.15 with Maven 2 — they didn’t mark their optional dependencies optional, forcing you to download and locally install a bunch of JavaMail, JMX and JMS JARs. More info here. Bug report here.

Maven Enhancements to Keep an Eye On

MNG-3397: More concise POM syntax (more info here).
MNG-3379: Concurrent artifact resolution (more info here).
MNG-2315: Easy mass transitive dependency exclusions.
MNG-1977: Global transitive dependency exclusions.

Have I missed any?

Maven 2.0.7 Released!

Things seem to be speeding up again in Maven land, ever since a bunch of the core Maven developers left Mergere to start Sonatype. It seems likely that development at Mergere was focused on value-add propositions like Maestro (based on Maven), while Sonatype focuses on Maven itself, making money off of training and partnerships. Consider the following timeline:

  • Maven 2.0.2 (January 2006)
  • Maven 2.0.3 (March 2006)
  • Maven 2.0.4 (April 2006)
  • …zzzz…zz…zzzzzz…
  • Maven 2.0.5 (February 2007)
  • Maven 2.0.6 (April 2007)
  • Maven 2.0.7 (June 2007)
  • Maven 2.0.8 (August 2007 [tentative])

As you can see, nothing much happened for about a year there.

In his announcement on The Server Side, Jason mentions the team’s intention to release monthly maintenance releases from here on out. I’ve also noticed increased activity on a couple of the issues I’m watching in Maven’s issue tracker, including features slated for the 2.1 release. I really like Maven 2, and I’m glad to see these signs of resurgent activity.

Congratulations, guys!

Maven 1 Frustrations

I just spent the past hour attempting to install Maven 1.0.2 in order to get some HtmlUnit work done.

Lesson the first: don’t point your JAVA_HOME environment variable to a path which includes spaces. This was a good rule of thumb back in 1997, but come on! Ten years later, and we’re still dealing with these issues? The Maven batch file is full of double-quoted variables and values, but apparently it’s just an effort to instill a false sense of security in unwary developers.

Lesson the second: do not, under any circumstances, add a trailing slash to your MAVEN_HOME environment variable. Doing so (ie, using “C:\java\maven-1.0.2\” instead of “C:\java\maven-1.0.2″) will cause Maven to throw the Java usage message at you, instead of doing something useful like, say, compiling your project.

It’s too bad that Mergere seems to be having some trouble. Both versions of Maven could really use the polish that comes with a professional [read: for money] operation a la JBoss…

UPDATE: Enter Sonatype!