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

Reply via email to