[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: