Example: Math.FMA is not available in Java 8 but we want to use it regularly.
1) Sub-Project FMA8 public class FMA { public static float fma(float a, float b, float c) { return a * b + c; } public static double fma(double a, double b, double c) { return a * b + c; } } 2) Sub-Project FMA for Java 11 and better public class FMA { public static float fma(float a, float b, float c) { return Math.fma(a, b, c); } public static double fma(double a, double b, double c) { return Math.fma(a, b, c); } } 3) Main Project dependencies as per Java Version dependencies { if (JavaVersion.current() == JavaVersion.VERSION_1_8) { implementation project(':FMA8') } else { implementation project(':FMA') } } So the Main Project will be able to call FMA.fma(a, b, c) despite the Java Version. Best regards Andreas