【问题标题】:Why do I need to change project compliance to 1.5?为什么我需要将项目合规性更改为 1.5?
【发布时间】:2010-10-29 06:53:33
【问题描述】:

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

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

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

提前致谢!

【问题讨论】:

    标签: java maven-2


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      虽然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)
      【解决方案3】:

      将以下行添加到 POM:

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

      编辑: 啊,太糟糕了,刚刚看到那些是自定义属性...不起作用。

      【讨论】:

      • 什么?这是从哪里来的?这应该做什么?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-27
      • 1970-01-01
      • 2011-11-26
      • 2021-04-14
      • 2023-03-27
      • 2019-10-04
      • 2011-10-20
      相关资源
      最近更新 更多