У меня есть проект, использующий Java 8.
До сих пор в pom мы указывали исходную и целевую версии как 1.8:
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
Мы хотим использовать опцию "-release" Java 9+ и добавили следующее:
<maven.compiler.release>1.8</maven.compiler.release>
Но теперь мы получаем следующую ошибку:
Fatal error compiling: release version 1.8 not supported
Мы используем maven 3.5.3, плагин maven-compiler в версии 3.8.0 и Java 10 для компиляции проекта.
Что здесь не так?
Ответ 1 · рейтинг 13 · Naman
Это должно работать
<maven.compiler.release>8</maven.compiler.release>
поскольку атрибут <release> работает только с основными версиями выпусков.
Кстати, это предполагает, что это параметр, используемый в фактической конфигурации плагина компилятора, примерно так:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<release>${maven.compiler.release}</release>
</configuration>
</plugin>
Ответ 2 · José Junior
В моем случае мне пришлось изменить выпуск, источник и цель.
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.release>8</maven.compiler.release>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>