我试着构建一些maven项目。它失败了,因为maven使用的是旧的java 1.3,而项目使用的是泛型。我知道我可以重写maven编译器插件的版本、源代码和目标,但这不是重点。
重现步骤
$ git clone https://github.com/DuLerWeil/netty-diameter && cd netty-diameter
$ mvn help:effective-pom
...
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<executions>
<execution>
<id>default-testCompile</id>
<phase>test-compile</phase>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
<execution>
<id>default-compile</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>我的设置:
$ mvn -v
Apache Maven 3.0.5
Maven home: /usr/share/maven
Java version: 1.7.0_72, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-7-oracle/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.16.0-28-generic", arch: "amd64", family: "unix"
$ printenv JAVA_HOME
/usr/lib/jvm/java-7-oracle
$ readlink -f $(type -p java)
/usr/lib/jvm/java-7-oracle/jre/bin/java
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.10
Release: 14.10
Codename: utopic发布于 2014-12-22 22:36:24
您的JAVA_HOME需要指向JDK,而不是JRE。JDK是Java开发环境,只有这个包含javac可执行文件(编译器)。maven编译器插件使用javac编译器-它本身并不是一个编译器。
编译器插件也有一些配置来定义java版本。参见http://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html中的“源”和“目标”
可以在这里找到一个用法示例:http://maven.apache.org/plugins/maven-compiler-plugin/usage.html -您可能可以删除执行配置-因为它看起来像默认值。
https://stackoverflow.com/questions/27604341
复制相似问题