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: Does configuration be transitive ??
Date Wed, 28 Mar 2007 19:51:13 GMT
On 3/28/07, Gregoire Henry <ghynxmail@gmail.com> wrote:
>
> Hello
> I am facing with some strange behaviour ...
>
> I have some dependencies like that :
>
> Mod A depends from Mod B/rev2 in conf default->C1
> Mod A depends from Mod C/rev1 in conf default->C2
>
> Mod C/rev1 depends from Mod B/rev1 in conf default->C3
>
>
> In my repository , i have Mod B/rev2/C1 , Mod B/rev1/C3 and Mod C/rev1/C2
> but I don't have Mod B/rev2 in conf C3 ...
>
>
> I'm using latest-revision strategy .
>
> When i make the resolve ,
> ModB/rev1 is evicted by ModB/rev2 ... ok
>
> but ivy try to resolve ModB/rev2 in configuration C3 for satisfying the
> Mod
> C/rev1 dependencies .. and fail because this conf doesn't exist ...
>
> There is something strange in this behaviour ... ,it'sa "configuration
> migration" from Mod B/rev1 to ModB/rev2 as if ivy expects that all
> revisions
> should always have the same configuration .....
>
> Is this the normal way ?


I don't know if it's the normal way, but it's the way Ivy goes. The problem
is that it's not easy to solve this problem, and according to what I've seen
so far, most of the time configurations are kept over compatible versions.
If versions are really incompatible, the conflict shouldn't be solved by a
simple eviction, but something more complex, like using complex classloaders
to keep several versions in the same vm.

Anyway, the solution to this problem is to use fallback configurations: make
modC/rev1 depend on modB/rev1 C3(*) or C3(default) to have it use C3 conf if
present, otherwise take all conf or the default conf or whatever you want...

HTH,

- Xavier

Thank's
> Greg
>

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