2014-10-31 25 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編輯器中替換它們,它將不起作用。