How to bootstrap Maven

Daniel Schepler dschepler at gmail.com
Sat Jan 7 22:14:54 UTC 2012


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.
-- 
Daniel Schepler
-------------- next part --------------
# extract_src() {
# cd /tmp
# mkdir $1
# cd $1
# cp -p /var/cache/pbuildd/build/*/$1/$1* .
# dpkg-source -x *.dsc
# /tmp/hooks/A50pb_ver --use-curdir
# cd */
# }
ant_helper_cmd() {
local extrajars=""
case "$1" in
--extra-jars=*)
  extrajars=${1#--extra-jars=}:
  shift
  ;;
esac
java -classpath $extrajars`perl -e 'print join(":", glob("/usr/share/java/*.jar"))'`:/usr/lib/jvm/default-java/lib/tools.jar org.apache.tools.ant.Main -buildfile /usr/share/maven-ant-helper/maven-build.xml -Dbuild.directory=target "$@"
}
ant_helper() {
local pkg="$1"
shift
ant_helper_cmd "$@" -Dpackage="$pkg" -Dbasedir=`pwd` "$@" package
}
ant_helper_sub() {
local binpkg="$1"
local subdir="$2"
shift; shift
ant_helper_cmd "$@" -Dbin.package="$binpkg" -Dbasedir=`pwd`/"$subdir" -Ddebian.dir=`pwd`/debian package
}
do_installpom() {
mh_installpom -p$1 `perl -e 'open(POMS, "debian/'$1'.poms");
  while ($_ = <POMS>) {
    print $_ if (m{^\Q'$2'\E( |$)});
  }'`
}
do_installjar() {
local dir=${2%/*}
local basedir=${dir##*/}
mh_installjar -p$1 -l $2 $dir/target/$basedir-*.jar
}
do_pkg() {
dh_gencontrol -p$1
dh_builddeb -p$1
}
min_pkg() {
mh_installpoms -plib$1-java
mh_installjar -plib$1-java -l pom.xml target/$1-*.jar
do_pkg lib$1-java
}

cd /tmp/plexus-classworlds/*/
ant_helper plexus-classworlds
min_pkg plexus-classworlds

cd /tmp/plexus-interpolation/*/
ant_helper plexus-interpolation
min_pkg plexus-interpolation

cd /tmp/plexus-utils/*/
dpkg-buildpackage -b -uc

cd /tmp/libxbean-java/*/
patch -p1 <debian/patches/bootstrap.diff
ant_helper_sub libxbean-java xbean-reflect -Dbuild.javaVersion=1.5
do_installpom libxbean-java pom.xml
do_installpom libxbean-java xbean-reflect/pom.xml
do_installjar libxbean-java xbean-reflect/pom.xml
do_pkg libxbean-java

cd /tmp/plexus-containers/*/
dpkg-buildpackage -b -uc

cd /tmp/plexus-container-default/*/
dpkg-buildpackage -b -uc

cd /tmp/excalibur-logger/*/
rm src/java/org/apache/avalon/excalibur/logger/factory/JMSTargetFactory.java
dpkg-buildpackage -d -b -uc

cd /tmp/velocity/*/
ant_helper_cmd -Dpackage=velocity -Dbin.package=velocity -Dbuild.sourceDirectory=`pwd`/src/java -Dbuild.testSourceDirectory=`pwd`/src/test -Dmaven.test.skip=true -Dbasedir=`pwd` package
mh_installpoms -pvelocity
mh_installjar -pvelocity -l pom.xml target/velocity-*.jar
do_pkg velocity

cd /tmp/plexus-velocity/*/
ant_helper plexus-velocity
min_pkg plexus-velocity

cd /tmp/plexus-cli/*/
ant_helper plexus-cli
min_pkg plexus-cli

cd /tmp/plexus-compiler/*/
ant_helper_sub libplexus-compiler-java plexus-compiler-api
ant_helper_sub libplexus-compiler-java plexus-compilers/plexus-compiler-javac --extra-jars=`echo $(pwd)/plexus-compiler-api/target/plexus-compiler-api-*.jar` -Dmaven.test.skip=true
do_installpom libplexus-compiler-java pom.xml
do_installpom libplexus-compiler-java plexus-compiler-api/pom.xml
do_installpom libplexus-compiler-java plexus-compilers/pom.xml
do_installpom libplexus-compiler-java plexus-compilers/plexus-compiler-javac/pom.xml
do_installjar libplexus-compiler-java plexus-compiler-api/pom.xml
do_installjar libplexus-compiler-java plexus-compilers/plexus-compiler-javac/pom.xml
do_pkg libplexus-compiler-java
do_pkg libplexus-compiler-api-java
do_pkg libplexus-compiler-javac-java

cd /tmp/plexus-build-api/*/
mkdir -p target/classes/META-INF/plexus
cp $PBUILDD_ROOT/scripts/cb/plexus-build-api-components.xml target/classes/META-INF/plexus/components.xml
ant_helper plexus-build-api
min_pkg plexus-build-api
dpkg -i ../libplexus-build-api-java_*.deb

cd /tmp/modello/*/
dpkg-buildpackage -b -uc
dpkg -i ../libmodello-java_*.deb

cd /tmp/wagon/*/
ant_helper_sub libwagon-java wagon-provider-api
do_installpom libwagon-java pom.xml
do_installpom libwagon-java wagon-provider-api/pom.xml
do_installjar libwagon-java wagon-provider-api/pom.xml
do_pkg libwagon-java
dpkg -i ../libwagon-java_*.deb

cd /tmp/httpcomponents-core/*/
ant_helper_sub libhttpcore-java httpcore
do_installpom libhttpcore-java debian/pom.xml
mh_installjar -plibhttpcore-java -l debian/pom.xml httpcore/target/httpcore-*.jar
do_pkg libhttpcore-java

cd /tmp/httpcomponents-client/*/
ant_helper_sub libhttpclient-java httpclient -Dmaven.test.skip=true
do_installpom libhttpclient-java httpclient/pom.xml
do_installjar libhttpclient-java httpclient/pom.xml
do_pkg libhttpclient-java

cd /tmp/doxia/*/
ant_helper_sub libdoxia-java doxia-logging-api -Dmaven.test.skip=true
ant_helper_sub libdoxia-java doxia-sink-api --extra-jars=`echo $(pwd)/doxia-logging-api/target/doxia-logging-api-*.jar` -Dmaven.test.skip=true
ant_helper_sub libdoxia-java doxia-core --extra-jars=`echo $(pwd)/doxia-logging-api/target/doxia-logging-api-*.jar`:`echo $(pwd)/doxia-sink-api/target/doxia-sink-api-*.jar` -Dmaven.test.skip=true
do_installpom libdoxia-java pom.xml
do_installpom libdoxia-java doxia-logging-api/pom.xml
do_installpom libdoxia-java doxia-sink-api/pom.xml
do_installpom libdoxia-java doxia-core/pom.xml
do_installjar libdoxia-java doxia-logging-api/pom.xml
do_installjar libdoxia-java doxia-sink-api/pom.xml
do_installjar libdoxia-java doxia-core/pom.xml
do_pkg libdoxia-java

cd /tmp/plexus-cipher/*/
ant_helper plexus-cipher
min_pkg plexus-cipher

cd /tmp/plexus-sec-dispatcher/*/
cp ${PBUILDD_ROOT}/scripts/cb/plexus-sec-dispatcher-gen-model.xml .
ant -buildfile plexus-sec-dispatcher-gen-model.xml
ant_helper plexus-sec-dispatcher
min_pkg plexus-sec-dispatcher

cd /tmp/plexus-interactivity-api/*/
ant_helper plexus-interactivity-api -Dmaven.test.skip=true
min_pkg plexus-interactivity-api

cd /tmp/plexus-ant-factory/*/
dpkg-buildpackage -b -uc

cd /tmp/plexus-bsh-factory/*/
dpkg-buildpackage -b -uc

cd /tmp/plexus-io/*/
dpkg-buildpackage -b -uc

cd /tmp/plexus-archiver/*/
dpkg-buildpackage -b -uc

