Статьи

Как исправить неверный целевой выпуск: 1.7, 1.8, 1.9 или 1.10 Ошибка в Maven Build

Если вы создаете свой проект 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, и эта ошибка исчезнет.

Это решение действительно хорошо, так как вы можете решить проблему немедленно.

Maven Build

Неверный целевой выпуск: 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 .

Maven Build

Неверный целевой выпуск: 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, являются их собственными.