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