Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
简单编译在Maven下失败,在javac下成功_Java_Maven - Fatal编程技术网

简单编译在Maven下失败,在javac下成功

简单编译在Maven下失败,在javac下成功,java,maven,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; } } } (您可以通

我有一个简单的Maven项目,其中包括一个文件App.java,包含

package com.foo;

public class App 
{
    private Long wrapper;

    public long getlong() {
        if (null != wrapper) {
            return wrapper;
        } else {
            return 0;
        }
    }
}
(您可以通过使用Maven在5分钟内创建项目并将App.java替换为上述内容来复制这一点)

mvn编译
products

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

导航到目录并运行
javac App.java
时不会产生错误。有人知道怎么回事吗?(我假设Maven使用安装在我的机器上的任何版本的Java;在任何情况下,都是1.6.0_21。谢谢。

它可能是使用
源代码
目标
1.4版本编译的。您需要配置编译器插件以编译更高版本。请参阅和:

。。。
...
org.apache.maven.plugins
maven编译器插件
3
1.6
1.6
...
...

mvn版本
对正在使用的JDK版本报告了什么?
mvn-V编译
也报告了1.6.0_21。有趣的是,所有这些都发生在我的Ubuntu12.04机器上。当我在Mac OS盒上执行完全相同的操作时,Maven编译也能正常工作。在这种情况下,
mvn-V编译
报告了1.6.0_41。你是在Ubuntu上使用openJDK吗?谢谢!我想我是在某种程度上得到了1.4JDK,但不知道怎么用。再次感谢。
  ...
  <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>
  ...