I'm rewriting the servlet assignments for the Cattle Drive, and I'm trying to decide whether it would be worthwhile to include Ivy in the build process for dependency management. The servlets assignments are of course all dependent on the servlet API for the compile. A couple of the later ones will now also use JSTL, and so will have that as a deploy dependency.
The old assignments use Ant to build and deploy, and just require the library jars exist in each project directory. It would be slick to avoid all this copying of jars around and just list dependencies in the build file instead, but I'm reluctant to convert the assignments to Maven. I haven't used Ivy though. How hard is it to install and configure for this purpose, i.e., to resolve dependencies and download them from public repositories when necessary? The servlets section of the Cattle Drive already has a pretty sharp learning curve, and I worry about overwhelming the noobs.
I think Ivy would be a step too far, both in complexity and in reach. My impression is that it's not nearly as widely used as either Maven or Ant-with-all-libraries-statically-included, so the value of learning it early on would be dubious.
I agree with Ulf. I feel the same way about Maven/Nexus. Not because it is hard per se. But because it is harder to troubleshoot. And because I'd like new developers to understand what is going on and not have a "magic" tool in the way.
Thanks for the advice. You're both right. I hate the niggly finding and downloading of jars, but that's probably the lesser of two evils. I definitely like Maven's ability to find my dependencies (and my dependencies' dependencies) and get them all in the right scope, but it was tough for me to learn at first ... much wailing and gnashing of teeth. It's too bad Ant doesn't just come with Ivy functionality built in.