Problem with handling of dependencies in POMs
Hi,
Sorry, I'm still trying to build java packages for Debian! mh_make is
failing because it's mangling a dependency specified in the POM of a
package that the thing I'm trying to build is depending on (if you see
what I mean!).
Executive summary: mh_make should be trying to find
commons-httpclient:commons-httpclient:jar:3.x, but is actually failing
to find commons-httpclient:commons-httpclient:jar:debian
More details:
The package I'm trying to build has:
<dependency>
<groupId>org.opensaml</groupId>
<artifactId>opensaml</artifactId>
<version>2.6.2-SNAPSHOT</version>
</dependency>
which a maven.rules rule is transforming to:
<dependency>
<groupId>org.opensaml</groupId>
<artifactId>opensaml</artifactId>
<version>debian</version>
</dependency>
now my libopensaml2-java package[0] includes
/usr/share/maven-repo/org/opensaml/opensaml/debian/opensaml-debian.pom
which has (amongst other things):
<dependency>
<groupId>org.opensaml</groupId>
<artifactId>openws</artifactId>
<version>debian</version>
</dependency>
My libopenws-java package[0] includes
/usr/share/maven-repo/org/opensaml/openws/debian/openws-debian.pom
which has (amongst other things):
<properties>
<debian.commons-httpclient.commons-httpclient.originalVersion>3.1</debian.commons-httpclient.commons-httpclient.originalVersion>
</properties>
and
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.x</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
mh_make gets through the usual interactive part of asking about
dependencies it can't find in the Debian maven setup, but then blows up:
[INFO] Scanning for projects...
[INFO]
------------------------------------------------------------------------
[INFO] Building Shibboleth Common Library
[INFO] task-segment:
[org.debian.maven:maven-packager-utils:1.6.6:generate] (aggregator-style)
[INFO]
------------------------------------------------------------------------
[INFO]
------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO]
------------------------------------------------------------------------
[INFO] Failed to resolve artifact.
Missing:
----------
2) commons-httpclient:commons-httpclient:jar:debian
[snip suggestion of downloading & building it]
Path to dependency:
1) edu.internet2.middleware:shibboleth-common:jar:1.4.1-SNAPSHOT
2) org.opensaml:opensaml:jar:debian
3) org.opensaml:openws:jar:debian
4) commons-httpclient:commons-httpclient:jar:debian
I.e. it's failing to find
commons-httpclient:commons-httpclient:jar:debian (which isn't in the
maven repo), but as far as I trace the dependencies, it should in fact
be looking for 3.x (which is in the maven repo).
If you want to see the source, then it's
libshib-common-java_1.4.0.orig.tar.bz2 (in the directory I link to in
[0]), and the debian/ directory as far as mh_make has created it along
with the edited pom.xml is in java-shib-common-changes.tar.bz2
What am I doing wrong, and how do I fix it? Creating a maven.rules entry
to try and force commons-httplib to 3.x doesn't make any difference.
Thanks,
Matthew
[0] available from http://www.chiark.greenend.org.uk/~matthewv/javadebs/
Reply to: