ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Xavier Hanin" <xavier.ha...@gmail.com>
Subject Re: compile, runtime and interface configuration
Date Thu, 19 Apr 2007 11:53:05 GMT
On 4/18/07, Maarten Coene <maarten_coene@yahoo.com> wrote:
>
> 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


Maybe we should update the documentation to add this (or review the link to
refer to this thread). BTW I was surprised to see that the original thread
is not on the backup at www.jaya.free.fr. I'll see if I can find a way to
restore a more complete backup.

Xavier

regards,
> Maarten
>
>
> ----- Original Message ----
> From: Gilles Scokart <gscokart@gmail.com>
> To: ivy-user@incubator.apache.org
> 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:maarten_coene@yahoo.com]
> > Sent: mercredi 18 avril 2007 9:01
> > To: ivy-user@incubator.apache.org
> > 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 <gscokart@gmail.com>
> > To: ivy-user@incubator.apache.org
> > 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:xavier.hanin@gmail.com]
> > > Sent: mardi 17 avril 2007 17:28
> > > To: ivy-user@incubator.apache.org
> > > Subject: Re: compile, runtime and interface configuration
> > >
> > > On 4/17/07, Gilles Scokart <gscokart@gmail.com> 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
>



-- 
Learn Ivy at ApacheCon: http://www.eu.apachecon.com/
Manage your dependencies with Ivy!
http://incubator.apache.org/ivy/

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message