Hello, I am using ivy 2.4.0 and having strange results on ivy resolves.
>From time to time some of my projects don't resolve the configured dynamic >revisions correctly. At the end of the resolve process ivy prints out numerous >evicted revisions and the latest-revision strategy selects no revision. This >leads to build failtures as you may guess as the classpath is incomplete. Now in the past some random shifting of the dependency lines in the ivy.xml did fix that but I really like to know what happens here and how I can fix that once and for all. So this is an example of the output for the evicted revisions: [ivy:resolve] :: resolution report :: resolve 20428ms :: artifacts dl 1259ms [ivy:resolve] :: evicted modules: The first two libraries are common 3rd party libraries which may change in the minor versions. They are just transitive dependencies of other artifacts that address them by: rev="5.0.+" [ivy:resolve] com.mycompany.platform#logging;5.0.2 by [] ([latest-revision]) in [compile] [ivy:resolve] com.mycompany.platform#util;5.0.2 by [] ([latest-revision]) in [compile] Others are direct dependencies that are in the projects ivy.xml: <dependency org="com.mycompany.product" name="Checkpoint" rev="16.1.0.+" conf="compile->default"/> <dependency org="com.mycompany.product" name="WorkcenterCalendar" rev="16.1.0.+" conf="compile->default"/> The related output of the evicted section is: [ivy:resolve] com.mycompany.product#Checkpoint;16.1.0.0-SNAPSHOT by [com.mycompany.product#Checkpoint;16.1.0.+] in [compile] [ivy:resolve] com.mycompany.product#WorkcenterCalendar;16.1.0.0-SNAPSHOT by [com.mycompany.product#WorkcenterCalendar;16.1.0.+] in [compile] [ivy:resolve] com.mycompany.product#Checkpoint;16.1.0.+ by [] ([latest-revision]) in [compile] [ivy:resolve] com.mycompany.product#WorkcenterCalendar;16.1.0.+ by [] ([latest-revision]) in [compile] So if i read this correctly ivy decides to replace the (correctly) resolved revision 16.1.0.0-SNAPSHOT with the dynamic revision 16.1.0.+ and after doing that it replaces this revision with nothing ?? There are numerous other dependencies declared exactly the same way that do not show this behavior but resolve correctly to their SNAPSHOT revision. I have configured the resolvers in ivysettings.xml like this (chain resolvers get the same attributes as well): <macrodef name="resolve"> <attribute name="repository" /> <ibiblio name="@{name}" m2compatible="true" latest="my-strategy" root="${ivy.repository.root}/@{repository}" checkmodified="true" changingMatcher="regexp" changingPattern=".*-SNAPSHOT.*" /> </macrodef> The special strategy is just to give some versions a explicit ordering: <latest-strategies> <!-- special sorting for version number --> <latest-revision name="my-strategy" usedefaultspecialmeanings="false"> <specialMeaning name="Final" value="5" /> <!-- general availability --> <specialMeaning name="GA" value="4" /> <!-- developement version --> <specialMeaning name="SNAPSHOT" value="3" /> <!-- release candidate --> <specialMeaning name="RC" value="2" /> <!-- beta version --> <specialMeaning name="Beta" value="1" /> <!-- alpha version --> <specialMeaning name="Alpha" value="0" /> </latest-revision> </latest-strategies> I used to see this effect with ivy-2.3.0 and without a special latest-strategy too. Anyone has ideas why this is happening and how to fix that? Any help is apreciated! Daniel _____________________________________ www.salt-solutions.de<http://www.salt-solutions.de> Geschäftsführer: Dr. Bernhard Blüthner, Dieter Heyde, Markus Honold Sitz: München, AG München, HRB 146081