eclipse 2018-09 не будет компилировать исходный код java 11; считает, что ниже 1,7

<p>я использую eclipse 2018-09 (4.9.0) в windows 10. я использую open jdk 11 ga. у меня есть проект maven, который был указан как использующий исходный код java 8.</p><pre><code><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> </code></pre><p>это прекрасно компилируется с использованием maven 3.5.3 в командной строке. это также хорошо компилируется с использованием eclipse eclipse 2018-09 (4.9.0).</p><p>я изменил версии компиляции java на java 11:</p><pre><code><properties> <project.build.sourceencoding>utf-8</project.build.sourceencoding> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> </properties> </code></pre><p>это все еще прекрасно работает в командной строке, используя maven 3.5.3. но в eclipse 2018-09 повсюду появляются ошибки:</p><ul> <li><code>'<>' operator is not allowed for source level below 1.7</code></li> <li><code>constructor references are allowed only at source level 1.8 or above</code></li> <li><code>default methods are allowed only at source level 1.8 or above</code></li> </ul><p>вы поняли идею.</p><p>я уже использовал <code>alt+f5</code> для обновления своего проекта maven (и подпроектов) в eclipse. я сделал полную чистку и восстановление.</p><p>поскольку это хорошо компилируется с maven в командной строке, это должно быть проблемой eclipse, не так ли? конечно, eclipse пока не поддерживает все новые функции java 11, но<em> этот код не имеет специфических функций java 11 </em>. в чем дело?</p>

<p>по какой-то причине вам необходимо <strong>установить дополнительный плагин eclipse " <a href="https://marketplace.eclipse.org/content/java-11-support-eclipse-2018-09-49">поддержка java 11 для eclipse 2018-09 (4.9)</a> "</strong> (даже в eclipse photon 4.9)</p><p>работает для eclipse - sts 4.0.1 (на основе eclipse 4.9), maven 3.6.0, с этой конфигурацией подключаемого модуля maven.</p><pre><code> <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> </code></pre>

<p>похоже, eclipse не собирает версии с помпона. </p><p>я только что проверил вашу конфигурацию pom и убедился, что она работает, либо предоставив исходные и целевые свойства компилятора, как в вопросе, либо новое свойство выпуска <a href="https://stackoverflow.com/a/51586202/897024">как описано в этом ответе</a> , используя самую последнюю <a href="https://marketplace.eclipse.org/content/java-11-support-eclipse-photon-49">поддержка java 11 для eclipse 2018 -09</a> плагин. </p><p>важно, чтобы jdk 11 был правильно настроен в настройках eclipse. добавьте jdk 11 на странице настроек «установленный jre», а затем сопоставьте его с javase-11 на странице настроек «среда выполнения». в противном случае обновление проекта maven приведет к использованию jdk по умолчанию, что, вероятно, является причиной вашей проблемы.</p>

<p>эта проблема исправлена в eclipse 2018-12. обновление до этой версии решит вашу проблему. </p>