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