Если вы создаете свой проект Java с помощью Maven , возможно, в Eclipse или из командной строки, запустив mvn install, и ваша сборка завершается с ошибкой типа «недопустимый целевой выпуск: 1.7» или «недопустимый целевой выпуск: 1.8», то вы пришли в нужное место. В этой статье я покажу вам причину возникновения этой ошибки и как вы можете справиться с этими ошибками даже с более высокой версией Java, такой как Java 9, 10, установленной на вашем компьютере, или, возможно, с Java 11 в следующем месяце. Основной причиной проблемы является то, что вы указали более высокую версию Java в своем файле pom.xml для плагина компилятора Maven, чем то, что Maven знает в вашей системе, и именно поэтому он говорит о недопустимом выпуске цели.
Простым решением этой проблемы является либо уменьшение вашей целевой версии в pom.xml, либо установка новой версии Java, если вы хотите собрать свой проект в более поздней версии.
Но ключом к решению этой проблемы является знание того, что Maven выбирает версию Java из переменной JAVA_HOME, а не из переменной среды PATH .
Это означает, что даже если у вас установлен JDK 8, но если ваш JAVA_HOME все еще ссылается на JDK 1.7, вы получите эту ошибку.
К счастью, вы можете узнать, я имею в виду, какую версию Java использует ваш Maven. Просто запустите команду mvn -version из командной строки, и она напечатает значение переменной JAVA_HOME и подтвердит, какая версия JDK используется для построения вашего проекта.
Неверный целевой выпуск: 1,7
Недавно, когда я столкнулся с этой ошибкой, я создавал проект Java с использованием Maven на моей старой машине. Я думал, что у меня последняя версия Java, и я удивился этой ошибке.
Вот как выглядит мой Maven pom.xml:
01
02
03
04
05
06
07
08
09
10
|
< plugin > < groupId >org.apache.maven.plugins</ groupId > < artifactId >maven-compiler-plugin</ artifactId > < version >3.0</ version > < configuration > < source >1.7</ source > < target >1.7</ target > < encoding >UTF-8</ encoding > </ configuration > </ plugin > |
Вот пример выходных данных mvn -version:
1
2
3
4
5
6
7
|
$ mvn -version Apache Maven 3.2.3 (33f8c3e1027c3ddde99d3cdebad2656a31e8fdf4; 2014-08-12T04:58:10+08:00 Maven home: C:\apache-maven-3.2.3 Java version: 1.6.0_37, vendor: Sun Microsystems Inc. Java home: C:\jdk1.6.0_37\jre Default locale: en_US, platform encoding: Cp1252 OS name: "windows 7" , version: "6.1" , arch: "x86" , family: "windows" |
Вы можете видеть, что Maven на моей машине использовал JDK 1.6.0_37, и именно поэтому, когда я создавал свой проект Maven с JDK 1.7 в качестве цели, он терпел неудачу.
Как только я обновил pom.xml для использования цели 1.6, сборка начала работать.
Поскольку Java 7 не требовалась для моего проекта, мне просто пришлось изменить плагин компиляции Maven следующим образом:
01
02
03
04
05
06
07
08
09
10
|
< plugin > < groupId >org.apache.maven.plugins</ groupId > < artifactId >maven-compiler-plugin</ artifactId > < version >3.0</ version > < configuration > < source >1.6</ source > < target >1.6</ target > < encoding >UTF-8</ encoding > </ configuration > </ plugin > |
Но если вам нужно построить свой Java-проект с JDK 1.7, просто установите и обновите переменную JAVA_HOME, и эта ошибка исчезнет.
Это решение действительно хорошо, так как вы можете решить проблему немедленно.
Неверный целевой выпуск: 1,8
Эта ошибка возникает, если ваш плагин компилятора maven имеет <target> 1.8 </
target>, но переменная JAVA_HOME на вашем компьютере ссылается на версию Java, которая ниже, чем JDK 1.8, например JDK 1.6 или JDK 1.7.
Файл Maven изначально может выглядеть так:
01
02
03
04
05
06
07
08
09
10
|
< plugin > < groupId >org.apache.maven.plugins</ groupId > < artifactId >maven-compiler-plugin</ artifactId > < version >3.0</ version > < configuration > < source >1.8</ source > < target >1.8</ target > < encoding >UTF-8</ encoding > </ configuration > </ plugin > |
Чтобы устранить эту ошибку, либо измените цель, чтобы она соответствовала версии Java, ваша переменная JAVA_HOME ссылается на новый JDK, либо установите его и обновила переменную JAVA_HOME.
Если вы не знаете, обратитесь к этой статье, чтобы узнать точные шаги по изменению значения переменной среды JAVA_HOME в Windows и Linux .
Кстати, если вы работаете в ограниченной среде, например в большой компании, где программное обеспечение развертывается автоматически и не можете добавлять или редактировать переменные среды, вы все равно можете изменить их в локальной оболочке, как показано в моей предыдущей статье. Как установить конкретная версия Java для Maven в Windows .
Неверный целевой выпуск: 1,9
Эта ошибка возникает, если ваш плагин компилятора maven имеет <target> 1.9 </ target>, но переменная JAVA_HOME на вашем компьютере ссылается на версию Java, которая ниже, чем JDK 1.9, например, JDK 1.8 или JDK 1.7.
Как объяснялось в предыдущем разделе, либо измените цель на pom.xml, либо установите новый JDK и обновите переменную среды JAVA_HOME, чтобы указать новый каталог bin JDK.
Поскольку Maven использует JAVA_HOME, он не решит проблему, пока вы не обновите эту переменную среды, даже если вы установили правильную версию Java.
Точно так же вы получите Неверный целевой выпуск: 1.10, если вы скомпилируете используя
<target> 1.10 </ target> и ваш JAVA_HOME ссылается на JDK 9 или JDK 8.
Теперь вы можете обобщить эту проблему и решить, в зависимости от того, какую версию Java вы указали в pom.xml и какая версия Java установлена на вашем компьютере и на которую ссылается переменная среды JAVA_HOME.
Другие статьи Maven, которые вам могут понравиться
- В чем разница между Maven, ANT и Jenkins? ( ответ )
- Как увеличить размер кучи Maven? ( шаги )
- Как исправить проблему поиска Maven Eclipse Dependency, которая не работает? ( решение )
- Как установить Maven в Windows 10? ( шаги )
- Как построить проект Java с использованием ANT? ( статья )
- Как создать или изменить build.xm в ANT? ( учебник )
- Лучшие 5 книг Apache Maven бесплатно ( книги )
- 10 баллов о Maven Java, разработчик должен знать (Maven)
- 10 плагинов Maven, которые должен знать каждый Java-разработчик ( плагины )
- 6 бесплатных курсов Maven и Jenkins для разработчиков Java ( курсы )
- Как установить конкретную версию Java для Maven ( учебник )
Спасибо за чтение этой статьи до сих пор. Если вам удастся решить вашу проблему, следуя этим советам, пожалуйста, поделитесь с друзьями и коллегами. Если вы по-прежнему сталкиваетесь с проблемами, напишите об этом, и мы сможем решить вашу проблему вместе.
См. Оригинальную статью здесь: Как исправить неверный целевой выпуск: 1.7, 1.8, 1.9 или 1.10 Ошибка в Maven Build
Мнения, высказанные участниками Java Code Geeks, являются их собственными. |