On Sat, 2 Nov 2019 at 20:32, Matt Sicker <boa...@gmail.com> wrote: > The more JDKs you require in the build, the harder it > is to set up. If you target Java 8 but build at a newer release, you could > possibly get away with a single JDK plus an API checker to avoid using new > things. >
Talking of API checkers, Animal Sniffer README states: Please note this plugin is now in maintenance level as the exact same feature can be now easily achieved using the --release flag from Javac So, it seems it's primarily about defining a Java baseline. If it's set at 8, that's it. If it's set at the latest-and-greatest, or at the latest LTS version, then the rules must be devised for handling the code that, say, peruses JPMS or the HTTP/2 client from Java 11, if Ivy would still be usable on Java 8 runtime. AFAICS, Ant is going with ad hoc, and that's partly the reason why e.g. PR#89 is stuck. But, what's even more interesting than compiling is running unit tests. I'm afraid there's no way of avoiding multiple JDKs for that. "Write once, test everywhere" :-) Gintas