Решение ошибки Maven: неверная целевая версия: 1.8
Быстрый ответ
Если вам срочно нужно устранить ошибку компиляции Java 1.8, установите в качестве JDK версию 1.8. В Maven добавьте следующий код:
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
Те, кто использует Gradle, должны обновить файл build.gradle
согласно приведённому ниже образу:
sourceCompatibility = '1.8' // устанавливаем исходную совместимость на 8!
targetCompatibility = '1.8' // задаём целевую совместимость равной 8!
Проверьте, корректно ли переменная окружения JAVA_HOME
указывает на JDK 1.8, и запустите процесс сборки с использованием наилучшей доступной вам версии JDK.
На пути к дружбе с переменными окружения
Для того чтобы JAVA_HOME и файл POM Maven эффективно работали вместе, следует корректно настроить переменные окружения.
- Для Windows:
- Откройте панель "Системные свойства" через меню Параметры или через Панель управления.
- Перейдите в "Дополнительные параметры системы" и откройте "Переменные среды".
- Задайте JAVA_HOME таким образом, чтобы он указывал на каталог с JDK 1.8.
- Для Unix-подобных систем (таких как Linux, macOS):
- Отредактируйте
~/.bashrc
или~/.zshrc
, добавив строкуexport JAVA_HOME=<путь-к-jdk-1.8>
.
- Отредактируйте
Maven и Java: история их совместной работы
Неправильное сочетание Maven и вашего JDK может привести к ошибкам. Убедитесь, что плагин maven-compiler-plugin настроен на работу с требуемой версией JDK.
Вот предпочтительная конфигурация maven-compiler-plugin для работы с Java 1.8:
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version> <!-- убедитесь, что версия поддерживает Java 1.8 -->
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
План Б: Когда JDK 1.8 недоступна
Если вы не используете JDK версии 1.8, просто измените целевую версию в вашем файле POM Maven или скрипте сборки Gradle так, чтобы они соответствовали версии JDK, которую вы установили.
Визуализация
Представьте ошибку компилятора Java как попытку открыть новый замок с помощью старого ключа:
| сценарий | результат |
| ---------------------------------- | ----------------------- |
| Старый ключ (Java 1.8) | 🗝️ |
| Современный замок (Настройки компилятора) | 🔒 |
| Попытка открыть | 🗝️🚫🔒 |
Несоответствие инструментов: Java 1.8 выглядит как старый ключ, который не подходит для нового замка, установленного в настройках вашей сборки.
Чтобы отпереть замок:
- Установите JAVA_HOME на JDK 1.8.
- Настройте ваши файлы Maven так, чтобы элементы
<source>
и<target>
были равны 1.8.
Согласовав JAVA_HOME и POM Maven, вы готовы к успешной компиляции:
🗝️🔧➡️🔓 – Ваш ключ Java 1.8 теперь совместим со современными условиями! Замок открыт.
Борьба с несоответствием версий JDK и JRE
Если вы используете Eclipse IDE и столкнулись с "некорректной целевой версией", перейдите в меню: Window -> Preferences -> Java -> Installed JREs и убедитесь, что вы используете JDK 1.8, а не JRE.
Когда несоответствие версий провоцирует конфликты
Если результаты выполнения команд java -version
и javac -version
отличаются, вероятно, в вашем PATH присутствуют пути к разным версиям Java. Включите в PATH путь к директории bin вашего JDK 1.8.
Если вы не в состоянии уладить прекращение:
- Командой
unset
временно удалите из PATH нежелательные версии. - Чтобы навсегда избавиться от конфликтов, отредактируйте
~/.bashrc
или~/.zshrc
.
SDKMAN! на выручку
Используя SDKMAN!, вы сможете управлять различными версиями SDK без необходимости проводить ручные настройки.
Вот как просто установить JDK 1.8 и сделать её активной:
sdk install java 8.0.x-jdk // установка проходит автоматически!
sdk use java 8.0.x-jdk // смена версий происходит моментально!
Полезные материалы
- Плагин Apache Maven Compiler – Как установить параметры -source и -target для Java компилятора — подробное руководство по настройке компиляции в Maven.
- Как установить или изменить версию Java (JDK) по умолчанию на macOS? – Stack Overflow — решение задач настройки JAVA_HOME на macOS.
- Обзор процесса установки JDK — инструкции Oracle для установки Java Development Kit.
- Установка Apache Maven — шаг за шагом к подготовке Apache Maven к работе.
- Настройка Eclipse для Java 9 – Eclipsepedia — полезные рекомендации по настройке Eclipse для работы с новыми версиями Java.
- Улучшения в языке программирования Java — информация о внедрённых новшествах в Java 8 от Oracle.
- Использование SDKMAN! – Менеджер версий пакетов разработки — рекомендации по использованию SDKMAN! для управления версиями Java SDK.