我有一个基于Eclipse Mars 2 Java8,基于Maven 3.5.4的工作区。
我使用mvn eclipse:clean eclipse:eclipse
构建项目文件,并观看以下maven输出:
[INFO] Adding default classpath container: org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-**1.7**
工作区的默认JRE不是 Java 7 ,而是 Java 8 ,就像您看到以下Eclipse配置文件一样:
<workspace>\.metadata\.plugins\org.eclipse.core.runtime\.settings\org.eclipse.jdt.launching.prefs.
包含以下数据:
org.eclipse.jdt.launching.PREF_VM_XML=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>
<vmSettings defaultVM\="57,org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType13,1538040823497*">
<vmType id\="org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType">
<vm id\="1431694854640" name\="jdk1.7.0_40" path\="C\:\\Program Files\\Java\\jdk1.7.0_40"/>
<vm id\="1447417000092" name\="jdk1.6.0_45" path\="C\:\\Program Files\\Java\\jdk1.6.0_45"/>
<vm id\="1538040823497" name\="jdk1.8.0_65" path\="C\:\\Program Files\\Java\\jdk1.8.0_65"/>
</vmType>
</vmSettings>
通过查看上述配置,您可能会注意到,默认VM具有vm id“ 1538040823497”,名为 jdk1.8.0_65 ,驻留在C\:\\Program Files\\Java\\jdk1.8.0_65
中。
此VM已在Eclipse首选项Java /已安装的JRE中正确注册为Workspace Default,并在执行环境JAVASE-1.8中标记为“完全匹配”。
我什么也看不到为什么Maven Eclipse插件会考虑
org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7
是正确的选择,而不是 JAVASE-1.8 。
我已经删除了所有JRE并重新注册了它们。
现在仅存在一个1.6、1.7和1.8环境,每个环境都具有“完全匹配”,并且默认情况下检查1.8(如您在上面看到的)。
每次生成项目时,我都必须手动更正项目(编辑构建路径,将JRE库从7更改为8),因为除非使用正确的JRE,否则所有使用Java 8功能(如流或lambda函数)的文件都将指示编译器错误。手动。
我已经尝试并操作org.eclipse.jdt.launching.prefs
,重新定义所有JRE,祈祷,诅咒或询问Ouija板,但徒劳无功,总是Java 7是由eclipse插件分配的(顺便说是版本2.10)。 / p>
有什么想法吗?
答案 0 :(得分:0)
在您的pom文件中,尝试使用此功能:
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
您也可以引用此链接:
https://dzone.com/articles/maven-eclipse-and-java-9
或者,如果所有方法均失败,请尝试使用eclipse oxygen,它是一个预安装了Maven Integration插件的较新版本(不是最新版本,但比Mars IMO更好),您需要添加一个m2e-connector插件。 >