Мои списки файлов pom
<project>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
...
Тем не менее mvn clean install
, я получаю
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] Failure executing javac, but could not parse the error:
javac: invalid target release: 1.7
Usage: javac <options> <source files>
/usr/bin/java -version
есть ( which java
указывает здесь)
java version "1.7.0_10"
Java(TM) SE Runtime Environment (build 1.7.0_10-b18)
Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode)
javac
также указывает на правильную версию Java
/usr/bin/javac -> /Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home/bin/javac
На этой машине я пользуюсь zsh
( echo $0
возвращается -zsh
)
По моему .zshrc
, я определил:
33 # HOME
34 JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home
35 SCALA_HOME=/Library/Scala/current
36 FORGE_HOME=~/tools/forge/
37
38 # PATH
39 PATH="/Library/Frameworks/Python.framework/Versions/3.2/bin:${PATH}"
40 PATH=${PATH}:${JAVA_HOME}/bin
41 PATH=${PATH}:/bin/
42 PATH=${PATH}:/sbin/
43 PATH=${PATH}:/usr/bin/
44 PATH=${PATH}:/usr/sbin/
45 PATH=${PATH}:/opt/local/bin/
46 PATH=${PATH}:/opt/local/sbin/
47 PATH=${PATH}:/usr/local/git/bin
48 PATH=${PATH}:/usr/local/git/sbin
49 PATH=${PATH}:/Applications/Xcode.app/Contents/Developer/usr/bin
50 PATH=${PATH}:${SCALA_HOME}/bin
51 PATH=${PATH}:${FORGE_HOME}/bin
52
53 export PATH
Когда я бегу, mvn clean install --debug
я вижу, что на самом деле я использую Java 6
1 Apache Maven 3.0.3 (r1075438; 2011-02-28 11:31:09-0600)
2 Maven home: /usr/share/maven
3 Java version: 1.6.0_35, vendor: Apple Inc.
4 Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Где это можно определить? У меня есть источник (d) мой .zshrc несколько раз.
/usr/bin
первого в списке каталогов. Попробуйтеjavac -version
без указания каталога.javac 1.7.0_10
echo $JAVA_HOME
тебе сказать?--debug
, он должен сообщить вам точную командную строку, которую он использует для запускаjavac
(наряду с множеством других вещей). О чем это говорит?Ответы:
Проверьте
mvn
скрипт в вашей установке maven, чтобы увидеть, как он собирает команду. Возможно, вы или кто-то другой жестко запрограммировалиJAVA_HOME
там и забыли об этом.источник
mvn
Сценарий не был совместим с моей установкой OSX от компании Oracle JDK 7, и я не делал настройки его (внешний скрипт для папки что - нибудь фантазии ,Library/Java/JavaVirtualMachines/CurrentJDK
которой не существовало для меня (то , что действительно существует этоjdk1.7.0_25.jdk
вместоCurrentJDK
). Не элегантное исправление, но я только что жестко запрограммировал экспорт, и теперь он работает (PS: maven на OSX находится в/usr/share/maven/bin/mvn
)/usr/local/bin/mvn
попробуйте использовать более новую версию плагина компилятора maven:
Кроме того, указание кодировки исходного файла в maven лучше делать глобально:
РЕДАКТИРОВАТЬ : так как этот ответ все еще привлекает внимание, я просто хотел бы отметить, что последние значения (на момент последнего редактирования) - 3,2 для плагина компилятора maven и 1,8 для java, поскольку вопросы о компиляции кода java 8 через maven связаны с скоро появится :-)
источник
У меня была та же проблема, и для ее решения я следую за этой статьей в блоге: http://www.mkyong.com/java/how-to-set-java_home-environment-variable-on-mac-os-x/
специальные ткс @mkyong
РЕДАКТИРОВАТЬ: Теперь я использую: jEnv + sdkman
источник
Пожалуйста, проверьте ваш pom.xml для тегов ниже
он должен указать требуемую версию JDK
источник
Вы должны проверить версию Maven:
Вы найдете версию Java, которую Maven использует для компиляции. Вам может понадобиться сбросить JAVA_HOME, если это необходимо.
источник
У меня такая же проблема. Я обнаружил, что это потому, что скрипт Maven просматривает ссылку CurrentJDK ниже и находит 1.6 JDK. Даже если вы установите последнюю версию JDK, это не решается. Хотя вы можете просто установить JAVA_HOME в вашем скрипте $ HOME / .bash_profile, я решил вместо этого исправить символическую ссылку следующим образом:
Обратите внимание, что CurrentJDK указывает на 1.6.0.jdk
Чтобы исправить это, я выполнил следующие команды (вы должны проверить установленную версию и соответственно адаптироваться).
источник
Диагностика:
Вы можете увидеть, какую версию Java Maven использует, запустив "mvn --version"
Решение для Debian:
Сценарий mvn устанавливает внутреннюю переменную JAVA_HOME путем поиска javac (то есть javac). Поэтому, если у вас одновременно установлено несколько версий java, например, JDK 6 и JDK 7, и вы используете систему альтернатив Debian для выбора между ними, даже если вы изменили альтернативу для «java» на JDK 7, mvn все равно будет использовать JDK 6. Вы Я должен изменить альтернативу для "Javac" тоже. Например:
РЕДАКТИРОВАТЬ:
На самом деле, еще лучшим решением является использование update-java-alternatives (например)
как подробно описано в https://wiki.debian.org/JavaPackage , потому что это изменит все альтернативы различным инструментам Java (их около десятка).
источник
Не могли бы вы попробовать более новый плагин; на сайте maven:
Я тоже видел следующее:
источник
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.0:compile (default-compile) on project divs: Fatal error compiling: invalid target release: 1.7 -
Попробуйте изменить настройки компилятора Java в свойствах Eclipse-
Перейти: Настройки-> Java-> Компилятор-> Уровень соответствия компилятора-> 1.7 Применить Ok
Перезапустите IDE.
Подтвердите настройку компилятора для проекта: Перейти к: Свойства проекта-> Компилятор Java-> Снять отметку (Использовать соответствие из среды выполнения 'JavaSE-1.6' в пути сборки Java). И выберите 1.7 в раскрывающемся списке. (Игнорировать, если уже 1.7)
Перезапустите IDE.
Если проблема не устранена, запустите отдельные тестовые примеры, используя команду в терминале.
источник
Не уверен, какая ОС используется здесь, но вы можете исключить множество java-версий, futzing un debian / ubuntu с помощью update-java-alternatives, чтобы установить jvm по умолчанию для всей системы.
Чтобы установить новый, используйте:
Нет необходимости устанавливать JAVA_HOME для большинства приложений.
источник
щелкните правой кнопкой мыши на вашем проекте в eclipse и откройте «Run Configurations» .. проверьте версию jre там. иногда это не изменится по умолчанию в eclipse, даже после изменения версии в buildpath.
источник
Для конкретной компиляции, которая требует (не по умолчанию
/etc/alternatives/java
) JVM, рассмотрите префиксmvn
командеJAVA_HOME
следующим образом:Здесь мы предполагаем, что по умолчанию используется Java 8, тогда как для конкретного конкретного проекта нам требуется Java 7.
источник
{JAVA_1_4_HOME} / bin / javacy, вы также можете попробовать ...
источник
Хорошо, я тоже решил эту проблему самостоятельно. Ваш JAVA_HOME важнее, если у вас нет более низкой версии или ее нет по сравнению с исходными / целевыми свойствами из плагина Maven, вы получите эту ошибку.
Убедитесь, что в вашем JAVA_HOME есть хорошая версия и она включена в ваш PATH.
источник
Возможно, вы указали неправильную версию Java. Java-версия (в вашем терминале), чтобы проверить версию Java, которую вы используете. Перейдите в maven-compile-plugin для последней версии компилятора maven. Ваш плагин может выглядеть так, если вы используете java 6, а последняя версия плагина компилятора maven - 3.1.
источник
Ни один из предыдущих ответов полностью не решил мой вариант использования.
Необходимо удалить каталог, который был построен. Clean. А затем переустановите. Похоже, молчаливая проблема с разрешениями.
источник
У меня была эта проблема в IntelliJ IDEA 14, пока я не зашел в меню «Файл» -> «Структура проекта», изменив SDK проекта до 1.7 и уровень языка проекта до 7.
источник
У меня была эта проблема при работе с Eclipse, мне пришлось изменить путь сборки проекта, чтобы он ссылался на JRE 7
источник