(I'm not entirely sure if you guys like me opening up a thread not directly related to WebManager, but I just thought this was interesting. If you disagree, feel free to yell at me)
I've sorta accidentally stumbled on something that said Maven 3 is in the works, and supposedly it's got a bunch of new features. So far, it's mainly an update of its internal structures, working out some of the problems present in Maven 2, but I'm sure I'll figure out more things as I go along.
Beforehand, I'd first like to say that Maven 3 is backwards compatible to Maven 2 - or at least, according to their integration tests. This means that you should be able to use your existing WCB pom.xml files alongside Maven 3, and gradually take advantage of its new and improved features.
One of the first things that jump out of the list of new features is the fact that you're no longer bound to the (overly?) verbose XML for pom configuration. Maven 3 comes with a pluggable interpreter of sorts, allowing anyone to write a parser for their own POM format. The first language that was displayed was Groovy, a scripting language that (if I have it right) can compile to Java code. But I'm not too familiar with that.
The results?
Before:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.5</version>
<scope>test</scope>
</dependency>
</dependencies
After:
dependencies {
dependency {
groupId 'junit'
artifactId 'junit'
version '4.5'
scope 'test'
}
}
or, more compact (with 3 dependencies now):
dependencies {
dependency { groupId 'junit'; artifactId 'junit'; version '4.7'; scope 'test' }
dependency { groupId 'org.hamcrest'; artifactId 'hamcrest-all'; version '1.1' }
dependency { groupId 'log4j'; artifactId 'log4j'; version '1.2.12' }
}
And it'd be even more concise if you'd use YAML (read: less braces, quotes, semicolons), which I'm sure some smart fellow would make soon:
dependencies:
dependency:
groupId: junit
artifactId: junit
version: 4.5
scope: test
Of course, anything from plaintext (CSV ftw) to Brainfuck (pardon my french) would be possible with this approach. Internally it'd just get translated to Maven's old XML format, of course, but that doesn't matter to real people that have to work with it.
You can view the slides of Jason van Zyl (go Dutch roots) on Scribd, or a video of his presentation from last April (or so) on the Sonatype blog.