Ivy is suposed to handle circular dependencies. And it is suposed to work on big project. I persoanlly use it on a project with +/- 60 modules to build with +/- 40 external modules and it works (but we don't have circualar dependencies).
So the things you can certainly do is raising a jira issue. It seems to be a severe problem so we will probably handle it soon. Depending on the time you want to spend on it, you can of curse also dig into the code, propose a unit test illustrating your problem, or propose a patch for it :-) (See [1]). Thanks anyway to have reported the problem. [1] http://incubator.apache.org/ivy/history/trunk/dev.html 2007/8/13, Jeffrey Blattman <[EMAIL PROTECTED]>: > Ivy does add the memory requirements of ant, so you might just trying > increasing the heap and stack size when the build runs. it might be that > simple. > > Colin Fleming wrote: > > Hi all, > > > > We're trying to convert an existing large project to use Ivy. It's an > > OSGi project, so it's already sorted into modules (bundles) and Ivy > > makes a lot of sense. The problem is that the project has a lot of > > modules (83) and since we're moving from a monolithic project it's > > massively interdependent, there are circular dependencies all through > > it. When we try to run an ivy:buildlist on the whole project, it just > > barfs with a java.lang.OutOfMemoryError: Java heap space. If we try to > > run the buildlist giving it a single module as a root it gives a > > java.lang.StackOverflowError: > > > > Caused by: java.lang.StackOverflowError > > at java.util.HashMap.hash(HashMap.java:264) > > at java.util.HashMap.get(HashMap.java:320) > > at > > org.apache.ivy.ant.IvyBuildList.processFilterNodeFromRoot(IvyBuildList.java:331) > > at > > org.apache.ivy.ant.IvyBuildList.processFilterNodeFromRoot(IvyBuildList.java:334) > > at > > org.apache.ivy.ant.IvyBuildList.processFilterNodeFromRoot(IvyBuildList.java:334) > > at > > org.apache.ivy.ant.IvyBuildList.processFilterNodeFromRoot(IvyBuildList.java:334) > > at > > org.apache.ivy.ant.IvyBuildList.processFilterNodeFromRoot(IvyBuildList.java:334) > > etc etc > > > > The program outputs are available here: > > > > http://colinfleming.net/all.html (caution - 11Mb) > > http://colinfleming.net/compilation.html > > > > Is there anything that we can do to get this up and running? Obviously > > we have a lot of refactoring to do, but if possible I'd at least like > > to get the thing building first. Is this an Ivy bug or does it simply > > not handle circular dependencies well? > > > > Thanks in advance, > > Colin > > > > > -- Gilles SCOKART
