更新Maven在Eclipse中不断从JavaJDK1.8恢复到JavaSE-1.8

更新Maven在Eclipse中不断从JavaJDK1.8恢复到JavaSE-1.8,java,eclipse,maven,Java,Eclipse,Maven,如何阻止maven不断地将Java系统库从JDK1.8更新回JavaSE1.8?我已经配置了构建路径,甚至将Java_Home变量设置为JDK路径。我还更新了构建配置。有人可以指定如何做一些具体的指示,因为我是一个新手这一点。我还注意到,这种情况也在不断发生变化。仅供参考,我正在使用Eclipse Mars,如果这很重要的话 关于下面的评论,我分享了EclipseM2e插件截图。即使选中,我也无法继续下一步。我还展示了已经安装的插件,以防另一个插件妨碍我使用m2e 您需要理解Eclipse。E

如何阻止maven不断地将Java系统库从JDK1.8更新回JavaSE1.8?我已经配置了构建路径,甚至将Java_Home变量设置为JDK路径。我还更新了构建配置。有人可以指定如何做一些具体的指示,因为我是一个新手这一点。我还注意到,这种情况也在不断发生变化。仅供参考,我正在使用Eclipse Mars,如果这很重要的话

关于下面的评论,我分享了EclipseM2e插件截图。即使选中,我也无法继续下一步。我还展示了已经安装的插件,以防另一个插件妨碍我使用m2e

您需要理解Eclipse。EE的概念是对JRE的抽象,允许在没有绝对路径的情况下配置项目到JRE位置。从wiki页面:

执行环境(EEs)是JRE的符号表示。例如,您可以讨论J2SE-1.4执行环境,而不是讨论特定JRE,即磁盘上特定位置的特定名称。然后可以将系统配置为使用特定的JRE来实现该执行环境

通常,不建议将项目配置为使用“工作区默认值”作为其JRE系统库,因为这会使项目在加载到不同的工作区时不一致。想一想:如果这个项目是针对Java7开发的,但是我把它拉到我的工作区中,那里有JDK8;这可能是个大问题。通过使用EE,项目被配置为不知道(或不关心)我的系统上哪里有匹配的JRE

我说这些都是为了给你设定答案,这样你就能理解Maven在做什么,以及这些说明在做什么。Eclipse的Maven集成插件m2e(正确地)将项目配置设置为使用EE而不是“工作区默认值”。从您的屏幕截图中,我可以看到您的工作区中同时设置了JDK和JRE 1.8,因此理想情况下您应该删除一个(JRE)。进入首选项Java安装的JRE。在这里,您将看到列出的JRE和JDK。我建议删除JRE*

然后进入“执行环境”首选项部分,选择JavaSE-1.8,并确保选中JDK作为默认实现

现在,当m2e将您的项目配置为使用EE时,该EE将指向您安装的JDK。如果其他人导入该项目,它将指向安装了匹配JDK的任何地方


*顺便说一下,在那里有不同版本的Java是完全可以接受和正常的;我经常从事针对不同Java版本的不同项目。

就运行时行为而言,jdk1.8.0_60和jdk1.8.0_60是一样的。我认为您正在尝试解决一个“非问题”。您是否在设置
JAVA\u HOME
(注意:caps)后重新启动了eclipse?是的,我已经这样做了,我只是再次进行了仔细检查。然后我再次更新了maven项目,并将其重置为JavaSE。对于Stephen的问题,我的印象是JavaSE1.8和JDK1.8被认为是不同的类路径。Thsi显然是一个日食问题。什么给你这样的印象?谢谢你提供了非常详细的背景信息!这就解决了!只是一个补充:您不需要删除JRE。因为Maven只从“工作区默认”切换到“执行环境”,所以您只需要配置您的执行环境所指向的默认JRE。因此,您只需要“进入“执行环境”首选项部分,选择JavaSE-1.8并确保您的JDK被选中为默认实现”。