2010-10-29 73 views
7

我在eclipse上用maven2创建了一个项目。之后我加入了休眠批注的依赖,我试图创建一个使用Hibernate注解(@实体,@Table ...)一类,但它给我这个错误:为什么我需要将项目合规性更改为1.5?

更改项目合规性和JRE到1.5

我修正了它,但不明白为什么它需要这个,只要我的jdk是1.6。

提前致谢!

回答

11

检查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> 
+0

非常好。谢谢! – artaxerxe 2010-10-29 07:18:03

-1

添加以下行至POM:

<properties> 
     <java.version>1.6</java.version> 
    </properties> 

编辑: 啊,太糟糕了,刚才看到的是自定义属性...荣获”工作。

+2

Whaaaaat?这是从哪里来的?这应该做什么? – 2010-10-29 07:47:24

+0

不好回答!不起作用! – artaxerxe 2010-10-29 08:22:49

9

虽然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

+2

设置编译器级别正在成为SO的模因之一;)(+1) – 2010-10-29 11:17:53

+0

真的很棒的提示! – artaxerxe 2010-10-29 12:12:45

相关问题