Does anyone use Ivy to manage dependencies on specific JRE and/or JDK versions?
We have projects that need to be compiled against different JRE versions (1.4.x, 1.5, 1.6) or with a specific JDK. For example one project needs to run under 1.4.x, but compiling it against 1.5 would select overloads for certain JRE methods that only exist in 1.5+, thus breaking binary compatibility with 1.4.x. Another example is that JDK 1.6's javac handles @Override annotations differently than 1.5's javac, even with -source 1.5, therefore compilation with an actual JDK 1.5 javac is needed to ensure 1.5 source compatibilty. One issue with managing JREs/JDKs with Ivy is their size. Rt.jar alone is already 42 MB in 1.6. As for the JDKs, they would either need to be zipped, so using cachepath (to access a ready-to-use JDK) is not an option, or the artifact would just be a link to an unzipped copy of the JDK on a shared network filesystem, but we don't think it's a good idea to use JDKs remotely. Any ideas/suggestions/experiences? -- Niklas Matthies
