ant-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jean-Louis Boudart (JIRA)" <>
Subject [jira] Commented: (IVY-742) Support ivy.xml parent mechanism
Date Fri, 07 Nov 2008 13:40:45 GMT


Jean-Louis Boudart commented on IVY-742:

Currently when we publish / deliver ivy file with the extends element in it and not the merged

Even if i agree Gilles Scokart that a published element should be as much self containing
as possible, i think that publishing the merged result is not the solution.

I think that publishing with the extends element is more "refactorable".

I'll give an example :
Suppose we have a parent  like 
<ivy-module version="2.0">
    <info organisation="foobar" module="parent">
        <license name="GPL" url="..."/>
    <configurations defaultconfmapping="conf1->other1;conf2->other2">
       <conf name="conf1" />
       <conf name="conf2" extends="conf1" />
        <dependency name="other-module" conf="conf1" rev="1.0" />

And a subproject (or a child) like
<ivy-module version="2.0">
     <info organisation="foobar" module="child">
         <parent organisation="foobar" module="child" revision="latest.integration"/>
     <!-- where conf1 is inherited from parent -->
         <dependency name="meow" conf="conf1" />

A few month later my project need to update from other-module rev1.0 to other-module rev2.0.
In case where we publish the merged result, i'm not sure i'll want to publish / update ALL
my subproject to update this revision.

IMHO, keeping the extends element on published artifacts allow us a flexibility.

What do you think about that?

> Support ivy.xml parent mechanism
> --------------------------------
>                 Key: IVY-742
>                 URL:
>             Project: Ivy
>          Issue Type: New Feature
>          Components: Core
>         Environment: Any
>            Reporter: Neil Lott
>         Attachments: extendsIvyFile-ivy-r709181.patch
> Here's the email that details this feature:
> On Thu, Feb 21, 2008 at 11:22 PM, Neil Lott <>
> wrote:
> Let's say I have multiple modules each with their own ivy.xml
> <ivy-module version="2.0">
>    <info organisation="${}" module="$
> {interface.jar.prefix}"/>
>    <configurations>
>        <conf name="interface"  description="dependencies for
> interface"/>
>        <include file="path/to/included-configurations.xml"/>
>    </configurations>
>    <publications>
>        <artifact name="${interface.jar.prefix}" type="jar"
> conf="interface" ext="jar"/>
>    </publications>
>    <dependencies>
>           <dependency org="twc" name="mas-core" rev="${mas.version}"
> conf="interface->server"/>
>    </dependencies>
> </ivy-module>
> and I want them all to share an inherited configuration found in a
> file: included-configurations.xml
> <configuration>
>    <conf name="test"/>
> </configuration>
> <dependencies>
>   <dependency name="testng" rev="5.7" conf="test"/>
> </dependencies>
> so in the inherited configurations file I'd also like to include a
> dependency that goes along with that configuration.
> Is something like this possible?
> No, this is not possible in Ivy, but you can use text or xml processing
> tools to recompose your Ivy file before asking Ivy to resolve the
> dependencies of your module.
> Alternatively, since what you ask is close to maven 2 parent mechanism, I
> think it could be a nice addition to Ivy feature set. So feel free to open
> an issue, and even provide a patch :-)
> Xavier
> Thanks,
> Neil
> -- 
> Xavier Hanin - Independent Java Consultant

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message