Ivy dependency management

We started our project using jpackage.org rpms. This works great as long as you don’t have to maintain more than one branch at a time and want to upgrade the jars in those branches.

jpackage rpms install java jars in /usr/share/java/ with a version and a non-versioned symlink. e.g. struts-1.2.9.jar and struts.jar. The utilities offered in jpackage-utils are quite handy for Linux java development, we used build-jar-repository to build our lib directories during build time. This is nice as you can say build-jar-repository –symbolic project/libdir/ hibernate3 struts …

But the problem occurs when you need to upgrade struts for branch B, but still need to build branch A using an older version of struts.

Many of you are probably saying, well maven does this. But I’m not fan of maven, I’m just not so don’t even go there. We use ant as our build tool and it is quite capable, except we wanted maven’s dependency management of jars. We don’t have the time to gut our build system to replace it with maven. One of our engineers suggested Ivy. Ivy ROCKS! I created a rudimentary repo with the jars we need, and got our ant build file connected to ivy fairly quickly. I want to retain some of the simplicity we had with our jpackage setup, so I’m writing some utility scripts. Yes I know these scripts aren’t portable, but I don’t much care as I work on Linux, and deploy on Linux.

I’ll keep folks posted on how this goes. But if you’re an Ant shop and despise maven, consider using Ivy.


One thought on “Ivy dependency management

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s