How to bootstrap Maven

Daniel Schepler dschepler at
Mon Jan 9 16:22:32 UTC 2012

On Sunday, January 08, 2012 03:37:23 PM Ludovic Claude wrote:
> Hello Daniel,
> You have done an excellent job here to bootstrap the build of Maven 3. I

Umm, I was working with the source packages from unstable, which afaict still 
has Maven 2.

> cannot think of anothwe way of doing it. It's a pity that Maven 3

OK.  At least I didn't need to resort to the brute force of "dump all the 
sources into one directory and compile it all together, then build a single 
sumo jar file".  Which wouldn't even really work in this case given the 
necessity for Plexus component and Maven plugin descriptors in individual jar 

> requires so much bootstrapping, I have packaged Maven 2.2.2 and was very
> careful to avoid such bootstrapping. But it's a long exercise to convert
> a Maven build into an Ant build, even with the help of maven-ant-helper.
> I have started to remove the need to use Maven for building some of
> those packages (currently plexus-compiler builds without Maven in the
> latest commit in Git). I'm also improving mh_make --ant (from
> maven-debian-helper) to assist the generation of all packaging files
> required to build and package a Maven project with Ant. It should be
> ready in a few days, then we can run this tool on the packages that you
> have bootstrapped and remove this circular build dependency on Maven.

Good to hear.

> Your problem with maven-scm should also be fixed by fully converting the
> build of maven-scm to Ant, as there seem to be some internal build
> dependency that is not met by your simple build script.

I'm not really sure about that.  As it turned out, if I installed all the jars 
that did build (which was everything except for the Maven plugin), and then 
reran the build, then it succeeded.  So, it would be interesting to try this 
experiment: in a vanilla pbuilder chroot, install all the build dependencies 
of maven-scm, then force the removal of libmaven-scm-java (the wagon-scm 
provider shouldn't be needed or used for Debian package builds anyway) and see 
if one can reproduce the error.

So anyway, I've about finished this phase of the bootstrapping, and pbuildd is 
doing yet another rebuild of all the packages.  Next, I need to figure out how 
to bootstrap the osgi-compendium -> geronimo-jpa-2.0-spec -> geronimo-osgi-
support -> osgi-compendium and bnd <-> bindex circular dependencies, and 
spring-build's self-build-depends, to get a full libxbean-java build.  And the 
whole jbossas4 / hibernate tangle, to get a full excalibur-logger build.  And 
aspectj's self-build-depends (that one looks like it might be a self-hosting 
compiler type of thing, for which I can have pbuildd download a prebuilt 
libaspectj-java, if necessary).
Daniel Schepler

More information about the pkg-java-maintainers mailing list