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

如果您正在使用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构建

如果您的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构建

如果您的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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/344990.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【渝粤题库】广东开放大学 Linux 形成性考核

选择题 题目&#xff1a;以下描述正确的是&#xff1f; 答案&#xff1a; A、Linux就是批处理系统 B、批处理系统出现早于分时系统 C、Windows是批处理操作系统 D、批处理系统可以同时执行多个任务 题目&#xff1a;以下哪个是移动操作系统&#xff1f; 答案&#xff1a; A、Li…

Linux查看时间段文件,Linux查看特定时间段内修改过的文件

一.Linux系统日志的一些信息&#xff0c;日志配置文件syslog.conf系统日志一般都存在/var/log下常用的系统日志如下:核心启动日志:/var/log/dmesg系统报错日志:/var/log/messages邮件系统日志:/var/log/maillogFTP系统日志:/var/log/xferlog安全信息和系统登录与网络连接的信息…

【渝粤题库】广东开放大学 公共政策学 形成性考核

选择题 题目&#xff1a;公共政策学涵盖了社会学、经济学、政治学、历史学、心理学、人类学、法学和行政学等学科的理论与方法&#xff0c;这体现了公共政策学的&#xff08;&#xff09;。 答案&#xff1a; A、实践性 B、科学性 C、发展性 D、综合性 题目&#xff1a;&#x…

linux系统四个组成部分,Linux系统由哪几部分组成?系统详解(干货)

原标题&#xff1a;Linux系统由哪几部分组成&#xff1f;系统详解(干货)我们常说的Linux一般指的是系统内核&#xff0c;基于Linux系统内核的操作系统叫Linux发行版操作系统&#xff0c;像redhat、centos、ubuntu和安卓等都是Linux发行版操作系统。Linux一般有4个主要部分&…

【渝粤题库】广东开放大学 发展与教育心理学 形成性考核

选择题 题目&#xff1a;无意义音节的首创者和遗忘曲线的最先提出者是 答案&#xff1a; A、冯特 B、艾宾浩斯 C、巴甫洛夫 D、弗洛伊德 题目&#xff1a;影响心理发展的因素中&#xff0c;下列说法正确的是 答案&#xff1a; A、生理成熟制约着心理发展的顺序和规律 B、环境和…

【渝粤题库】广东开放大学 岭南文化概论 形成性考核

选择题 题目&#xff1a;号称祖先曾是"中原望族”的是&#xff08; &#xff09;。 答案&#xff1a; A、雷州人 B、广府人 C、潮汕人 D、客家人 题目&#xff1a;岭南可以成为广东的代名词&#xff0c;是因为&#xff08; &#xff09;。 答案&#xff1a; A、岭南全部的…

linux c 多文件编译,Linuxc - 多c文件程序编译执行

多文件使用&#xff0c;一起编译定义max.hint max(int a,int b);定义max.c#include "max.h"int max(int a,int b){if (a > b) {return a;} else {return b;}}定义主c文件#include #include "max.h"int main(){int a1 22;int a2 33;int maxNum max(a1…

Spring Boot微服务,Docker和Kubernetes研讨会–第一部分

在本系列研讨会中&#xff0c;我们将使用spring boot&#xff0c;docker构建一些微服务&#xff0c;然后将它们部署到kubernetes中。 因此&#xff0c;让我们开始吧。 首先&#xff0c;我们需要定义一个问题陈述。 可以说我们要建立一个订单管理系统。 识别域 第一步将是了解…

【渝粤题库】广东开放大学 建筑设备 形成性考核

选择题 题目&#xff1a;对于以防止触电为目的的漏电保护器宜选用&#xff08; &#xff09;。&#xff08;难度系数&#xff1a;易&#xff09; 答案&#xff1a; A、动作时间0.1秒&#xff0c;动作电流15毫安 B、动作时间0.5.秒&#xff0c;动作电流30毫安 C、动作时间0.1秒&…

linux 信号量锁 内核,Linux内核信号量互斥锁应用

主要介绍了Linux 内核关于信号量,互斥锁等的应用内核同步机制-信号量/互斥锁/读-写信号量 sema ,mutex ,rwsem信号量通用信号量用户类进程之间使用信号量(semaphore)进行同步&#xff0c;内核线程之间也使用了信号量,一个线程完成了某一个动作就通过信号量告诉别的线程&#xf…

