maven_如何修复无效的目标版本:Maven Build中的1.7、1.8、1.9或1.10错误

maven

maven

如果您正在使用Maven构建Java项目,则可能是在Eclipse中运行mvn install或在命令提示符下运行mvn install,而构建失败并显示诸如“无效目标版本:1.7”“无效目标版本:1.8”之类的错误,那么您来了到正确的地方。 在本文中,我将向您显示发生此错误的原因,以及即使在您的计算机上安装了更高的Java版本(如Java 9、10),也可能在接下来的一个月中使用Java 11,如何处理这些错误。 问题的根本原因是,您在pom.xml文件中为Maven编译器插件指定了更高的Java版本,而不是Maven在系统中所知道的,因此这就是说无效的目标发行版的原因。

一个简单的解决方案是在pom.xml中减少目标版本,或者如果要在更高版本中构建项目,则安装新的Java版本。

但是,解决此问题的关键是要知道Maven从JAVA_HOME变量而不是从PATH环境变量中选择Java版本。

这意味着即使您已经安装了JDK 8,但是如果您的JAVA_HOME仍在引用JDK 1.7,那么您将收到此错误。

幸运的是,您可以发现,我的意思是您的Maven使用的是哪个Java版本。 只需从命令提示符处运行mvn -version命令,它将打印JAVA_HOME变量的值并确认它正在使用哪个版本的JDK来构建您的项目。

最近,当我遇到此错误时,我正在旧计算机上使用Maven构建Java项目。 我以为自己拥有最新的Java版本,这就是为什么我对此错误感到惊讶。

这是我的Maven pom.xml的样子:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>

这是mvn -version的示例输出:

$ mvn -version
Apache Maven 3.2.3 (33f8c3e1027c3ddde99d3cdebad2656a31e8fdf4; 2014-08-12T04:58:10+08:00
Maven home: C:\apache-maven-3.2.3
Java version: 1.6.0_37, vendor: Sun Microsystems Inc.
Java home: C:\jdk1.6.0_37\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "x86", family: "windows"

您可以看到我的机器中的Maven使用的是JDK 1.6.0_37 ,这就是为什么当我使用JDK 1.7作为目标构建Maven项目时它失败了的原因。

一旦我将pom.xml更新为使用目标1.6,该构建便开始工作。

因为我的项目不需要Java 7,所以只需更改Maven编译插件,如下所示:

<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>
<encoding>UTF-8</encoding>
</configuration>
</plugin>

但是,如果必须使用JDK 1.7来构建Java项目,则只需安装并更新JAVA_HOME变量,该错误就会消失。

这个解决方案非常好,因为您可以立即解决问题。

Maven构建

如果您的maven编译器插件具有<target> 1.8 </,则会出现此错误目标>,但您计算机中的JAVA_HOME变量所引用的Java版本低于JDK 1.8,例如JDK 1.6或JDK 1.7。

Maven文件最初可能看起来像:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>

为了解决此错误,请更改目标以使其与Java版本匹配,以引用您的JAVA_HOME变量,或者安装新的JDK并更新JAVA_HOME变量。

如果您不知道,请参见本文,以查找在WindowsLinux中更改JAVA_HOME环境变量的值的确切步骤。

顺便说一句,如果您在受限的环境中工作(例如在一家大型公司中,该公司会自动部署软件并且无法添加或编辑环境变量),您仍然可以在本地外壳中更改它们,如我之前的文章如何设置Windows中Maven的特定Java版本

Maven构建

如果您的maven编译器插件具有<target> 1.9 </ target>,但您的计算机中的JAVA_HOME变量所引用的Java版本低于JDK 1.9,例如JDK 1.8或JDK 1.7,则会出现此错误。

如前一节所述,将目标更改为pom.xml或安装新的JDK并更新JAVA_HOME环境变量以指出新的JDK bin目录。

由于Maven使用JAVA_HOME,因此即使您安装了正确的Java版本,也要等到更新此环境变量后才能解决问题。

同样,如果使用编译,您将获得无效的目标版本:1.10<target> 1.10 </ target>,并且您的JAVA_HOME是指JDK 9或JDK 8。

现在,您可以泛化此问题并根据您在pom.xml中指定的Java版本以及计算机上安装的Java版本以及JAVA_HOME环境变量引用的Java版本进行解决。

您可能喜欢的其他Maven文章

  • Maven,ANT和Jenkins有什么区别? ( 回答)
  • 如何增加Maven的堆大小? ( 步骤)
  • 如何解决Maven Eclipse Dependency搜索不起作用的问题? ( 解决方案)
  • 如何在Windows 10中安装Maven? ( 步骤)
  • 如何使用ANT构建Java项目? ( 文章)
  • 如何在ANT中创建或修改build.xm? ( 教程)
  • 前5位免费的Apache Maven书籍( 书籍)
  • 关于Maven Java开发人员应了解的10点( maven )
  • 每个Java开发人员都应该知道的10个Maven插件( 插件)
  • 6个Java开发人员免费的Maven和Jenkins课程( 课程)
  • 如何为Maven设置特定的Java版本( 教程)

感谢您到目前为止阅读本文。 如果您通过遵循这些提示来解决问题,请与您的朋友和同事分享。 如果您仍然遇到问题,请留下注释,我们也许可以一起解决您的问题。

翻译自: https://www.javacodegeeks.com/2018/12/fix-invalid-target-release-error-maven.html

maven

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值