cd /tmp/maven2-core/*/
dpkg-buildpackage -b -uc

cd /tmp/jtidy/*/
ant_helper jtidy
min_pkg jtidy

cd /tmp/doxia-sitetools/*/
cp ${PBUILDD_ROOT}/scripts/cb/doxia-sitetools-gen-model.xml doxia-decoration-model
cd doxia-decoration-model
ant -buildfile doxia-sitetools-gen-model.xml
cd ..
ant_helper_sub libdoxia-sitetools-java doxia-decoration-model
do_installpom libdoxia-sitetools-java pom.xml
do_installpom libdoxia-sitetools-java doxia-decoration-model/pom.xml
do_installjar libdoxia-sitetools-java doxia-decoration-model/pom.xml
do_pkg libdoxia-sitetools-java

cd /tmp/plexus-i18n/*/
ant_helper plexus-i18n
min_pkg plexus-i18n

cd /tmp/doxia/*/
ant_helper_sub libdoxia-java doxia-modules/doxia-module-xhtml -Dmaven.test.skip=true
cp $PBUILDD_ROOT/scripts/cb/doxia-module-fml-gen-model.xml doxia-modules/doxia-module-fml/
cd doxia-modules/doxia-module-fml
ant -buildfile doxia-module-fml-gen-model.xml
cd ../..
ant_helper_sub libdoxia-java doxia-modules/doxia-module-fml -Dmaven.test.skip=true
do_installpom libdoxia-java doxia-modules/pom.xml
do_installpom libdoxia-java doxia-modules/doxia-module-xhtml/pom.xml
do_installpom libdoxia-java doxia-modules/doxia-module-fml/pom.xml
do_installjar libdoxia-java doxia-modules/doxia-module-xhtml/pom.xml
do_installjar libdoxia-java doxia-modules/doxia-module-fml/pom.xml
do_pkg libdoxia-java

cd /tmp/doxia-sitetools/*/
ant_helper_sub libdoxia-sitetools-java doxia-site-renderer -Dmaven.test.skip=true
do_installpom libdoxia-sitetools-java doxia-site-renderer/pom.xml
do_installjar libdoxia-sitetools-java doxia-site-renderer/pom.xml
do_pkg libdoxia-sitetools-java

cd /tmp/commons-beanutils/*/
ant_helper commons-beanutils
min_pkg commons-beanutils

cd /tmp/libcommons-digester-java/*/
dpkg-buildpackage -b -uc

cd /tmp/libcommons-validator-java/*/
dpkg-buildpackage -b -uc

cd /tmp/maven-reporting-impl/*/
ant_helper maven-reporting-impl -Dmaven.test.skip=true
min_pkg maven-reporting-impl

cd /tmp/maven-plugin-tools/*/
dpkg-buildpackage -b -uc

cd /tmp/jsoup/*/
ant_helper jsoup
min_pkg jsoup

