Eclipse 2018-09 не будет компилировать исходный код Java 11;считает, что ниже 1,7 - PullRequest
0 голосов
/ 27 сентября 2018

Я использую Eclipse 2018-09 (4.9.0) в Windows 10. Я использую Open JDK 11 GA.У меня есть проект Maven, который был указан как использующий исходный код Java 8.

<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <maven.compiler.source>1.8</maven.compiler.source>
  <maven.compiler.target>1.8</maven.compiler.target>
</properties>

Это прекрасно компилируется с использованием Maven 3.5.3 в командной строке.Это также хорошо компилируется с использованием Eclipse Eclipse 2018-09 (4.9.0).

Я изменил версии Java для компиляции на Java 11:

<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <maven.compiler.source>11</maven.compiler.source>
  <maven.compiler.target>11</maven.compiler.target>
</properties>

Это все равно хорошо собирается в командной строке, используяMaven 3.5.3.Но в Eclipse 2018-09 я везде получаю ошибки:

  • '<>' operator is not allowed for source level below 1.7
  • Constructor references are allowed only at source level 1.8 or above
  • Default methods are allowed only at source level 1.8 or above

Вы поняли.

Я уже использовал Alt+F5, чтобы обновить мой проект Maven (и подпроекты) в Eclipse.Я сделал полную очистку и перестройку.

Поскольку это прекрасно компилируется с Maven в командной строке, это должно быть проблемой Eclipse, не так ли?Конечно, Eclipse пока не поддерживает все новые функции Java 11, но этот код не имеет специфических функций Java 11 .Что не так?

Ответы [ 3 ]

0 голосов
/ 04 ноября 2018

Обновление: Java 11 полностью интегрирована в Eclipse начиная с версии 4.10 (выпущено в 2018-12-19), поэтому больше не нужно устанавливать этот плагин.


По какой-то причине вам необходимо установить дополнительный плагин Eclipse " Поддержка Java 11 для Eclipse 2018-09 (4.9) " (даже в Eclipse Photon 4.9)

Похоже, что плагин больше не доступен на Eclipse Marketplace.Если кто-то находит URL-адрес для установки, добавьте его здесь:

Работает для Eclipse - STS 4.0.1 (на основе Eclipse 4.9), Maven 3.6.0, с этой конфигурацией подключаемого модуля Maven

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.0</version>
            <configuration>
                <source>11</source>
                <target>11</target>
            </configuration>                
        </plugin>
0 голосов
/ 25 января 2019

Эта проблема исправлена ​​в Eclipse 2018-12.Обновление до этой версии решит вашу проблему.

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

Похоже, Eclipse не собирает версии с помпона.

Я только что проверил вашу конфигурацию pom и убедился, что она работает, либо предоставив исходные и целевые свойства компилятора, как в вопросе, либо новое свойство выпуска , как описано в этом ответе , используя последнюю версию. Java 11 Поддержка Eclipse 2018-09 плагин.

Важно, чтобы JDK 11 был правильно настроен в настройках Eclipse.Добавьте JDK 11 на странице настроек «Установленный JRE», а затем сопоставьте его с JavaSE-11 на странице настроек «Среда выполнения».В противном случае обновление проекта Maven приведет к использованию JDK по умолчанию, что, вероятно, является проблемой, с которой вы столкнулись.

...