1

我有一个简单的 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。谢谢。

4

1 回答 1

3

它可能正在使用1.4source或版本进行编译。target您将需要配置编译器插件以编译更高版本。请参阅“如何设置 Maven,以便它可以使用我选择的目标和源 JVM 进行编译?” “设置Java 编译器的-source-target” :

  ...
  <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>
  ...
于 2013-03-08T21:15:54.153 回答