cd /tmp/wagon/*/
ant_helper_sub libwagon-java wagon-providers/wagon-file -Dmaven.test.skip=true
ant_helper_sub libwagon-java wagon-providers/wagon-http-shared
ant_helper_sub libwagon-java wagon-providers/wagon-http-lightweight --extra-jars=`echo $(pwd)/wagon-providers/wagon-http-shared/target/wagon-http-shared-*.jar` -Dmaven.test.skip=true
ant_helper_sub libwagon-java wagon-providers/wagon-http --extra-jars=`echo $(pwd)/wagon-providers/wagon-http-shared/target/wagon-http-shared-*.jar` -Dmaven.test.skip=true
ant_helper_sub libwagon-java wagon-providers/wagon-ssh-common
ant_helper_sub libwagon-java wagon-providers/wagon-ssh-external --extra-jars=`echo $(pwd)/wagon-providers/wagon-ssh-common/target/wagon-ssh-common-*.jar` -Dmaven.test.skip=true
ant_helper_sub libwagon-java wagon-providers/wagon-ssh --extra-jars=`echo $(pwd)/wagon-providers/wagon-ssh-common/target/wagon-ssh-*.jar` -Dmaven.test.skip=true
do_installpom libwagon-java wagon-providers/pom.xml
do_installpom libwagon-java wagon-providers/wagon-file/pom.xml
do_installpom libwagon-java wagon-providers/wagon-http-shared/pom.xml
do_installpom libwagon-java wagon-providers/wagon-http-lightweight/pom.xml
do_installpom libwagon-java wagon-providers/wagon-http/pom.xml
do_installpom libwagon-java wagon-providers/wagon-ssh-common/pom.xml
do_installpom libwagon-java wagon-providers/wagon-ssh-external/pom.xml
do_installpom libwagon-java wagon-providers/wagon-ssh/pom.xml
do_installjar libwagon-java wagon-providers/wagon-file/pom.xml
do_installjar libwagon-java wagon-providers/wagon-http-shared/pom.xml
do_installjar libwagon-java wagon-providers/wagon-http-lightweight/pom.xml
do_installjar libwagon-java wagon-providers/wagon-http/pom.xml
do_installjar libwagon-java wagon-providers/wagon-ssh-common/pom.xml
do_installjar libwagon-java wagon-providers/wagon-ssh-external/pom.xml
do_installjar libwagon-java wagon-providers/wagon-ssh/pom.xml
do_pkg libwagon-java

cd /tmp/maven-debian-helper/*/
dpkg-buildpackage -b -uc
# finally! -- but it's still not installable

cd /tmp/maven-shared-io/*/
ant_helper maven-shared-io -Dmaven.test.skip=true
min_pkg maven-shared-io

cd /tmp/maven-file-management/*/
cp $PBUILDD_ROOT/scripts/cb/maven-file-management-gen-model.xml .
ant -buildfile maven-file-management-gen-model.xml
ant_helper maven-file-management
mh_installpoms -plibmaven-file-management-java
mh_installjar -plibmaven-file-management-java -l pom.xml target/file-management-*.jar
do_pkg libmaven-file-management-java

cd /tmp/maven-clean-plugin/*/
ant_helper maven-clean-plugin -Duse-local-repo=true -Dmaven.generate.target=plugin:descriptor -Dmaven.test.skip=true
min_pkg maven-clean-plugin

cd /tmp/plexus-cdc/*/
dpkg-buildpackage -b -uc

cd /tmp/plexus-maven-plugin/*/
ant_helper plexus-maven-plugin -Duse-local-repo=true -Dmaven.generate.target=plugin:descriptor
min_pkg plexus-maven-plugin

cd /tmp/plexus-compiler/*/
ant_helper_sub libplexus-compiler-java plexus-compiler-manager -Duse-local-repo=true -Dmaven.generate.target=org.codehaus.plexus:plexus-maven-plugin:1.3.8:descriptor
# also recompile plexus-compiler-javac with plexus/components.xml, which
# for whatever reason isn't needed up to now even though it was needed in
# plexus-build-api
ant_helper_sub libplexus-compiler-java plexus-compilers/plexus-compiler-javac -Duse-local-repo=true -Dmaven.generate.target=org.codehaus.plexus:plexus-maven-plugin:1.3.8:descriptor -Dmaven.test.skip=true || true
# then try it again, for some reason the first time it reports an error
# validating the POM but the second time it doesn't
ant_helper_sub libplexus-compiler-java plexus-compilers/plexus-compiler-javac -Duse-local-repo=true -Dmaven.generate.target=org.codehaus.plexus:plexus-maven-plugin:1.3.8:descriptor -Dmaven.test.skip=true
do_installpom libplexus-compiler-java plexus-compiler-manager/pom.xml
do_installjar libplexus-compiler-java plexus-compiler-manager/pom.xml
do_installjar libplexus-compiler-java plexus-compilers/plexus-compiler-javac/pom.xml
do_pkg libplexus-compiler-java

