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
