2013-11-10 2 views
117

Я видел похожие вопросы, но еще не нашел ответа.недействительный целевой релиз: 1.7

Использование 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:

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) 

Любая идея, что это может быть?

+12

Скорее всего maven работает с использованием Java 6. –

+3

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

+35

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

ответ

157

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

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

или ОС 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)' – Hank

+3

jdk8 также может использоваться для получения соответствия jdk7 –

+3

не забудьте перезагрузить файл ~/.profile на mac с помощью: 'source ~/.profile' –

40

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

Maven run configuration

+0

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

+0

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

1

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

+0

где Maven Run Configuration, пожалуйста? –

+1

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

3

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

На Mac, это решается:

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

и добавление 1.7 SDK, выбрав «Создать» в SDK проекта.

Затем перейдите в главное меню IntelliJ IDEA | Настройки | Maven | Бегун

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

+0

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

0

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

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

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

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

Смежные вопросы