У меня есть рабочая среда Eclipse Mars 2 Java8, Maven 3.5.4.Я создаю файлы проекта с mvn eclipse:clean eclipse:eclipse
и наблюдаю следующий вывод maven:
[INFO] Adding default classpath container: org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-**1.7**
JRE по умолчанию для рабочей области не Java 7 , это Java8 , как вы можете видеть, глядя на следующий конфигурационный файл Eclipse:
<workspace>\.metadata\.plugins\org.eclipse.core.runtime\.settings\org.eclipse.jdt.launching.prefs.
, который содержит следующие данные:
org.eclipse.jdt.launching.PREF_VM_XML=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>
<vmSettings defaultVM\="57,org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType13,1538040823497*">
<vmType id\="org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType">
<vm id\="1431694854640" name\="jdk1.7.0_40" path\="C\:\\Program Files\\Java\\jdk1.7.0_40"/>
<vm id\="1447417000092" name\="jdk1.6.0_45" path\="C\:\\Program Files\\Java\\jdk1.6.0_45"/>
<vm id\="1538040823497" name\="jdk1.8.0_65" path\="C\:\\Program Files\\Java\\jdk1.8.0_65"/>
</vmType>
</vmSettings>
Как вы можете заметить, посмотрев вышеВ конфигурации, виртуальная машина по умолчанию имеет идентификатор vm "1538040823497" с именем jdk1.8.0_65 и находится в C\:\\Program Files\\Java\\jdk1.8.0_65
.
Эта виртуальная машина правильно зарегистрирована как рабочая область по умолчанию в настройках Eclipse, Java / установленные JRE, помечена как «идеальное совпадение» в среде выполнения JAVASE-1.8.
Я не вижу ничего, почему плагин Maven Eclipse считает org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7
правильным выбором, а не JAVASE-1.8 .
Я уже удалил все JRE и зарегистрировал их заново.
Теперь есть ровно одна среда 1.6, 1.7 и 1.8, каждая с «идеальным соответствием», и 1.8 установлен по умолчанию (как вы можете видеть выше).
Мне приходится вручную корректировать проект каждый раз, когда я его генерировал (Изменить путь сборки, изменить библиотеку JRE с 7 на 8), поскольку все файлы, использующие функции Java 8, такие как потоки или функции лямбда, сигнализируют об ошибках компилятора, если я не назначуправильный JRE вручную.
Я уже пытался и манипулировал org.eclipse.jdt.launching.prefs
, переопределял все JRE, молился, проклинал или просил доску Ouija, но безрезультатно, Java 7 всегда назначается плагином eclipse (версия 2.10,кстати).
Есть идеи, кто-нибудь?