we had the same problem. however, my conclusion was that using Ivy was
not the root cause but rather the straw that broke the camel's back. the
research i did showed the using the "ant" and "antcall" targets are
memory hungry and are at the root cause. i assume when you say "iterate
over a series of subprojects" you are using the "ant" task.
you can work around this by setting the MaxPermSize to some larger
value. you can set this in your environment by doing:
$ export ANT_OPTS="$ANT_OPTS -Xmx... -XX:MaxPermSize=..."
where ... are some values you'll need to play with.
jgunz wrote:
I'm getting "java.lang.OutOfMemoryError: PermGen space" errors when using
subant calls to iterate over a series of sub-projects which utilize Ivy. It
seems each call has to re-parse the ivysettings.xml file and continually
eats up memory.
I've mocked up a simple example project that illustrates the problem. Ignore
the Groovy usage; I just did that to loop over the same sub-project multiple
times to simulate the effect of having numerous sub-projects.
I recommend reducing Ant's maximum memory size so that you see the problem
faster by setting ANT_OPTS=-XX:MaxPermSize=32m
The following project should run out of the box and generate an
OutOfMemoryError.
http://www.nabble.com/file/p12097331/ivySubantFailure.zip
ivySubantFailure.zip