Bug#458895: maven2: commons-cli.jar is the culprit
Mike Paul
mike at wyzardry.net
Tue Jan 8 06:37:47 UTC 2008
Package: maven2
Version: 2.0.8-3
Followup-For: Bug #458895
Comparing the Java commands run by Debian's /usr/bin/mvn script and the
one in Apache's release, it turns out that the problem occurs if
the -Dmaven.home= option is set to /usr/share/maven2, but not if it
refers to Apache's distribution.
However, if I rearrange the Java command line so that the -DgroupId and
-DartifactId commands come *before* the class name
(org.codehaus.classworlds.Launcher), then it works even with
-Dmaven.home=/usr/share/maven2. When they're given after the class name,
they're passed through to the application rather than interpreted by the
JVM, so it looks like Apache's version is manually handling -D options
given to the application, setting properties as if they'd been given to
the JVM, and Debian's version is not.
I ran a diff between /usr/share/maven2 and the contents of Apache's Maven
distribution, and found that there are a bunch of jars in
/usr/share/maven2/lib that aren't in the Apache distribution's lib/
directory. It turns out that /usr/share/maven2/lib/commons-cli.jar is
the one that makes the difference: if I copy that jar into a
freshly-unpacked copy of Apache's Maven distribution, the problem
occurs there too.
I don't know much about the commons-cli library, but since it does
command-line parsing, it stands to reason that it could be what's doing
the special handling of -D options given to the application. Apache's
Maven distribution includes commons-cli in its maven-2.0.8-uber.jar,
which I guess I'm overriding when I copy Debian's commons-cli.jar into
the lib/ directory.
So, it looks like Debian's commons-cli isn't handling -D options passed
to the application like Apache's does.
-- System Information:
Debian Release: lenny/sid
APT prefers unstable
APT policy: (500, 'unstable'), (500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.22-3-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages maven2 depends on:
ii libcommons-cli-java 1.1-1 API for working with the command l
ii libdoxia-java 1.0-alpha-7-1 a powerful content generation fram
ii libjsch-java 0.1.36-1 java secure channel
ii libjtidy-java 7+svn20070309-1 a Java port of HTML Tidy, a HTML s
ii libplexus-interactivity- 1.0-alpha-6-2 interactivity API for the Plexus f
ii libplexus-utils-java 1:1.4.8-1 utilities for the Plexus framework
ii libwagon-java 1.0-beta-2-2 tools to manage Maven artifacts an
ii libxalan2-java 2.7.1-1 XSL Transformations (XSLT) process
maven2 recommends no packages.
-- no debconf information
More information about the pkg-java-maintainers
mailing list