commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Phil Steitz <>
Subject Re: [all] Maven, help or hinderance?
Date Sun, 04 Dec 2005 04:09:27 GMT
On 12/3/05, Stephen Colebourne <> wrote:
>  >>Hate to be an "old fart" here but was ant really all that bad?
> Well it is a question isn't it? I suppose this is a flame thread, but I
> have to ask, have we over the last two years or so actually got the
> benefits that maven promised? And do we believe that maven2 will help?

Good question and good time to ask it, as maven 2 has just been
released and there is no denying that the current site generation is
creaking and painful.

> When I think of maven, I see the POM as a good idea, raising the
> abstraction level. The problem has always been what it does with the
> POM. I have a feeling that maven should have just been a set of ant
> tasks that used the POM for info. Anyway, that design wasn't chosen.
Well, one could argue that that is more or less what was implemented
in maven 1, with the tasks scripted using jelly.  Have a look at the
sources for the dist plugin, for example, and you will see lots of ant
tasks scripted in jelly.

> So what works well with maven? Well the end result site can be quite
> reasonable. You still have to put in effort though, to fix
> navigation.xml, cvs-usage.xml, issue-tracking.xml, add decent links to
> each of the reports, manage the history of javadocs...
This is all true, but we can fairly easily share the results of this
effort.  Sure, we may need to copy and modify the templates, but if
you commit examples to commons-build that will make it easier. The
maven community is also *very* open to applying patches to support new
requirements - both for maven 2 and maven 1.

> Building has always seemed to be a nightmare though. I have no faith
> that the jar or dist built by maven is the jar/dist that I want (I
> always want something non-standard). And one  output jar per project is
> just crazy (see collections-testframework for example). And we still
> don't have a cast-iron way to build a 1.2 compatible release using maven.

You can get multiple jars by creating a multiproject.  When it comes
to "non-standard" contents, again the answer is that if you want it,
probably some others do too, so opening tickets and submitting patches
is the right thing to do.  That's how we got LICENSE.txt included
automatically, for example. Just opening the ticket helps, even if you
have no interest in working on the patch.  I am now working on three
patches to support commons in maven 1 now

- crlf fix (sorry for all the noise, will be configurable to just fix
the crlf part)
- not recognized by the jar plugin
- incorrect jdk reported in manifest when maven.compile.executable is used

It will be easier if we get these things fixed in maven rather than
duplicating the work all over the place in custom ant scripts, IMHO.

> So, are we holding on to maven because we feel we should? Are the
> claimed benfits really there? And if I'm already using ant for releases,
> why shouldn't we do as Hen suggests and generate our reports outside
> maven too?

Way too much work, IMHO and a PITA even worse than we currently have
to maintain it.  To me, maven does a great job handling dependencies,
generating reports and web sites, and making release distros. 
Admittedly, we are still not where we need to be in commons on the
last items; but I see less work getting maven to work than starting
from scratch with Ant and Velocity / XSLT.  I also like the sshDeploy
and jar deploy capabilities.

I would not recommend a wholesale move to maven 2 at this time, as the
plugins are still getting completed and I am afraid the frustration
level would actually get worse if we started going there immediately. 
I think that if we solve a few simple problems with maven 1 and update
the docs, we can make things easy enough for RMs and volunteers both.

At apachecon, Brett and I are going to work on finding a better way to
share navigation structures across sites.  The current XML entities
approach is going to break in maven 1.1 and is also a bit confusing. 
All are welcome to join us, or obviously to post ideas on how to do


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message