简单编译在Maven下失败,在javac下成功
我有一个简单的Maven项目,其中包括一个文件App.java,包含简单编译在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; } } } (您可以通
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>
...