I know that this is a complicated question, but I would like know which one is better in the case of a system that it's already in production, with a lot of bugs and really bad design at all. A really mess.
Actually, I'm asking this because I'm already converting this project to Maven and I'm facing A LOT of problems. I needed to adjust the folder structure, separate a terrible framework made at the company from the project (it was converted into a jar lib), fix a lot of details that broke the project all the time, configure the POM.xml to make everything that Ant was already doing and discover the libs that are really used in the application as their versions (a big part of the libs was renamed without the version number and the manifest file was empty).
Well, it was a really hell. I went crazy during this task and the question that followed me all the time was "And if I was converting it to Ivy? Would be easier?".
I never worked with Ivy, but as I know it work with Ant and it's easier then Maven to adapt the project. On the other hand, Maven it's much more used allover the word (Am I wrong?) and this should have a reason!
So there it's my questions:
Well, it's this. Thanks a lot!
First of all, read the Ivy / Maven comparison from the Ivy website. The key information:
First, the most important difference is that they aren't at all the same kind of tools. Apache Maven is a software project management and comprehension tool, whereas Apache Ivy is only a dependency management tool, highly integrated with Apache Ant™, the popular build management tool. So maybe a more interesting comparison would compare Apache Ant+Ivy vs Apache Maven. But this goes beyond the scope of this page which concentrates on dependency management only.
Ivy adds dependency management functionality to Ant, so really, the question in terms of what build system you use is either:
If your build is already using Ant, Ivy will be an easier transition since your build scripts don't need to be ported to a different build system.
If you decide to transition to Maven it will require more effort, because you need to rewrite your build scripts and Mavenize everything as well as configure your dependency management.
It will also be easier to port your dependency management configuration from Ivy/Ant to Maven if you ever decide to go in that direction. So Ivy dependency management would be a good stepping stone for in the long term for going to a Maven configuration.