[
https://issues.apache.org/jira/browse/IVY-1656?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18012674#comment-18012674
]
Eric Milles commented on IVY-1656:
----------------------------------
https://github.com/apache/ant-ivy/pull/112/commits/0b8bce916ba602c521f7a5c7f04184b21987351b
> deliver writes extended configuration dependencies after local dependencies
> ---------------------------------------------------------------------------
>
> Key: IVY-1656
> URL: https://issues.apache.org/jira/browse/IVY-1656
> Project: Ivy
> Issue Type: Bug
> Components: Ant
> Reporter: Eric Milles
> Assignee: Maarten Coene
> Priority: Major
> Fix For: 2.6.0
>
>
> Given two Ivy modules, where one extends the other:
> {code:xml}
> <ivy-module
> version="2.0"
> xmlns:m="http://ant.apache.org/ivy/maven"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
> <info module="One" organisation="xxx" />
> <configurations>
> <conf name="master" />
> </configurations>
> <dependencies defaultconf="master"
> defaultconfmapping="*->master,runtime()">
> <dependency org="abc" name="def" rev="1.2.3" />
> </dependencies>
> </ivy-module>
> {code}
> {code:xml}
> <ivy-module
> version="2.0"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
> <info module="Two" organisation="xxx">
> <extends module="One" organisation="xxx"
> extendType="configurations,dependencies" location="../One/ivy.xml"
> revision="latest" />
> </info>
> <dependencies defaultconf="master"
> defaultconfmapping="*->master,runtime()">
> <dependency org="www" name="xyz" rev="1.2.3" />
> </dependencies>
> </ivy-module>
> {code}
> Ivy resolves abc:def:1.2.3 then www:xyz:1.2.3. However, when delivering, the
> combined ivy.xml is written as:
> {code:xml}
> <ivy-module
> version="2.0"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
> <info module="Two" organisation="xxx">
> <!-- <extends module="One" organisation="xxx"
> extendType="configurations,dependencies" location="../One/ivy.xml"
> revision="latest" /> -->
> </info>
> <configurations>
> <conf name="master" />
> </configurations>
> <dependencies defaultconf="master"
> defaultconfmapping="*->master,runtime()">
> <dependency org="www" name="xyz" rev="1.2.3" />
> <!-- dependencies inherited from xxx#One;working@hostname -->
> <dependency org="abc" name="def" rev="1.2.3" />
> </dependencies>
> </ivy-module>
> {code}
> Thus when Ivy re-resolves this the order is reversed. If a conflict manager
> other than "latest version" is used, this can be a problem for a transitive
> dependency of both deps. And when converted to Maven metadata with makepom,
> "nearest definition" definitely comes into play.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)