如果您正在使用Maven构建Java项目,可能是在Eclipse中,或者是通过运行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编译器插件具有<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变量。

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

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


如果您的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 Developer的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 Build中的1.7、1.8、1.9或1.10错误相关推荐

  1. Maven build中隐藏的SAP UI5 JavaScript merge任务

    Created by Wang, Jerry on Mar 23, 2015

  2. idea maven报错:avac: 无效的目标发行版: 1.8 解决方法

    本文转自:https://blog.csdn.net/qq_37107280/article/details/73246274 此刻我怀着沉重的心情,写下这个恶心了我4个多小时的解决办法: maven ...

  3. Maven编译 Fatal error compiling: 无效的目标发行版: 11

    安装了Java11后,用其编译多个Springboot工程,老是失败,后来发现所有工程指定了java版本为java8,于是乎卸载了java11,安装了java8,再去编译. 其中某个工程在之前用jav ...

  4. eclipse maven项目 maven build 提示jdk版本不对

    eclipse打包maven项目提示jdk版本不对,但eclipse版本已经修改jdk版本,可查看maven配置是否正确 maven项目中pom.xml 添加 <build><plu ...

  5. 在eclipse如何删除无效的maven build

    在Eclipse的maven项目中,点击一次"maven build..."明明没有配置,它也就会产生一个maven build,那么如何删除这些无效的配置呢?

  6. idea 无效的目标发行版_maven构建异常(无效的目标发行版: 1.8)

     (曾经也被这个问题困扰很久.这文章是我见过最全面的.转来学习下)   此刻我怀着沉重的心情,写下这个恶心了我4个多小时的解决办法: maven编译时候报的错误如下: [INFO] BUILD FAI ...

  7. IDEA解决Fatal error compiling: 错误: 无效的目标发行版:1.11 - [Help 1]

    解决Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compi ...

  8. 想法:javac:源版本1.7需要目标版本1.7

    本文翻译自:IDEA: javac: source release 1.7 requires target release 1.7 When running a JUnit test, using I ...

  9. Fatal error compiling: 无效的目标发行版: 3.1

    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-c ...

最新文章

  1. 第11章 linux文档的压缩与打包
  2. 天天象棋 残局闯关 第8关
  3. 2018牛客暑假多校二 D(贪心)
  4. 160 - 47 DueList.2
  5. 论文浅尝 | 虚拟知识图谱:软件系统和应用案例综述
  6. Linux内核(1)--从开机到main函数
  7. Marquee无间隙滚动(二)
  8. 如何清除/删除终端中的当前行?
  9. Spring注解浅入浅出——不吹牛逼不装逼
  10. Stopwatch示例
  11. keras搭建wgan-gp和wgan-div,可生成图像
  12. excel表格乱码修复_修复从数据库复制的空白Excel单元格
  13. Java 操作Word书签:用文本、图片、表格替换书签
  14. java强势来袭 百战程序员Java基础入门教程,学编程就像玩游戏一样简单 ~
  15. 2021深圳杯d题数学建模 基于一个微分对策问题的机器学习能力定量评价
  16. Graphics画图自定义画笔
  17. 使用nssm将STAF安装为windows系统服务
  18. 深度学习图像分类:Kaggle植物幼苗分类(Plant Seedlings Classification)完整代码
  19. python缺点特性_day1---python的基础特性
  20. 惊魂,我的23个密码被泄露,快看看你的有没有泄露

热门文章

  1. Stack(nowcoder 11253-K)
  2. 2015 German Collegiate Programming Contest (GCPC 15)
  3. 10、mybatis中缓存的使用
  4. Nacos(四)之安装
  5. Spring Boot之基于Redis实现MyBatis查询缓存解决方案
  6. JavaFX UI控件教程(十六)之Separator
  7. Mybatis传入参数类型为Map
  8. java.util.Stack类简介
  9. 一个java源文件中可以声明多少个class与编译后会生成多少个字节码文件
  10. System.err: java.net.UnknownServiceException: CLEARTEXT communication to 192.168.43.172 not permitte