当我建立和Netbeans的运行我的程序,它的工作原理没有问题。 但随着同pom.xml文件,当我尝试“MVN编译”我得到这个错误:
[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
我的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"
这是行53:
Token<BlockTokenIdentifier> token = locatedBlock.getBlockToken();
问题是, maven-compiler-plugin
中的Maven2默认使用-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>
它的实用性将此放入pluginManagement
节在最顶层父POM让你的派生劲歌不需要关心这个。
你必须在你的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>
在你的日志中,我看到这一行:
generics are not supported in -source 1.3
检查源和目标行家编译插件的配置,并且将其更新至1.5。
看来你的Maven编译器插件的版本是1.3。
看看这个链接来强制编译器与JDK 1.7,运行http://maven.apache.org/plugins/maven-compiler-plugin/examples/compile-using-different-jdk.html
看来你的Maven的Java主点到JRE的jdk不
Java home: /usr/lib/jvm/java-7-openjdk-amd64/jre
你必须将其更改为一个JDK。
尝试java -version
,看看还有什么
使用/usr/sbin/alternatives --config java
改变你的Java版本。
这里有一个稍微不同的方式来解决在Eclipse靛蓝同样的错误。
这将插入在你的pom.xml一个新的部分,并打开一个窗口进行编辑。
然后可以添加源和如上所述来选择正确的JRE目标XML元素。
该部分看起来像这样在我的项目:
<build>
<plugins>
<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>
</plugins>
</build>
注意“构建”和“插件”不存在于一些其他职位的额外标签。
一旦你保存文件,Eclipse会通知你,你的POM是与你的项目同步。
然后,您可以右键单击该项目...选择Maven..update项目
我的一个重要观点是,Maven将自动重新设置在Eclipse中构建路径。 您可以通过项目验证......建立path..configure构建路径...图书馆。
因此,在本质上,这意味着你不应该乱用,如果你使用的是Maven项目在Eclipse中直接配置构建路径。
HTH
请从日食执行Maven的运行,然后再从命令提示符MVN测试。 在我的情况下解决这个步骤中的所有问题。