为什么我需要将项目合规性更改为1.5?

art*_*rxe 8 java maven-2

我在eclipse上用maven2创建了一个项目.在我添加了hibernate-annotations依赖项之后,我试图使用hibernate注释创建一个类(@ Entity,@ Table ...),但它给了我这个错误:

将项目合规性和JRE更改为1.5

我修好了,但是只要我的jdk是1.6就无法理解为什么它需要这个.

预先感谢!

jav*_*y79 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>
Run Code Online (Sandbox Code Playgroud)


Sea*_*oyd 9

虽然javamonkey79的解决方案是标准的方法,但也有一个基于属性的解决方案,但它不是fgysin建议的那个:

<properties>
    <maven.compiler.source>1.6</maven.compiler.source>
    <maven.compiler.target>1.6</maven.compiler.target>
</properties>
Run Code Online (Sandbox Code Playgroud)

参考(Maven编译器插件):

BTW,原因是maven编译器插件构建了对javac的命令行调用,其中它明确指定了源版本和目标版本(覆盖javac的默认设置).以前版本的编译器插件的默认值设置为1.3.但是,从插件版本2.3开始,1.5是默认的源和目标版本.

  • 设置编译器级别正在成为SO的模因之一;)(+ 1) (2认同)