我在 Java 12 上踢轮胎,并注意到在javac
最低目标 Java 级别提高到 1.7。
Execution failed for task ':com.foo:compileJava'.
> error: release version 6 not supported
你问我为什么要编译成Java 6?
即使我的代码库要求最低 Java 级别为 1.7,我仍然希望我的内核在较旧的 Java 级别编译,以便 JVM 可以启动并且我可以输出更好的错误消息,指示必须使用 Java 7+,而不是更多神秘的不兼容的类版本错误。
展望未来...
Java 6 不是什么大问题,但我主要担心的是如果 Java 只支持 N-5 版本,到 Java 14(大约一年后)我将不再能够编译到 Java 8,这可能仍然是一个非常流行的运行时版本。
我相信 Maven 可以使用toolchains解决这类问题,但 Gradle 是否提供类似的东西?
编辑:我还注意到JEP 182,它尚未获得批准,但如果获得批准将意味着仅支持 N-3 版本。