неверный целевой выпуск: 1.7


121

Я видел похожие вопросы, но пока не нашел ответа.

Используя компиляцию maven, я получаю:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.0:compile (default-compile) on project api: Fatal error compiling: invalid target release: 1.7 -> [Help 1]

Вот pom.xml:

<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>

Версия Javac:

javac 1.7.0_25

Версия Java:

java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)

Есть идеи, что это может быть?


14
Скорее всего, maven работает на Java 6.
Питер Лоури

3
Я бы проверил все переменные вашей среды, чтобы узнать, используют ли они Java 6. например, Java 7 может быть на вашем пути, но я помню, как maven использовал JAVA_HOME или что-то в этом роде.
Питер Лоури

36
Выполнить mvn -version. Он скажет вам, какую Java он использует.
JB Nizet

вы правы, mvn использует java 1.6 - как это изменить?
Karan

1
установите переменную JAVA_HOME в домашний каталог JDK7.
JB Nizet

Ответы:


159

Вам нужно установить JAVA_HOME в домашний каталог jdk7, например, в Microsoft Windows:

  • "C: \ Program Files \ Java \ jdk1.7.0_40"

или в OS X:

  • /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home

71
На Mac, где установлены jdk6 и jdk7, это можно сделать принудительно в ~ / .profile:export JAVA_HOME=$(/usr/libexec/java_home -v 1.7)
Хэнк,

3
jdk8 также можно использовать для обеспечения соответствия jdk7
Вольфганг Фаль,

3
не забудьте перезагрузить ~ / .profile на Mac с помощью:source ~/.profile
Кайо Иглесиас

Это, вероятно, работает для многих вещей, но этого недостаточно для Maven и, конечно, не для плагина компилятора maven. Проверьте ответ Майка на его собственный вопрос здесь: stackoverflow question 24705877 Это решило проблему для меня как в командной строке, так и в eclipse. Кроме того, может помочь ответ @LinGao на вопрос о стеке 2503658 и использование переменной $ JAVACMD.
Litome

42

Помимо установки JAVA_HOMEпеременной среды, вы должны убедиться, что используете правильный JDK в вашей конфигурации запуска Maven. Перейдите в « Выполнить» -> « Выполнить конфигурацию» , выберите конфигурацию сборки Maven, перейдите на вкладку JRE и установите правильную среду выполнения JRE.

Конфигурация запуска Maven


+1, я знал, что забываю что-то обновить ... Опцией по умолчанию (для меня) при создании конфигурации была «Альтернативная JRE». Если кто-то еще сталкивается с этим, убедитесь, что ваш плагин maven И конфигурации обновлены правильно!
king14nyr

У меня был правильный JAVA_HOME для Java 8, но мне его все еще не хватало. Вы решили мою проблему, спасибо
dtortola

3

В IntelliJ IDEA это случилось со мной, когда я импортировал проект, который работал нормально и работал с Java 1.7. Я, по-видимому, не уведомил IntelliJ, что на моем компьютере установлена ​​java 1.7, и он не нашел мой$JAVA_HOME .

На Mac это решается следующими способами:

Щелкните правой кнопкой мыши модуль | Настройки модуля | проект

и добавив 1.7 SDK, выбрав «New» в Project SDK.

Затем перейдите в главное меню IntelliJ IDEA | Предпочтения | Maven | полоз

и выберите правильный JRE. В моем случае он обновился правильно. Используйте Project SDK, который теперь был 1.7.


Обратите внимание, что есть настройки проекта и настройки для Intellij, по крайней мере, на Mac, мне пришлось перейти в Настройки -> Сборка Exec, Развертывание -> Компилятор Java, а затем установить версию байт-кода проекта по мере необходимости.
Opentuned

1

Когда maven работает вне Eclipse, но выдает эту ошибку после изменения JDK, перейдите в свою конфигурацию запуска Maven и внизу главной страницы есть параметр «Maven Runtime». Моя использовала Embedded Maven, поэтому после переключения на использование моего внешнего maven все заработало.


где находится конфигурация запуска Maven, пожалуйста?
R Claven 02

1
Щелкните правой кнопкой мыши свой build.xml, выберите «Запуск от имени», а затем «Запуск конфигурации» должен быть последним вариантом. Если вы прокрутите типы конфигураций запуска, одна из них - «Maven Build», и у нее есть возможность выбрать «Maven Runtime». Рядом с этим есть кнопка «настроить»
djb

0

Это, вероятно, работает для многих вещей, но этого недостаточно для Maven и, конечно, не для плагина компилятора maven.

Проверьте ответ Майка на его собственный вопрос здесь: stackoverflow question 24705877

Это решило проблему для меня как в командной строке, так и в eclipse.

Кроме того, может помочь ответ @LinGao на вопрос о стеке 2503658 и использование переменной $ JAVACMD, но я сам ее не тестировал.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.