简单的编译在Maven下失败,与javac一起成功

时间:2013-03-08 21:01:24

标签: java maven

我有一个简单的Maven项目,其中包含一个包含

的文件App.java
package com.foo;

public class App 
{
    private Long wrapper;

    public long getlong() {
        if (null != wrapper) {
            return wrapper;
        } else {
            return 0;
        }
    }
}

(你可以在5分钟的项目创建中使用Maven并用上面的代码替换App.java来复制它。)

mvn compile生成

.../foo/App.java:[9,12] incompatible types
found   : java.lang.Long
required: long

导航到目录并运行javac App.java时不会产生任何错误。有谁知道怎么了? (我假设Maven使用我的盒子上安装的任何Java版本;无论如何,那是1.6.0_21。谢谢。

1 个答案:

答案 0 :(得分:3)

可能正在使用1.4的sourcetarget版本进行编译。您需要配置编译器插件以编译更高版本。请参阅"How do I set up Maven so it will compile with a target and source JVM of my choice?""Setting the -source and -target of the Java Compiler"

  ...
  <build>
  ...
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.0</version>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
        </configuration>
      </plugin>
    </plugins>
  ...
  </build>
  ...