Error invalid target release 17
Мы обновили проект с Java 11 до Java 17, и mvn test попадает в Fatal error compiling: error: invalid target release: 17
Версия Java уже 17.
1. Узнайте версию Java в Maven
Maven может использовать другую версию Java для компиляции проекта, и мы можем использовать mvn -version, чтобы узнать подробности Maven.
Попробуйте распечатать JAVA_HOME переменную среды; Maven находит JAVA_HOME для компиляции Java.
2. Решение – обновить JAVA_HOME
Обновление переменной среды JAVA_HOME и обеспечение того, чтобы она указывала на правильный JDK.
2.1 Для macOS откройте ~/.zshenv и обновите JAVA_HOME до Java 17
JAVA_HOME указывает на Java 11.
Примечание
Для Windows или Linux найдите JAVA_HOME переменную среды и убедитесь, что она указывает на правильный JDK.
spring-boot: Fatal error compiling: invalid target release: 17
Просто просматриваю руководство по весенней загрузке и застреваю на выполнении шага 4.4.4 $ mvn spring-boot:run
Все, что я могу найти в Google, похожее на эту ошибку, указывает на несоответствие версии Java, используемой maven, но это не так
$ java -version
java version “1.8.0_333”
Java(TM) SE Runtime Environment (build 1.8.0_333-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.333-b02, mixed mode)
$ javac -version
javac 1.8.0_333
$ mvn -v
Apache Maven 3.8.6 (84538c9988a25aec085021c365c560670ad80f63)
Maven home: /Users/myuser/tools/apache-maven-3.8.6
Java version: 1.8.0_333, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk1.8.0_333.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: “mac os x”, version: “12.4”, arch: “x86_64”, family: “mac”
$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_333.jdk/Contents/Home
Ответ
Вы должны проверить, какая версия Java настроена в JAVA_HOME. Использование: mvn -version Вы должны увидеть что-то вроде этого из mvn вывода
$ mvn -version
Apache Maven 3.8.5 (3599d3414f046de2324203b78ddcf9b5e4388aa0)
Maven home: path\apache-maven-3.8.5
Java version: 17.0.3.1, vendor: Oracle Corporation, runtime: path\Java\jdk-17.0.3.1
Default locale: en_US, platform encoding: Cp1252
OS name: “windows 10”, version: “10.0”, arch: “amd64”, family: “windows”
убедитесь, что Maven использует JAVA, которая такая же или новее, чем ваша цель.
обновите JAVA_HOME до более новой установленной вами Java.
закройте любой старый терминал (даже если используется VSCode)
и откройте, запустите mvn -version команду. убедитесь, что “runtime:” указывает на ваш новый путь JAVA
В моем случае эта проблема была связана с более низкой версией Java, которая присутствовала на моем компьютере. Я был на Java 17 и обновился до Java 18, и у меня сработала та же настройка
вы можете либо установить 17 в <target> и <source> в <configuration> maven-compiler-plugin
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>17</source>
<target>17</target>
</configuration>
</plugin>
или
установите 17 в maven-compiler-source (и target) в <properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
затем вам нужно установить jdk 17 в JAVA_HOME (вы можете проверить это с помощью команды mvn -v)
обратите внимание, что: с помощью (например) jdk-11 вы можете компилировать проекты с более низкой версией Java, но для компиляции проектов с java 11 вам нужно установить jdk-11 или выше.