[
https://issues.apache.org/jira/browse/IVY-1174?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13059997#comment-13059997
]
Pit Waldispühl commented on IVY-1174:
-------------------------------------
We've got the same problem (with Ivy 2.1.0 - 20090925235825) in our company.
We've started using Ivy without configurations. Configurations were introduced
later. Problems now occure when a dependency "A", revision "N" without
configuration (i.e. having 'default' configuration) is evicted and resolved to
a revision "M" having a specified (i.e non-default) configurations. Ivy will
search "M" with 'default' configurations which doesn't exist, leading to an
unresolved dependency
E. g.:
Rev 1.0.0 of ModA is used by ModB, rev 1.0.0. No configurations are used.
<!-- ModB; 1.0.0 -->
<ivy-module [..]
<info module="ModB" [..]
[..]
<dependencies>
<dependency name="ModA" rev="1.0.0" [..]
[..]
[..]
In Version 2.0.0 of ModB, a configuration 'x' is introduced. ModB still depends
on ModA 1.0.0
<!-- ModB; 2.0.0 -->
<ivy-module [..]
<info module="ModB" [..]
[..]
<configurations>
<conf name="x" [..]
[..]
<dependencies>
<dependency name="ModA" rev="1.0.0" conf="x->default" [..]
[..]
[..]
ModC,1.0.0 with configuration 'x' depends on ModB, 2.0.0 as well as on a new
rev 2.0.0 of ModA using configurations 'x' as well.
<!-- ModA; 2.0.0 -->
<ivy-module [..]
<info module="ModA" [..]
[..]
<configurations>
<conf name="x" [..]
[..]
[..]
<!-- ModC; 1.0.0 -->
<ivy-module [..]
<info module="ModC" [..]
[..]
<configurations>
<conf name="x" [..]
[..]
<dependencies>
<dependency name="ModA" rev="2.0.0" conf="x->x" [..]
<dependency name="ModB" rev="2.0.0" conf="x->x" [..]
[..]
[..]
Ivy produces output like
[ivy:resolve] == resolving dependencies
[..]#ModC;working@[..]->[..]#ModA;2.0.0 [x->default]
So instead of rev. 1.0.0 of ModA, Ivy correctly resolved rev. 2.0.0 but with
the wrong configuration 'default' of the evicted rev 1.0.0. This leads to:
[ivy:resolve] ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:resolve] :: UNRESOLVED DEPENDENCIES ::
[ivy:resolve] ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:resolve] :: [..]#ModA;2.0.0: configuration not found in
[..]#ModA;2.0.0: 'default'. It was required from [..]#ModC;1.0.0 x
> resolved module can include configurations of evicted versions
> --------------------------------------------------------------
>
> Key: IVY-1174
> URL: https://issues.apache.org/jira/browse/IVY-1174
> Project: Ivy
> Issue Type: Bug
> Components: Core
> Affects Versions: 2.1.0-RC2
> Reporter: Willem Verstraeten
> Attachments: IVY-1174.zip
>
>
> Scenario:
> module_parent, with two revisions:
> 1.0, which has configurations default and runtime, where default extends
> runtime
> 1.0.3, which only has configuration default
> module_middle, which depends on module_parent:1.0
> module_between, which depends on module_parent:1.0.3
> module_entry, which depends on module_middle and module_between
> When resolving module_entry, version 1.0 of module_parent will be evicted,
> but ivy will complain about module_parent not having a runtime configuration.
> Apparently, ivy has mashed the configurations from the 1.0 version (which was
> evicted) with those of 1.0.3, where there actually is no runtime
> configuration.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira