This is a quick rant while i wait for Eclipse to stop hogging all my CPU power.
Recently I took a look into Ivy as an alternative to switching one project's entire build system to Maven. I figure, if it lets me do dependencies like Maven, then at least I can have maven/ant projects work together until we can convince everyone maven is a good idea.
I'd been using Maven so long for new projects (and by so long I mean literally only a few months), that I forgot how much work it was to write an ANT script. No convention, tons of documentation to read for each type of task... It was a pain. That and Ivy is overly complex. They don't really provide a "simple example" that lets you hook into an existing Maven repository. Ok, so they do have a nice build file example, but it is just that *VERY* simple. If, like me, you need to do something only moderately simple, you need to start reading through documentation.
It took me half-an-hour to realize that the "connector" to hook up to a Maven Repository was called "ibiblio". WTF! Ibiblio happened to be the biggest maven repository, but with things like Archiva, we have a company maven repo that just handles company-proprietary packages. I was attempting to hook ivy into this, the whole time thinking "If I was using Maven, I'd already be done".
I've seen a lot of abuse on maven for having bad documentation and being overly complicated. Yes, Maven has documentation sprawled over many different internet websites, and it's a very complicated, powerful piece of software. Don't tell me Ivy is any simpler. Sure it only handles dependencies, but it puts a lot of burden on the build-file. At least with Maven, I have a lot of convention-over-configuration I can simplify my life with. With ivy, it's not that easy. In fact, I spent *MUCH* less time learning maven and making build files. The majority of my time with maven was spent setting up "corporate infrastructure" (i.e. Archiva, Continuum & and a Company Master POM).
I'll admit, Ivy is impressive. It really looks to do an amazing job of managing dependencies, and if I ever had a really complicated need, i would use it. However, for my general needs, it's a little overkill. It's also not something I can inject into an existing app in 30 minutes or less (my usual amount of play time for anything).
Sometimes limitations can be freeing. At least with maven I don't have to think about what to name targets, where dependencies should be downloaded, etc.