2016-04-23 54 views
2

因爲理論上錯誤的Java版本我有問題建立在我的IntelliJ項目:的IntelliJ:如何設置項目配置到Java 1.8

enter image description here

在現實中我的項目設置是否正確:

enter image description here

的Java 1.8也被設置爲默認的JDK我的操作系統。可惜的是,當我嘗試Ø使我的項目,我得到以下錯誤:

enter image description here

你有我應該在哪裏,以successfuly建立我的項目更改配置什麼想法?

更新 在pom.xml文件specyfying屬性之後:

<maven.compiler.source>1.8</maven.compiler.source> 
<maven.compiler.target>1.8</maven.compiler.target> 

項目建立正確地將。奇怪的是,當我刪除那些屬性(所以回到初始狀態),並試圖再次建立項目,一切正常。儘管如此,Intellij指出,我的行會導致第一張圖片上顯示的錯誤。有人知道爲什麼嗎?在編輯器 - >檢查部分我有選擇的選項,尊重項目語言級別設置,所以要根據項目配置,它應該是所有的權利(但不是):

enter image description here

回答

3

我找到了答案!其實我不明白,爲什麼默認版本的Java編譯器設置爲1.5版本...我希望你會發現它也有利於

enter image description here

+1

參見[阿帕奇Maven的編譯器插件(https://maven.apache.org/plugins/maven-compiler-plugin/):「_Also注意到,目前默認的'source'設置爲'1.5',默認的'target'設置爲'1.5',與您運行Maven的JDK無關._「 –

0

如果你這樣做不指定maven.compiler.sourcemaven.compiler.target,則使用一些默認值,它們不是1.8。這就是爲什麼編輯失敗了,就像你已經看到的那樣。

一旦你在pom.xml中添加了正確的值,編譯成功了,正如你也見證的那樣。

然後,發生什麼事是IntelliJ IDEA以某種方式在某處緩存了這些值。 (我認爲IDEA項目文件是使用從pom.xml中獲取的值進行更新的,但根據您的經驗判斷,顯然不是這樣)。

一旦IDEA緩存了這些值,就可以將它們從pom文件中刪除,而且事情會繼續顯然工作一段時間。但事實上已經破裂了。因此,如果您重新導入Maven項目,或者如果您刪除IntelliJ IDEA索引(因此實質上清除緩存的信息),則問題將重新出現。

因此,需要記住的規則是:如果您的項目使用了pom.xml,那麼pom.xml是查找構建的權威位置,並且IntelliJ IDEA項目屬性對話框不再準確。

我同意,它不能很好地工作,如果IntelliJ人提供了一個解決方案,使他們的項目屬性對話框與pom.xml文件更加一致,並且他們緩存的任何信息都會更好。

相關問題