Maven编译错误

met*_*dos 12 java netbeans build maven-3 maven

当我在Netbeans中构建和运行我的程序时,它没有问题.但是当我尝试"mvn compile"时使用相同的pom.xml文件我收到此错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile) on project hadoop-test: Compilation failure
[ERROR] /home/metin/NetBeansProjects/hadoop-test/src/main/java/com/citusdata/hadoop/HadoopTest.java:[53,8] error: generics are not supported in -source 1.3
Run Code Online (Sandbox Code Playgroud)

我的java版本不是1.3,这里是"mvn -version"的结果

Apache Maven 3.0.4
Maven home: /usr/share/maven
Java version: 1.7.0_03, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-7-openjdk-amd64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.2.0-27-generic", arch: "amd64", family: "unix"
Run Code Online (Sandbox Code Playgroud)

这是第53行:

Token<BlockTokenIdentifier> token = locatedBlock.getBlockToken();
Run Code Online (Sandbox Code Playgroud)

Pet*_*lka 22

问题是maven-compiler-pluginMaven2默认使用-source 1.3和target 1.3

您可以通过将其添加到您的pom来修复它:

    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <configuration>
        <compilerVersion>1.5</compilerVersion>
        <source>1.5</source>
        <target>1.5</target>
      </configuration>
    </plugin>
Run Code Online (Sandbox Code Playgroud)

将它放在pluginManagement最顶层的父pom中是可行的,这样你派生的poms就不需要关心它了.

  • 我的Maven版本是3.0.4。最终将如何使用旧的maven-compiler-plugin? (2认同)

Age*_*men 5

您必须在pom.xml中添加一些信息.像这样的东西:

   <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.3.2</version>
        <configuration>
             <source>1.6</source>
             <target>1.6</target>
        </configuration>
  </plugin>
Run Code Online (Sandbox Code Playgroud)