I recently updated my project structure to use IVY:Extends functionality where I declared a parent (common-ivy.xml) and extend that in all the projects (I have around 120 projects using this). I achieve that by using the technique in this thread IVY Extends via ivy:resolve .
Now the problem is that after adopting to this structure I have lost the dependency between the projects which is essential and its now breaking everything. For example see below;
common-ivy.xml
<?xml-stylesheet type="text/xsl" href="http://repository.temenosgroup.com/xsl/version-doc.xsl"?>
<ivy-module version="2.0" xmlns:e="http://ant.apache.org/ivy/extra">
<info organisation="xyz" branch="15" module="CommonDependency" revision="1.0.0" />
<configurations defaultconfmapping="test->test(*);compile->compile(*)">
<conf name="test" description="Test Time dependencies"/>
<conf name="compile" description="Compile Time dependencies"/>
</configurations>
<dependencies>
<dependency org="junit" name="junit" rev="4.8.2" conf="compile,test"/>
</dependencies>
</ivy-module>
ProjectZ ivy.xml extends common but does not define any additional dependency
<?xml-stylesheet type="text/xsl" href="http://repository.temenosgroup.com/xsl/version-doc.xsl"?>
<ivy-module version="2.0" xmlns:e="http://ant.apache.org/ivy/extra">
<info module="ProjectZ" >
<extends extendType="all"
organisation="xyz"
module="CommonDependency"
revision="1.0.0"
location="../parent/common-ivy.xml" />
</info>
<dependencies />
</ivy-module>
ProjectA ivy.xml extends common as well as define its dependency on ProjectZ
<?xml-stylesheet type="text/xsl" href="http://repository.temenosgroup.com/xsl/version-doc.xsl"?>
<ivy-module version="2.0" xmlns:e="http://ant.apache.org/ivy/extra">
<info module="ProjectA" >
<extends extendType="all"
organisation="xyz"
module="CommonDependency"
revision="1.0.0"
location="../parent/common-ivy.xml" />
</info>
<dependencies>
<dependency org="xyz" name="ProjectZ" branch="15" rev="latest-dev" conf="compile,test"/>
</dependencies>
</ivy-module>
When I am passing this list to ivy:buildlist
its returning following order;
ProjectA, ProjectZ
which is INCORRECT it should have returned;
ProjectZ, ProjectA
I am using IVY 2.3.0. Is it a bug in IVY or am I missing something?