Проект Eclipse: Плагин Maven Eclipse установил неправильный контейнер пути к классу JRE - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть рабочая среда 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,кстати).

Есть идеи, кто-нибудь?

1 Ответ

0 голосов
/ 27 сентября 2018

В вашем файле pom, попробуйте использовать это:

  <build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
  </build>

Вы также можете ссылаться на эту ссылку:

https://dzone.com/articles/maven-eclipse-and-java-9

Или, если все не удается, попробуйтеEclipse oxygen, более новая версия (не самая новая версия, но намного лучше, чем Mars IMO), в которой предварительно установлен плагин Maven Integration, все, что вам нужно, это добавить плагин m2e-connector.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...