中国建设学会查询网站,这几年做哪个网站致富,网站做优化每天一定要更新,顺义手机网站设计如果您正在使用Maven构建Java项目#xff0c;可能是在Eclipse中#xff0c;或者是通过运行mvn install在命令提示符下构建的#xff0c;并且构建失败并显示诸如“无效的目标发行版#xff1a;1.7”或“无效的目标发行版#xff1a;1.8”之类的错误#xff0c;那么您来了到… 如果您正在使用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
groupIdorg.apache.maven.plugins/groupId
artifactIdmaven-compiler-plugin/artifactId
version3.0/version
configuration
source1.7/source
target1.7/target
encodingUTF-8/encoding
/configuration
/plugin 这是mvn -version的示例输出 $ mvn -version
Apache Maven 3.2.3 (33f8c3e1027c3ddde99d3cdebad2656a31e8fdf4; 2014-08-12T04:58:1008: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
groupIdorg.apache.maven.plugins/groupId
artifactIdmaven-compiler-plugin/artifactId
version3.0/version
configuration
source1.6/source
target1.6/target
encodingUTF-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
groupIdorg.apache.maven.plugins/groupId
artifactIdmaven-compiler-plugin/artifactId
version3.0/version
configuration
source1.8/source
target1.8/target
encodingUTF-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文章 MavenANT和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