How to bootstrap Maven

Ludovic Claude ludovic.claude at laposte.net
Sun Jan 8 23:37:23 UTC 2012


Hello Daniel,

You have done an excellent job here to bootstrap the build of Maven 3. I
cannot think of anothwe way of doing it. It's a pity that Maven 3
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.

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.

Ludovic

On 07/01/2012 23:14, Daniel Schepler wrote:
> In my overall pbuildd project, the idea is to bootstrap the Debian archive 
> from the package sources and a minimal starting chroot, using cycle breaker 
> scripts where necessary.  As part of that project, I'm trying to figure out how 
> one would bootstrap the Maven packages (and those of their dependencies which 
> use maven-debian-helper).  So far I have a big long pseudocode script which 
> has gotten me a significant part of the way towards that goal.  The idea is to 
> make heavy use of maven-ant-helper, plus building just selected parts of large 
> compound packages like wagon, doxia, etc.
> 
> The questions I have right now are:
> 
> 1. Is there some much simpler way to do this that I'm missing?
> 2. When I get to maven-scm, I run into this build error -- this is a log where 
> I tried adding "maven.test.skip=true" to debian/maven.properties in order to 
> verify that it's not a test skipping ahead in the dependency chain that's 
> causing this.
> 
> ...
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Building Maven SCM TFS Provider
> [INFO]    task-segment: [package]
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] [resources:resources {execution: default-resources}]
> [WARNING] Using platform encoding (ANSI_X3.4-1968 actually) to copy filtered 
> resources, i.e. build is platform dependent!
> [INFO] skip non existing resourceDirectory /tmp/maven-scm/maven-scm-1.3/maven-
> scm-providers/maven-scm-provider-tfs/src/main/resources
> [INFO] [compiler:compile {execution: default-compile}]
> [INFO] Compiling 19 source files to /tmp/maven-scm/maven-scm-1.3/maven-scm-
> providers/maven-scm-provider-tfs/target/classes
> [INFO] [plexus:descriptor {execution: default}]
> [INFO] Discovered 1 component descriptors(s)
> [INFO] [resources:testResources {execution: default-testResources}]
> [WARNING] Using platform encoding (ANSI_X3.4-1968 actually) to copy filtered 
> resources, i.e. build is platform dependent!
> [INFO] skip non existing resourceDirectory /tmp/maven-scm/maven-scm-1.3/maven-
> scm-providers/maven-scm-provider-tfs/src/test/resources
> [INFO] [compiler:testCompile {execution: default-testCompile}]
> [INFO] Not compiling test sources
> [INFO] [surefire:test {execution: default-test}]
> [INFO] Tests are skipped.
> [INFO] [jar:jar {execution: default-jar}]
> [INFO] Building jar: /tmp/maven-scm/maven-scm-1.3/maven-scm-providers/maven-
> scm-provider-tfs/target/maven-scm-provider-tfs-1.3.jar
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Building Maven SCM Standard Providers
> [INFO]    task-segment: [package]
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] [site:attach-descriptor {execution: default-attach-descriptor}]
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Building Maven SCM Client
> [INFO]    task-segment: [package]
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] [plexus:merge-descriptors {execution: merge}]
> [INFO] [resources:resources {execution: default-resources}]
> [WARNING] Using platform encoding (ANSI_X3.4-1968 actually) to copy filtered 
> resources, i.e. build is platform dependent!
> [INFO] Copying 1 resource
> [INFO] [compiler:compile {execution: default-compile}]
> [INFO] Compiling 1 source file to /tmp/maven-scm/maven-scm-1.3/maven-scm-
> client/target/classes
> [INFO] [resources:testResources {execution: default-testResources}]
> [WARNING] Using platform encoding (ANSI_X3.4-1968 actually) to copy filtered 
> resources, i.e. build is platform dependent!
> [INFO] skip non existing resourceDirectory /tmp/maven-scm/maven-scm-1.3/maven-
> scm-client/src/test/resources
> [INFO] [compiler:testCompile {execution: default-testCompile}]
> [INFO] Not compiling test sources
> [INFO] [surefire:test {execution: default-test}]
> [INFO] Tests are skipped.
> [INFO] [jar:jar {execution: default-jar}]
> [INFO] Building jar: /tmp/maven-scm/maven-scm-1.3/maven-scm-
> client/target/maven-scm-client-1.3.jar
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Building Maven SCM Plugin
> [INFO]    task-segment: [package]
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] 
> ------------------------------------------------------------------------
> [ERROR] BUILD ERROR
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Failed to resolve artifact.
> 
> Missing:
> ----------
> 1) org.apache.maven.scm:maven-scm-providers-standard:pom:1.3
>   Path to dependency: 
>         1) org.apache.maven.plugins:maven-scm-plugin:maven-plugin:1.3
>         2) org.apache.maven.scm:maven-scm-providers-standard:pom:1.3
> 
> ----------
> 1 required artifact is missing.
> 
> for artifact: 
>   org.apache.maven.plugins:maven-scm-plugin:maven-plugin:1.3
> 
> from the specified remote repositories:
>   central (http://repo1.maven.org/maven2)
> 
> 
> 
> NOTE: Maven is executing in offline mode. Any artifacts not already in your 
> local
> repository will be inaccessible.
> 
> 
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] For more information, run Maven with the -e switch
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Total time: 1 minute 4 seconds
> [INFO] Finished at: Sat Jan 07 21:46:54 UTC 2012
> [INFO] Final Memory: 93M/411M
> [INFO] 
> ------------------------------------------------------------------------
> make: *** [mvn-build] Error 1
> dpkg-buildpackage: error: debian/rules build gave error exit status 2
> 
> In a brief look at the pom.xml files, I couldn't easily see what's causing this 
> error.
> 
> The pseudoscript so far is attached, in case you're interested.
> 
> 
> 
> __
> This is the maintainer address of Debian's Java team
> <http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-maintainers>. Please use
> debian-java at lists.debian.org for discussions and questions.



More information about the pkg-java-maintainers mailing list