Toshio Kuratomi wrote:
Deepak Bhole wrote:
> * Toshio Kuratomi <a.badger(a)gmail.com> [2009-05-08 18:45]:
>> So from the discussion we had on IRC, I added a note that maven2 itself
>> will need to bootstrap itself with binaries from its tarball. But I
>> looked on the maven2 website and saw that they suggest bootstrapping
>> with ant and then rebuilding with the newly built maven2:
>> Is there some reason that those instructions don't work now?
> We could use the ant build, but it offers no real advantage. The ant build
> still downloads the jars that we package in the tarball. There is no way
> around those dependencies. While using ant may knock off a
> very small subset of jars from the bootstrap tarball, it will vastly
> increase maintenance as we would have to set it up so that each version
> of each dependency is acquired from a local source.
Actually, it shouldn't. The koji buildroot shouldn't have network
access so it will just fail.
What's in the jars that are being used to bootstrap? It sounds as
though it's not just maven itself?
Toshio, Maven itself doesn't do anything, it just call things in a
certain order than can be configured if you can't just use the default.
Everything is done by plugins, each with its independent lifecycle. A
small set comes with maven but others are extenal. To build anything
one needs many of those plugins, to build maven fully, most of them, so
the set of packages in Deepak's list.
You cannot build maven in full without all of those, and those packages
do not build fully without a full maven and to make things worse these
packages cannot be built without several of the others (and yes, there
are circular dependencies). We go building thought that list 3 times!
This is simple for the Apache folks as their build just grab binaries
from the main maven repository and versions evolve daily by using
SNAPSHOT releases, they never encounter the need to build using only a
previous release set. At the end of it day they move their latest stuff
closer to the next release, incrementally (yes, a change in a plugin
breaks others that have to adjust).