Bug#766392: maven-debian-helper: --no-usj-versionless does not work

Hilko Bengen bengen at debian.org
Wed Oct 22 19:15:11 UTC 2014


Package: maven-debian-helper
Version: 1.6.8
Severity: important

Hi,

I'm trying to build libspatial4j-0.4-java, a Maven based project, but
for ABI incompatibility reasons I do NOT want the spatial4j-0.4.1.jar ->
spatial4j.jar symlink in /usr/share/java.

>From reading the comments in the generated debian/lib*.poms file[1], I
understand that I should just add "--no-usj-versionless" after the
pom.xml entry to avoid creating that symlink. However, this seems not to
have the desired effect: The link in /usr/share/java is still created.

I have experimented with the other modifiers and have found that both
"--usj-name" and "--usj-version" seem to work as advertised in the
comments.

The relevant code seems to be in the copyJarToUsj() method in
debian-maven-plugin/src/main/java/org/debian/maven/plugin/SysInstallMojo.java:

        if (jarFile.exists()) {
            System.out.println("Install jar for " + artifactId + " into /usr/share/java");
            mkdir(compatSharePath());
            FileUtils.copyFile(jarFile, new File(fullCompatPath()));
            if (noUsjVersionless) {
                link(destUsjJarName(), versionedFullCompatPath());
            } else {
                link(destUsjJarName(), fullCompatPath());
                link(destUsjJarName(), versionedFullCompatPath());
            }
         }

destUsjJarName() returns a versionless .jar name. That filename should
not even be mentioned in the "--no-usj-versionless" branch, should it?

Cheers,
-Hilko

[1] Specifically this line:
#   --no-usj-versionless: don't install the versionless link in /usr/share/java



More information about the pkg-java-maintainers mailing list