@CedricChampeau in a deep blog post.
multi-release jars allow you to package several versions of the same class, for consumption by different runtimes. For example, if you run on JDK 8, the Java runtime would use the Java 8 version of the class, but if you run on Java 9, it would use the Java 9 specific implementation.
If you have programmed for Android, you probably are aware of variants.
Variant-aware dependency management is the idea that modules and artifacts are different beasts. With the same source files, you can target different runtimes, with different requirements.
Exciting to see Android + Java pollination
So far this feature has only been enabled for Android development, but we’re currently developing it for Java and native too!