2014-10-31 24 views
4

我在eclipse中有一个使用lambdas的maven项目,这意味着我需要java 8.我已经将maven中的java版本设置为1.8。但是,我必须不断打开项目的属性,并将其合规性级别设置为1.8,因为它不断重置为1.6。Eclipse一直忘记JDK合规性,将它设置为1.6

我在Eclipse EE Luna 4.4.0上尝试过不同的事情,比如禁用每个项目设置,或者进入项目并将其合规性设置为1.8,但这两件事从长远来看都不起作用。

通常在将项目符合性设置为1.8后,包视图显示ok,但是如果我有一个使用lambda表达式的打开文件,编辑器仍然显示错误。然后,我必须点击编辑器中的错误标记,然后选择建议“将项目合规性级别设置为1.8”。有时候这有效,有时候不行。

问题是在启动eclipse,关闭并打开同一个项目,或者当我做结账后特别触发的。当我执行alt + f5和更新时,包视图通常没有错误,但编辑器视图通常仍显示错误。

我的eclipse maven插件使用了我在命令行中使用的相同的maven脚本,并且我从来没有在命令行中遇到过问题。

这让我疯狂,因为它每天至少发生两次,而且没有简单的解决方法。

在我的两个聚甲醛和父POM文件的末尾我有这样的:

<project> 
. . . 
<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.1</version> 
      <configuration> 
       <encoding>UTF-8</encoding> 
       <source>1.8</source> 
       <target>1.8</target> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 
</project> 
+3

你是否正在用Java 8开始Eclipse? – 2014-10-31 19:03:32

+0

您是否尝试过使用Eclipse Perferences-> Java-> Compiler并将编译器合规性级别更改为1.8。这将使用默认值更改所有eclipse项目的默认JDK版本(尽管您付出了努力,这听起来像是这样做的)。也请看看http://maven.apache.org/plugins/maven-eclipse-plugin/trouble-shooting/jdk-being-used-is-different-than-expected.html – 2014-10-31 20:32:14

+0

@Elliot是的,我是从命令行启动它以获得更大的控制权。仅供参考,当我将JAVA_HOME和PATH设置为Java 7或8时,它没有任何区别。 – Fabio 2014-11-01 22:22:00

回答

2

你有插件安装M2E?

我以前有类似的问题,插件总是抱怨父pom的语法。 我终于禁用了插件,并使用mvn eclipse:eclipse来创建/更新项目。

+0

这是有道理的。在我的情况下,事情更加复杂,因为我们从另一个有很多魔法的pom继承了我们的pom。它包含的一个调整是设置java合规性。幸运的是,我们能够找到这个问题并纠正了父母的问题。 – Fabio 2015-03-05 15:42:59

0

在我的情况下,没有父母。我解决了它:
(1)从eclipse工作区删除项目(不要删除磁盘内容)。
(2)从目录(使用notepad ++)搜索“1.5”,在.settings/org.eclipse.jdt.core.prefs中发现3次,将它们替换为1.8并保存。
(3)在eclipse中重新打开项目。

请注意,如果您在ecplise编辑器中替换它们,它将不起作用。