Friday, December 19, 2008

Maven and IVY Dependency Management III

What is IVY?

Quick Introduction

Ivy is a dependency management system that works within Ant. It uses the same principles as Maven, but it's purposes are much more specialized. It can be used to handle the downloading of resources for development, production, etc. from different repositories that are setup. I have used it previously because I was not familiar with Maven and Ant was an easier option at the time

Why was it created?

As far as I can tell a few years ago there was an awareness that the issues around dependency management and build management in the open source eco-system became known. Many developers who used open-source frameworks were going through a very painful problem when adding a new product to their internal projects. This created a barrier to use open source.

IVY is one of the open-source projects that have the concept of dependency management at it's core. As far as I know, IVY is the only one that worked pretty well with Ant and had examples that were easy to understand. As IVY evolved, it became closer tied to Ant and now it is part of the Apache Ant project.

How is it relevant today?

IVY is very relevant today. Many open source projects don't use Maven and probably won't. Ivy can be bootstrapped into any build system that is using Ant, and developers can reap the benefits of dependency management without having to change their build environment to use Maven. Also, some environments have custom build/configuration management tools that may not be compatible with they way that Maven runs commands, IVY can solve that as well.

Would I recommend IVY

Here are the situations that IVY seems to be better suited for than Maven:

  • Using a commercial build system that is not compatible with Maven
  • Only want to use dependency management, and not complexity of Maven
  • A decision is made that changing all of the configuration management to use Maven would be too costly but still need dependency management.

0 comments: