Yes, thanks a lot. Gilles
> -----Original Message----- > From: Maarten Coene [mailto:[EMAIL PROTECTED] > Sent: mercredi 18 avril 2007 23:24 > To: [email protected] > Subject: Re: compile, runtime and interface configuration > > If I remember things correctly, here is how it works. > > When Ivy parses your Ivy file, it will create (internally) modify the > configuration mapping of your dependencies. > For instance, say you have: > > <configurations defaultconfmapping="conf1->other1;conf2->other2"> > <conf name="conf1" /> > <conf name="conf2" extends="conf1" /> > </configurations> > <dependencies> > <dependency name="other-module" conf="conf1" /> > </dependencies> > > When Ivy parses this file, it will construct the following dependency (in- > memory only): > <dependency name="other-module" conf="conf1->other1" /> > > > So, if you now resolve the conf2 configuration, you will only get the > other1 dependencies of your other-module. > > But here comes the confmappingoverride to the rescue ;-) When you set this > attribute to true, Ivy will construct the following dependency in memory: > <dependency name="other-module" conf="conf1->other1;conf2->other2" /> > As you can see, the defaultmappings of the extending configurations are > also added (although you didn't explicitly defined them) > > > > When you now resolve the conf2 configuration, you'll get the other2 > dependencies of your other-module. > > I hope this helps you understanding the impact of this attribute > > regards, > Maarten > > > ----- Original Message ---- > From: Gilles Scokart <[EMAIL PROTECTED]> > To: [email protected] > Sent: Wednesday, April 18, 2007 9:30:14 AM > Subject: RE: compile, runtime and interface configuration > > Unfortunately, the thread is not available anymore. > > Could you explain "the extending configurations will override the mappings > of the configurations they extend from". Because for the moment I'm not > sure that "I understand the implications" ;-). > > > Thanks, > Gilles > > > > -----Original Message----- > > From: Maarten Coene [mailto:[EMAIL PROTECTED] > > Sent: mercredi 18 avril 2007 9:01 > > To: [email protected] > > Subject: Re: compile, runtime and interface configuration > > > > Gilles, > > > > you have to set the confmappingoverride property to true to have this > > behaviour. > > See http://incubator.apache.org/ivy/doc/ivyfile/configurations.html > > > > I think this will solve your problem... > > > > regards, > > Maarten > > > > ----- Original Message ---- > > From: Gilles Scokart <[EMAIL PROTECTED]> > > To: [email protected] > > Sent: Wednesday, April 18, 2007 8:31:42 AM > > Subject: RE: compile, runtime and interface configuration > > > > Ok, here is a simplified example: A module 'User' depends on a module > > 'Service'. The module 'service' use in its interface some classes of > the > > module 'datatype', and use internally the module 'serviceImpl' > > > > Module 'user' : > > <dependencies> > > <dependency org="X" name="service" rev="x" conf="compile"/> > > </dependencies> > > > > > > Module 'service' : > > <dependencies> > > <dependency org="X" name="datatype" rev="x" conf="interface"/> > > <dependency org="X" name="serviceImpl" rev="x" conf="compile"/> > > </dependencies> > > > > > > > > When I resolve the dependencies user, I would like to have > > - in conf compile : service , datatype > > - in conf runtime : service , datatype , serviceImpl > > > > > > However, with the configuration : > > <configurations > > defaultconfmapping="runtime -> runtime(default); > > interface -> interface(default); > > compile -> interface(default)"> > > > > <conf name="compile" extends="interface"/> > > <conf name="runtime" extends="compile"/> > > <conf name="interface"/> > > </configurations> > > > > I think I have the configuration runtime containing only service and > > datatype. > > > > > > Gilles > > > > > > > > > -----Original Message----- > > > From: Xavier Hanin [mailto:[EMAIL PROTECTED] > > > Sent: mardi 17 avril 2007 17:28 > > > To: [email protected] > > > Subject: Re: compile, runtime and interface configuration > > > > > > On 4/17/07, Gilles Scokart <[EMAIL PROTECTED]> wrote: > > > > > > > > > > > > > > > > > > > > > > > > Hi, > > > > > > > > > Hi, > > > > > > I try to to define a system that use three types of configurations : > > > > compile, runtime and interface. > > > > > > > > > > > > > > > > The compile dependencies are the one required to compile my modules. > > > > > > > > The runtime dependencies are the one required to run my modules. > > > > > > > > The interface dependencies are dependencies that I use in the > > interface > > > of > > > > my module. The means that the users of my module should > transitively > > > > inherit those interfaces in their compile (and runtime) > dependencies. > > > > > > > > > > > > > > > > > > > > > > > > Here is how I tried to declare those configurations : > > > > > > > > > > > > > > > > <configurations defaultconfmapping=" runtime -> runtime(default); > > > > > > > > interface -> > interface(default); > > > > > > > > compile -> > interface(default)"> > > > > > > > > > > > > > > > > <conf name="compile" extends="interface" > description="the > > > > compile-time dependencies" /> > > > > > > > > <conf name="runtime" extends="compile " description="The > > > > runtime > > > > configuration"/> > > > > > > > > <conf name="interface" description="The interface > > > > configuration"/> > > > > > > > > </configurations> > > > > > > > > > > > > > > > > > > > > > > > > When I have A depends in B (compile dep) and B depends on C (compile > > > dep), > > > > I > > > > was expecting to have implicitly A depends on C (runtime dep). But > it > > > > seems > > > > not to be. > > > > > > > > > Could you be more precise when you talk about your deps configurations > > > (giving the dependency element of each ivy file), because I'm not sure > > how > > > you use the defaultconfmapping you have defined. > > > > > > Xavier > > > > > > I have the impression that ivy first resolve the compile dependencies > > > > transitively, then resolve runtime dependencies transitively and add > > the > > > > one > > > > obtained by the compile dep resolution. > > > > > > > > > > > > Is my understanding correct? What are the other alternative to do > what > > I > > > > want to do? Am I forced to flag all compile dependencies also as > > > runtime > > > > dependencies? > > > > > > > > > > > > > > > > > > > > > > > > Thanks for your help. > > > > > > > > > > > > > > > > Gilles > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > Learn Ivy at ApacheCon: http://www.eu.apachecon.com/ > > > Manage your dependencies with Ivy! > > > http://incubator.apache.org/ivy/ > > > > > > > > > > > > __________________________________________________ > > Do You Yahoo!? > > Tired of spam? Yahoo! Mail has the best spam protection around > > http://mail.yahoo.com > > > > > > __________________________________________________ > Do You Yahoo!? > Tired of spam? Yahoo! Mail has the best spam protection around > http://mail.yahoo.com