cd /tmp/maven-compiler-plugin/*/
ant_helper maven-compiler-plugin -Duse-local-repo=true -Dmaven.generate.target=plugin:descriptor -Dmaven.test.skip=true
min_pkg maven-compiler-plugin

cd /tmp/plexus-digest/*/
ant_helper plexus-digest -Duse-local-repo=true -Dmaven.generate.target=org.codehaus.plexus:plexus-maven-plugin:1.3.8:descriptor package
min_pkg plexus-digest

cd /tmp/maven-install-plugin/*/
ant_helper maven-install-plugin -Duse-local-repo=true -Dmaven.generate.target=plugin:descriptor -Dmaven.test.skip=true
min_pkg maven-install-plugin

cd /tmp/maven-archiver/*/
ant_helper maven-archiver -Dmaven.test.skip=true
min_pkg maven-archiver

cd /tmp/maven-jar-plugin/*/
ant_helper maven-jar-plugin -Duse-local-repo=true -Dmaven.generate.target=plugin:descriptor -Dmaven.test.skip=true
min_pkg maven-jar-plugin

cd /tmp/maven-filtering/*/
dpkg-buildpackage -b -uc

cd /tmp/maven-resources-plugin/*/
ant_helper maven-resources-plugin -Duse-local-repo=true -Dmaven.generate.target=plugin:descriptor -Dmaven.test.skip=true
min_pkg maven-resources-plugin

cd /tmp/maven-dependency-tree/*/
ant_helper maven-dependency-tree -Duse-local-repo=true -Dmaven.generate.target=org.codehaus.plexus:plexus-maven-plugin:1.3.8:descriptor -Dmaven.test.skip=true
min_pkg maven-dependency-tree

maven-shade-plugin (no maven.test.skip)
ant_helper maven-shade-plugin -Duse-local-repo=true -Dmaven.generate.target=plugin:descriptor -Dmaven.generate.target2=org.codehaus.plexus:plexus-maven-plugin:1.3.8:descriptor
min_pkg maven-shade-plugin

cd /tmp/maven2/*/
dpkg-buildpackage -b -uc

cd /tmp/geronimo-jta-1.1-spec/*/
ant_helper geronimo-jta-1.1-spec
mh_installpoms -plibgeronimo-jta-1.1-spec-java
mh_installjar -plibgeronimo-jta-1.1-spec-java -l pom.xml target/geronimo-jta_1.1_spec-*.jar
dh_link -plibgeronimo-jta-1.1-spec-java
do_pkg libgeronimo-jta-1.1-spec-java

cd /tmp/jetty/*/
# force install libtomcat6-java
dpkg-buildpackage -d -b -uc  # because of libmx4j-java

cd /tmp/maven-doxia-tools/*/
ant_helper maven-doxia-tools -Duse-local-repo=true -Dmaven.generate.target=org.codehaus.plexus:plexus-maven-plugin:1.3.8:descriptor -Dmaven.test.skip=true
min_pkg maven-doxia-tools

cd /tmp/doxia/*/
ant_helper_sub libdoxia-java doxia-modules/doxia-module-apt -Dmaven.test.skip=true
ant_helper_sub libdoxia-java doxia-modules/doxia-module-xdoc -Dmaven.test.skip=true
do_installpom libdoxia-java doxia-modules/doxia-module-apt/pom.xml
do_installpom libdoxia-java doxia-modules/doxia-module-xdoc/pom.xml
do_installjar libdoxia-java doxia-modules/doxia-module-apt/pom.xml
do_installjar libdoxia-java doxia-modules/doxia-module-xdoc/pom.xml
do_pkg libdoxia-java

cd /tmp/maven-site-plugin/*/
ant_helper maven-site-plugin -Duse-local-repo=true -Dmaven.generate.target=plugin:descriptor -Dmaven.generate.target2=org.codehaus.plexus:plexus-maven-plugin:1.3.8:descriptor -Dmaven.test.skip=true
min_pkg maven-site-plugin