【渝粤题库】广东开放大学 标准化法律法规 形成性考核

​选择题 题目&#xff1a;WTO/TBT协议即《技术性贸易壁垒协议》是WTO对缔约国标准化工作的规定&#xff0c;因次也称为( )。 题目&#xff1a;对于违法犯罪行为的制裁和惩罚&#xff0c;体现了法律的( ) 题目&#xff1a;《上海市标准化条例》、《广东省产品质量监督条例》都属…

【渝粤题库】广东开放大学 电算化会计 形成性考核

选择题 题目&#xff1a; 会计作为一个提供&#xff08; &#xff09;为主的信息系统&#xff0c;长期以来在企业的经营管理中起着非常重要的作用 题目&#xff1a; 会计作为一个提供&#xff08; &#xff09;为主的信息系统&#xff0c;长期以来在企业的经营管理中起着…

stacktraces_Stacktraces告诉了事实。 但事实并非如此。

stacktraces我们公司致力于使软件错误的原因对开发人员和运营透明。 与替代解决方案相反&#xff0c; 我们在您发现源代码中恶意代码的地方指出了问题的所在 。 即使目前我们以检测内存泄漏的能力而闻名&#xff0c;但我们也正在扩展到其他领域。 为了给您一些有关我们研究方向…

【渝粤题库】广东开放大学 营销策划 形成性考核

选择题 题目&#xff1a;宝洁公司旗下的洗发水品牌有飘柔、潘婷、海飞丝等不同的子品牌&#xff0c;这些品牌分别面对不同的细分市场&#xff0c;宝洁公司的细分依据是&#xff08; &#xff09;。 题目&#xff1a;在春节、中秋节、情人节等节日即将来临的时候&#xff0c;许多…

Linux搜索无线网络命令,Linux操作系统的无线网络命令

rts&#xff1a;指定RTS/CTS握手方式&#xff0c;使用RTS/CTS握手会增加额外开销&#xff0c;但如果无线网络中有隐藏无线节点或者有很多无线节点时可以提高性能。后面的参数指定一个使用该机制的最小包的大小&#xff0c;如果该值等于最大包大小&#xff0c;则相当于禁止使用该…

【渝粤题库】广东开放大学企业标准化 形成性考核

​&#x1f449;关注我,看答案&#x1f448; 选择题 题目&#xff1a;企业标准应当报当地标准化行政主管部门审查。 题目&#xff1a;决策论、规划论、库存论&#xff0c;都是企业质量管理中可以借鉴使用的管理办法。 题目&#xff1a;6σ工程包括6σ改进和6σ策划两种类型。 题…

在JDK 12精简数字格式中使用最小分数数字

帖子“ 紧凑数字格式出现在JDK 12中 ”演示了对JDK 12中 NumberFormat的支持&#xff0c;以支持紧凑数字格式 。 该帖子中显示的示例仅使用NumberFormat的调用重载了NumberFormat的新重载getCompactNumberInstance(-)方法返回的NumberFormat实例&#xff0c;因此没有指定诸如最…

linux做定时数据库备份,Linux实现定时备份数据库

1.创建开启定时任务1.1crontab -e 打开定时任务编辑器1.2 0 1 * * * /备份脚本存放路径-用crontab -e 编辑器打开存放好1.3 crontab -l 查看定时任务1.4 service crond start 启动定时任务1.5 service crond status查看定时任务状态2.创建定时备份脚本touch test.sh 创建脚本&…

【渝粤题库】陕西师范大学151112 审计学作业(高起专)

《审计学》作业 一、单选题 1.注册会计师评估的重大错报风险与所需审计证据的数量呈&#xff08; &#xff09;变动关系。 2.注册会计师在检查登记入账的销货业务的真实性时&#xff0c;有效的做法是&#xff08; &#xff09;。 A.从主营业务收入明细账追查至发运凭证 B.从发…

【渝粤题库】陕西师范大学163210 旅行社经营与管理

单选题 中国国际旅行社成立于&#xff08; &#xff09;年。 A.1949 B.1954 C.1980 D.1923 新中国成立后&#xff0c;我国第一家旅行社是1949年成立的&#xff08; &#xff09;。 A.厦门华侨服务社 B.中国青年旅行社 C.中国旅行社 D.中国国际旅行社 &#xff08; &#xff09;…