Eclipse:Java构建路径重置中的JRE系统库

Eclipse:Java构建路径重置中的JRE系统库,java,eclipse,maven,buildpath,java-8,Java,Eclipse,Maven,Buildpath,Java 8,为了开发JavaFX应用程序,我将使用一个与JDK 8构建b116结合使用的应用程序。 在我的工作区项目中,构建路径中包含的JRE库始终重置为Java 1.4: 不幸的是,这只能临时修复(直到下一次eclipse重新启动): 在我的pom文件的构建部分,我有: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugi

为了开发JavaFX应用程序,我将使用一个与JDK 8构建b116结合使用的应用程序。 在我的工作区项目中,构建路径中包含的JRE库始终重置为Java 1.4:

不幸的是,这只能临时修复(直到下一次eclipse重新启动):

在我的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>

org.apache.maven.plugins
]
maven eclipse插件(m2e)根据maven编译器插件的
属性选择java执行环境

问题是开普勒既没有可用的1.8执行环境,m2e maven编译器连接器也无法映射它

因此,在开普勒和m2e支持之前,我看到了两种解决方案:

  • 让maven将环境更改为1.4,并将1.8JDK映射到执行环境J2SE-1.4。然后您的项目将使用正确的JDK。但是所有依赖于1.4的项目都将使用1.8JDK

  • 使用
    pluginmanagement
    关闭
    maven编译器插件
    生命周期处理。这将防止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>
    
    
    org.eclipse.m2e
    生命周期映射
    1.0.0
    org.apache.maven.plugins
    maven编译器插件
    [1.0.0,)
    编译
    

  • 将ProjectFacet中的java版本更改为1.8。可能您可以尝试运行eclipse来使用Java1.8(我认为这不会有任何影响).Pom.xml依赖项外观fine@Jens你能解决这个问题吗?我现在在Eclipse4.3、Maven 3.2.1和JDK1.8.0b129上也遇到了同样的情况。@RAM:我更新了我的帖子,介绍了我当前(工作)的一些细节版本,希望这会有所帮助。的安装说明似乎有效。我可以使用Java 8功能,但Maven项目的执行环境仍然列为J2SE-1.4。与;)相同的问题。感谢全面的回答。看起来第二个选项解决了问题。我有点担心,Maven更新项目now在org.eclipse.m2e.core.internal.lifecyclemapping.model.PluginExecutionFilter.match(PluginExecutionFilter.java:337)抛出一个
    java.lang.NullPointerException
    …嗯,这不是我所期望的。我稍后或明天会看一看。我也得到了NPE并更新了我的答案。NPE现在应该消失了,你应该仍然能够手动设置执行环境。感谢回到这里。现在,pom文件编辑器显示错误
    无法解析生命周期映射元数据f或者maven project
    :-/@JensPiegsa您的解析异常是由
    goals
    versionRange
    标记引起的。我更新了我的答案。但是如果
    lifecycleMappingMetadata
    正确,m2e将再次更新执行环境。因此,使用
    lifecycleMappingMetadate
    来关掉它。所以只剩下一个选项了,我建议的1号。希望这对你有帮助。