cd /tmp/maven-common-artifact-filters/*/
ant_helper maven-common-artifact-filters -Dmaven.test.skip=true
min_pkg maven-common-artifact-filters

cd /tmp/maven-plugin-testing/*/
ant_helper_sub libmaven-plugin-testing-java maven-plugin-testing-harness --extra-jars=/usr/share/java/plexus-container-default-alpha.jar -Dbuild.javaVersion=1.3
do_installpom libmaven-plugin-testing-java pom.xml
do_installpom libmaven-plugin-testing-java maven-plugin-testing-harness/pom.xml
do_installjar libmaven-plugin-testing-java maven-plugin-testing-harness/pom.xml
do_pkg libmaven-plugin-testing-java

cd /tmp/surefire/*/
patch debian/build.xml to install maven-surefire-common (and everything
else as well) in local repo
dpkg-buildpackage -d -b -uc

# And FINALLY, maven-debian-helper is installable.

cd /tmp/modello-maven-plugin/*/
rm debian/libmodello-maven-plugin-java-doc.install
fakeroot debian/rules clean
debian/rules build DEB_MAVEN_DOC_TARGET= DEB_MAVEN_INSTALL_DOC_TARGET=
fakeroot debian/rules binary DEB_MAVEN_DOC_TARGET= DEB_MAVEN_INSTALL_DOC_TARGET=

cd /tmp/plexus-component-metadata/*/
dpkg-buildpackage -b -uc

cd /tmp/maven-invoker/*/
dpkg-buildpackage -b -uc

cd /tmp/libjoda-time-java/*/
ant -Dbuild=target jar
min_pkg joda-time

cd /tmp/libxstream-java/*/
dpkg-buildpackage -b -uc

cd /tmp/commons-vfs/*/
rm -r core/src/main/java/org/apache/commons/vfs2/provider/webdav
ant_helper_sub libcommons-vfs-java core -Dmaven.test.skip=true
do_installpom libcommons-vfs-java pom.xml
do_installpom libcommons-vfs-java core/pom.xml
mh_installjar -plibcommons-vfs-java -l core/pom.xml core/target/commons-vfs2-*.jar
do_pkg libcommons-vfs-java

cd /tmp/ivy/*/
dpkg-buildpackage -b -uc

cd /tmp/groovy/*/
dpkg-buildpackage -b -uc

cd /tmp/maven-invoker-plugin/*/
dpkg-buildpackage -b -uc

cd /tmp/maven-javadoc-plugin/*/
dpkg-buildpackage -b -uc

cd /tmp/maven-dependency-analyzer/*/
dpkg-buildpackage -b -uc

# rebuild plexus-i18n with plexus/components.xml
rm -r /tmp/plexus-i18n/*/ && reextract plexus-i18n
cd /tmp/plexus-i18n/*/
dpkg-buildpackage -b -uc

cd /tmp/clirr-maven-plugin/*/
dpkg-buildpackage -b -uc

# rebuild doxia-sitetools with plexus/components.xml
cd /tmp/doxia-sitetools/*/
ant_helper_sub libdoxia-sitetools-java doxia-decoration-model -Duse-local-repo=true -Dmaven.generate.target=org.codehaus.plexus:plexus-maven-plugin:1.3.8:descriptor || true
# try it again
ant_helper_sub libdoxia-sitetools-java doxia-decoration-model -Duse-local-repo=true -Dmaven.generate.target=org.codehaus.plexus:plexus-maven-plugin:1.3.8:descriptor
do_installjar libdoxia-sitetools-java doxia-decoration-model/pom.xml
do_pkg libdoxia-sitetools-java

# rebuild maven-plugin-testing including maven-plugin-testing-tools
reextract /tmp/maven-plugin-testing
cd /tmp/maven-plugin-testing/*/
dpkg-buildpackage -b -uc

cd /tmp/maven-dependency-plugin/*/
dpkg-buildpackage -b -uc

cd /tmp/maven-antrun-plugin/*/
dpkg-buildpackage -b -uc

cd /tmp/maven-docck-plugin/*/
dpkg-buildpackage -b -uc

cd /tmp/maven-scm/*/
echo maven.test.skip=true >>debian/maven.properties
dpkg-buildpackage -b -uc
# grr, doesn't work!

...

Now rm -r /tmp/*/*/ and rebuild packages...


More information about the pkg-java-maintainers mailing list