Eric Milles created IVY-1656: -------------------------------- Summary: 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
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)