我在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