We have a Java product that uses a lot of FOSS/COTS software. A number of our "externals" use the same jar product, but a different version. For example, Ant 1.6.5 and Ant 1.7.0; or multiple versions of xerces. What's I'm concerned about is that the behavior of our application may change or worse, epic fail if we change the order in which the classpath is put together. We use vbs scripts to set environment variables for each product's classpath, and then Ant xml files which reference those environment variables.
So, a couple of questions:
- How do I manage multiple versions of the same jar when using so many different externals? Surely I can't just find all of the unique jars and put them on one big classpath - or can I?
- Is there a smarter way to put our build dependencies (and classpath) together?
One positive step is that I'm planning on using wildcards to grab all of the jars. But it's really just the import order problem that I'm mostly concerned about.
Note: Don't shoot the messenger. This system was put into place several years ago, long before I got here. I'm just the cleanup man.