ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pier Fumagalli <ian...@gmail.com>
Subject Little problem with "strict" conflict manager...
Date Fri, 13 Jun 2008 11:16:18 GMT
Hello everyone...

I'm wondering if someone here can lend a hand to figure out one little  
problem. I'm trying to have an uber-strict dependency resolution (if  
two projects don't depend on the same version of another one, I want  
the build to fail) and I've tried to use the "strict" conflict  
manager, but it doesn't seem to work.

Here is my scenario:

                             +-----------+
                             | MyProject |
                             +-----------+
                               /       \
                  depends on  /         \  depends on
                             /           \
+-----------------------------+       +----------------------+
| CommonDependancyProject 4.1 |       | SomeOtherProject 1.0 |
+-----------------------------+       +----------------------+
                                                 |
                                                 | depends on
                                                 |
                                +-----------------------------+
                                | CommonDependancyProject 3.0 |
                                +-----------------------------+


So, as you can see from the drawing above, I have the following:

* MyProject depends on:
   -> CommonDependancyProject version 4.1
   -> SomeOtherProject version 1.0

* SomeOtherProject depends on:
   -> CommonDependancyProject version 3.0

In my case, CommonDependencyProject has introduced some incompatible  
changes between version 4.1 and 3.0, and I want my build to fail if  
this kind of collision is detected, but apparently Ivy happily ignores  
it and picks up CommonDependancyProject 4.1 ignoring entirely 3.0...

I tried the following to solve this:

* I used the "strict" ConflictManager by adding in my Ivy settings file:
     <settings defaultResolver="default"  
defaultConflictManager="strict"/>

* Tried defining a new conflict manager and setting that as default:
     <settings defaultResolver="default"  
defaultConflictManager="uberstrict"/>
     <conflict-managers>
       <regexp-cm name="uberstrict" regexp="(.*)"/>
     </confluct-managers>

* Tried writing my own conflict resolver, but nothing returned by  
"resolveConflicts" seems to work

Simply my "CommonDependancyProject" version 3.0 is never-ever passed  
to the conflict resolver, apparently.

I'm using 2.0 beta 2 but I've tried to download the latest head from  
SVN and the behavior is the same. What am I doing (obviously) wrong?

	Pier


Mime
View raw message