mvn安装期间发生java编译错误
我已经尝试过mvn安装和mvn clean安装,但都抛出了相同的错误:
[Error] *dir/class.java* try-with-resources is not supported in -source 1.5
以下是我的环境信息:
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: /opt/maven
Java version: 1.8.0_77-debug, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.77-0.b03.el6_7.x86_64-debug/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "2.6.32-431.23.3.el6.x86_64", arch: "amd64", family: "unix"
是因为maven运行在Java1.5上,而不是1.8上吗?如果是的话,是否有方法更改maven使用的版本
# 1 楼答案
您的java版本返回了正确的java 8版本, Java版本:1.8.0_77-debug,供应商:Oracle公司 确保javac-version也正确返回 Java版本:1.8.0_77-debug,供应商:Oracle Corporation
# 2 楼答案
这与Linux无关。唯一的问题是,您使用的是Java 7引入的
try-with-resource
,默认情况下,maven被配置为使用1.5规范编译Java源代码。如果您需要使用@UUID指定的try-with-resource
特性,您可以配置maven-compiler-plugin
使用源代码和目标1.7进行编译不,Maven可以在任何Java版本上运行(我不知道Maven不运行哪个版本的Java)。然而,我认为Maven可以编译的最大版本取决于Maven运行的Java版本。也就是说,如果您的maven在JDK 7上运行,那么源代码和目标代码的最高版本也将是Java 7
# 3 楼答案
将java版本更改为1.7或更高版本
您可以在pom中覆盖版本
在spring boot项目中,您可以在属性中覆盖版本
# 4 楼答案
如果您使用的Java功能只能从特定的Java版本获得,那么您应该在
pom.xml
中声明它运行
mvn
时,适当的JDK应该位于PATH
中例如
# 5 楼答案
try with resources仅在Java1.7中提供。为此,您需要使用源java版本来>=1.7和目标版本>;=1.7(即>;=$source.version)