We have a lot of Ant projects and in order to get the dependencies in order, I'm going to implement Ivy with Ant.
After getting some basic configuration setups, I'm beginning to realize that there might be an issue with Jenkins doing multiple builds with various Ivy projects. For example, I thought originally it would be a good idea to do a <ivy:cleancache> as part of the clean target. I suddenly realized that this removes the entire user's cache. Imagine Job #1 running, and Job #2 starts and does an <ivy:cleancache>. Suddenly Job #1 doesn't have the cache. I was also looking at the <ivy:resolve> and <ivy:cachepath> and may have some concurrency issues with those too. When I look at $HOME/.ivy/cache, I see files with the names of "com.company.project-compile.xml" and "com.company.project-test.xml". I assume that Ivy uses these for building the <cachepath> and <cachefileset> reference IDs. What happens if I have two projects that share the same company and project name? This is possible if you're building two different versions of the same project. Imagine Company VeggieCorp.com has a project "foo" and is working on the next release 3.5 and is working on a bugfix for the last release 3.4.2. There would be a single "com-veggiecorp.foo-compile.xml" in the Ivy cache for both of these projects. How does everyone else use Ivy and avoid these issues? Or, am I imagining this is a problem? I was thinking somehow to include the Jenkins Executor Number to eliminate this conflict. I might end up with multiple local repositories, but it would eliminate the concurrency issue. If I somehow incorporate the Executor Number as part of the ivy repository location, then if Executor #1 is running and does an <ivy:cleancache>, it won't affect any other job that might be currently running. -- David Weintraub qazw...@gmail.com