Решение ошибки Maven: неверная целевая версия: 1.8

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Если вам срочно нужно устранить ошибку компиляции Java 1.8, установите в качестве JDK версию 1.8. В Maven добавьте следующий код:

xml
Скопировать код
<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>

Те, кто использует Gradle, должны обновить файл build.gradle согласно приведённому ниже образу:

groovy
Скопировать код
sourceCompatibility = '1.8' // устанавливаем исходную совместимость на 8!
targetCompatibility = '1.8' // задаём целевую совместимость равной 8!

Проверьте, корректно ли переменная окружения JAVA_HOME указывает на JDK 1.8, и запустите процесс сборки с использованием наилучшей доступной вам версии JDK.

Кинга Идем в IT: пошаговый план для смены профессии

На пути к дружбе с переменными окружения

Для того чтобы JAVA_HOME и файл POM Maven эффективно работали вместе, следует корректно настроить переменные окружения.

  • Для Windows:
    1. Откройте панель "Системные свойства" через меню Параметры или через Панель управления.
    2. Перейдите в "Дополнительные параметры системы" и откройте "Переменные среды".
    3. Задайте JAVA_HOME таким образом, чтобы он указывал на каталог с JDK 1.8.
  • Для Unix-подобных систем (таких как Linux, macOS):
    1. Отредактируйте ~/.bashrc или ~/.zshrc, добавив строку export JAVA_HOME=<путь-к-jdk-1.8>.

Maven и Java: история их совместной работы

Неправильное сочетание Maven и вашего JDK может привести к ошибкам. Убедитесь, что плагин maven-compiler-plugin настроен на работу с требуемой версией JDK.

Вот предпочтительная конфигурация maven-compiler-plugin для работы с Java 1.8:

xml
Скопировать код
<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 как попытку открыть новый замок с помощью старого ключа:

Markdown
Скопировать код
| сценарий                          | результат               |
| ---------------------------------- | ----------------------- |
| Старый ключ (Java 1.8)            | 🗝️                      |
| Современный замок (Настройки компилятора) | 🔒                |
| Попытка открыть                   | 🗝️🚫🔒                  |

Несоответствие инструментов: Java 1.8 выглядит как старый ключ, который не подходит для нового замка, установленного в настройках вашей сборки.

Чтобы отпереть замок:

  • Установите JAVA_HOME на JDK 1.8.
  • Настройте ваши файлы Maven так, чтобы элементы <source> и <target> были равны 1.8.

Согласовав JAVA_HOME и POM Maven, вы готовы к успешной компиляции:

Markdown
Скопировать код
🗝️🔧➡️🔓 – Ваш ключ 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 и сделать её активной:

Bash
Скопировать код
sdk install java 8.0.x-jdk // установка проходит автоматически!
sdk use java 8.0.x-jdk // смена версий происходит моментально!

Полезные материалы

  1. Плагин Apache Maven Compiler – Как установить параметры -source и -target для Java компилятораподробное руководство по настройке компиляции в Maven.
  2. Как установить или изменить версию Java (JDK) по умолчанию на macOS? – Stack Overflowрешение задач настройки JAVA_HOME на macOS.
  3. Обзор процесса установки JDKинструкции Oracle для установки Java Development Kit.
  4. Установка Apache Mavenшаг за шагом к подготовке Apache Maven к работе.
  5. Настройка Eclipse для Java 9 – Eclipsepedia — полезные рекомендации по настройке Eclipse для работы с новыми версиями Java.
  6. Улучшения в языке программирования Java — информация о внедрённых новшествах в Java 8 от Oracle.
  7. Использование SDKMAN! – Менеджер версий пакетов разработки — рекомендации по использованию SDKMAN! для управления версиями Java SDK.