【发布时间】:2010-10-29 06:53:33
【问题描述】:
我在eclipse上用maven2创建了一个项目。添加 hibernate-annotations 依赖项后,我试图使用 hibernate 注释(@Entity,@Table ...)创建一个类,但它给了我这个错误:
将项目合规性和 JRE 更改为 1.5
我修复了它,但不明白为什么只要我的 jdk 是 1.6 就需要它。
提前致谢!
【问题讨论】:
我在eclipse上用maven2创建了一个项目。添加 hibernate-annotations 依赖项后,我试图使用 hibernate 注释(@Entity,@Table ...)创建一个类,但它给了我这个错误:
将项目合规性和 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>
【讨论】:
虽然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.
【讨论】:
将以下行添加到 POM:
<properties>
<java.version>1.6</java.version>
</properties>
编辑: 啊,太糟糕了,刚刚看到那些是自定义属性...不起作用。
【讨论】: