I am trying to set up a local repository where I publish a module that has more than one .jar file artifact, and then later retrieve the artifacts.

So far it would appear publish into the local repository is working, I do see all of the artifacts making it into
the local repository folder.

The problem is when I try to resolve the module it appears only the first artifact file is getting resolved, not the other ones.

using ivy 2.1.0 on ant 1.7.1

The ivy file in the module I am trying to stuff into the local repository. I just created one for the logback module, but the idea where i wouldhave a module (e.g. logback) and more than one jar file for api and implementation pieces (e.g. -core, -classic).


<?xml version="1.0" encoding="ISO-8859-1"?>
<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd";>
<info
        organisation="qos.ch"
        module="logback"
        revision="0.9.18"
        status="integration"
        publication="20091203221300">
</info>
<publications>
<artifact name="logback-core"/>
<artifact name="logback-classic"/>
</publications>
</ivy-module>


where publishing is done in an ant task with
<ivy:resolve file="${file}"/>
<ivy:publish
        resolver="internal"
        update="true"
        overwrite="true"
        publishivy="false"
        organisation="${org}"
        module="${module}"/>

So in the following jar files exist in the local repository folder after publishing:

logback-core-0.9.18.jar
logback-classic-0.9.18.jar

[ivy:publish] :: publishing :: qos.ch#logback
[ivy:publish] published logback-classic to /home/thein/.ivy2/local/qos.ch/logback/logback-classic-0.9.18.jar [ivy:publish] published logback-core to /home/thein/.ivy2/local/qos.ch/logback/logback-core-0.9.18.jar


And then in the module where I want to resolve it, the ivy.xml dependencies
<dependencies>
<dependency org="qos.ch"  name="logback" rev="latest.integration"/>
</dependencies>


And the build.xml uses the default ivy resolve so far.
<ivy:resolve/>
<ivy:retrieve/>

And this does resolve the logback-core jar file, but not the logback-classic jar file.

At first I had thought this was because the -core jar was the first artifact. But when I reorder the artifacts list, and clean out the cache and local repository and re-publish, re-resolve, It still unexpectedly only fetches the -core one.

<publications>
<artifact name="logback-classic"/>
<artifact name="logback-core"/>
</publications>


So, am I doing it wrong to try to use a single ivy.xml file to define a 'module' that has more than one jar file (e.g. within the same configuration) to all be resolved at the same time. ?


Reply via email to