我在eclipse上用maven2創建了一個項目。之後我加入了休眠批註的依賴,我試圖創建一個使用Hibernate註解(@實體,@Table ...)一類,但它給我這個錯誤:爲什麼我需要將項目合規性更改爲1.5?
更改項目合規性和JRE到1.5
我修正了它,但不明白爲什麼它需要這個,只要我的jdk是1.6。
提前致謝!
我在eclipse上用maven2創建了一個項目。之後我加入了休眠批註的依賴,我試圖創建一個使用Hibernate註解(@實體,@Table ...)一類,但它給我這個錯誤:爲什麼我需要將項目合規性更改爲1.5?
更改項目合規性和JRE到1.5
我修正了它,但不明白爲什麼它需要這個,只要我的jdk是1.6。
提前致謝!
檢查maven編譯器插件的設置是否也設置爲1.5或1.6。如果我沒有弄錯,maven 2默認爲1.4。
事情是這樣的:
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
添加以下行至POM:
<properties>
<java.version>1.6</java.version>
</properties>
編輯: 啊,太糟糕了,剛纔看到的是自定義屬性...榮獲」工作。
Whaaaaat?這是從哪裏來的?這應該做什麼? – 2010-10-29 07:47:24
不好回答!不起作用! – artaxerxe 2010-10-29 08:22:49
雖然javamonkey79's solution是做它的標準方式,也有基於屬性的解決方案,但它不是the one fgysin suggests:
<properties>
<maven.compiler.source>1.6</maven.compiler.source>
<maven.compiler.target>1.6</maven.compiler.target>
</properties>
參考(Maven的編譯器插件):
順便說一句,原因是maven compiler plugin建立一個命令行調用到javac,其中它顯式指定源和目標版本(覆蓋javac的默認設置)。以前版本的編譯器插件有自己的默認設置爲1.3。然而,從插件版本2.3開始,1.5 is the default source and target version。
設置編譯器級別正在成爲SO的模因之一;)(+1) – 2010-10-29 11:17:53
真的很棒的提示! – artaxerxe 2010-10-29 12:12:45
非常好。謝謝! – artaxerxe 2010-10-29 07:18:03