Компиляция для более низкого уровня Java, чем разрешено Javac с помощью Gradle
Я пинаю шины на 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 может обойти эту проблему с помощью наборов инструментов, но предлагает ли Gradle что-нибудь подобное?
РЕДАКТИРОВАТЬ: Я также заметил JEP 182, который еще не утвержден, но если утвержден будет означать, что поддерживаются только релизы N-3.