Eclipse: Системная библиотека JRE в пути сборки Java reset

Для разработки приложения JavaFX я использую 4.3.1 моментальный снимок eclipse вместе с JDK 8 build b116. В моих проектах рабочей области включение библиотеки JRE в путь сборки возвращается к Java 1.4 все время:

the problem

К сожалению, это может быть зафиксировано только временно (до следующего перезапуска затмения):

the temporary solution

В разделе сборки моих файлов pom я:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <debug>true</debug>
        <debuglevel>source,lines</debuglevel>
    </configuration>
</plugin>

Буду признателен за менее летучее решение.

[ОБНОВЛЕНИЕ] Проблема, похоже, исправлена ​​с текущими версиями

  • Java 8 (1.8.0-ea-b121),
  • Maven (3.1.1/1.5.0.20131218-0705),
  • m2e (1.5.0.20131218-1208) вместе с
  • Бета-версия JDT [Обновить сайт.

Ответы

Ответ 1

Плагин maven eclipse (m2e) выбирает среду исполнения java в зависимости от свойств <source> и <target> для плагина компилятора maven.

Проблема заключается в том, что в Kepler нет ни одной среды исполнения 1.8, а соединитель компилятора m2e maven еще не может ее отобразить.

Таким образом, я вижу два решения, пока оно не будет поддерживаться в Kepler и m2e:

  • Пусть maven изменит среду на 1.4 и сопоставит ваш 1.8 JDK с средой исполнения J2SE-1.4. Тогда ваш проект будет использовать правильный JDK. Но тогда все проекты, зависящие от 1.4, будут использовать 1.8 JDK, конечно.

  • Используйте pluginManagenent, чтобы отключить обработку жизненного цикла maven-compiler-plugin. Это должно помешать обновлению среды выполнения плагина m2e, и вы можете установить его вручную.

    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.eclipse.m2e</groupId>
                <artifactId>lifecycle-mapping</artifactId>
                <version>1.0.0</version>
                <configuration>
                     <lifecycleMappingMetadata>
                           <pluginExecutions>
                                 <pluginExecution>
                                     <pluginExecutionFilter>
                                           <groupId>org.apache.maven.plugins</groupId>
                                           <artifactId>maven-compiler-plugin</artifactId>
                                           <versionRange>[1.0.0,)</versionRange>
                                         <goals>
                                             <goal>compile</goal>
                                         </goals>
                                     </pluginExecutionFilter>
                                     <action>
                                          <ignore />
                                     </action>
                                 </pluginExecution>
                           </pluginExecutions>
                     </lifecycleMappingMetadata>
               </configuration>
           </plugin>
        </plugins>
    </pluginManagement>