致命错误编译:无效的目标版本:1.8 -> [帮助 1]。

202

与在invalid target release: 1.7上发布的问题类似,但是在遵循该博客后,我的问题仍未解决。

在hm_app项目上执行org.apache.maven.plugins:maven-compiler-plugin:3.1:compile(默认编译)目标失败:致命错误编译:无效的目标版本:1.8 -> [帮助1]

我正在按照教程进行操作时遇到了这个问题。

abt java & mvn

C:\mvn>echo %JAVA_HOME% 
C:\mvn>echo %JRE_HOME%
C:\mvn>echo %MAVEN_HOME% yields

输出

C:\Program Files\Java\jdk1.7.0_51
C:\Program Files\Java\jre7
C:\apache-maven-3.0.4

5
你确定已经安装了Java 8吗? - Makoto
我有x86、64位Java 7,但没有Java 8。 - rvd
4
好的,你为什么要在没有Java 8编译器的情况下尝试编译Java 8代码? - Makoto
@Makoto 谢谢您关注我的问题,安装Java 8解决了它...谢谢你:) - rvd
@Makoto,最终我明白了你的意思:“好吧。那么为什么你要在没有Java 8编译器的情况下尝试编译Java 8代码?”于是我只需在我的pom.xml文件中将java.version>1.8</java.version>更改为java.version>1.7</java.version>,就可以在Java 7上使用mvn编译了。 - rvd
22个回答

1

在 Windows 机器上,您可以临时设置 Java 版本。
例如,要将版本更改为 Java 8,请在 cmd 上运行此命令:

set JAVA_HOME=C:\\...\jdk1.8.0_65

1
在我的情况下(使用IntelliJ),我需要检查是否有正确的运行器来运行maven:
  1. 首选项
  2. 构建、执行、部署
  3. Maven -> 运行器

Preferences


1
我面临的问题是我能够通过命令提示符进行Maven构建,但无法在Eclipse中进行。对我有用的方法是将运行配置更改为指向JDK内部的JRE文件夹,而不是仅按照标准留在JDK文件夹中。这个解决方案也可能适用于您,但只有在所有Java路径都正确,java和javac显示与pom.xml目标中相同的版本时才尝试此操作。

这是我的问题和解决方案。 - Skystrider

0

这个问题并没有明确涉及到Docker,但是当我有一个针对1.9版本的pom.xml文件时,我收到了相同的错误信息...

<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <maven.compiler.source>1.9</maven.compiler.source>
  <maven.compiler.target>1.9</maven.compiler.target>
</properties>

...但是后来尝试通过仅指定“maven”来运行针对Docker容器的测试。

docker run -t --rm -v m2_repository:/root/.m2/repository -v $(pwd):/work -w /work maven mvn -e test

对我来说,解决方法是针对我需要的确切版本进行定位。

docker run -t --rm -v m2_repository:/root/.m2/repository -v $(pwd):/work -w /work maven:3.5.2-jdk-9 mvn test

(你可以在这里了解更多。)


0
如果您正在使用Eclipse IDE,则进入“Window”菜单并选择“Preferences”,然后在那里搜索已安装的JRE,并选择您需要构建项目的JRE。

0

进行强制Maven更新,这将带来兼容的1.8 Jar版本,然后在构建时,从运行配置中将执行环境中的JRE版本更新为1.8,然后点击运行


0
首先,如果您正在使用Eclipse,请检查Build Path -> Configure Build Path -> Java Build Path,查看您的项目使用的Java版本。我建议使用Java 1.8。 其次,请检查pom.xml文件。按Ctrl + F搜索文本“java.version”=>将其更改为1.8。 第三步安装Java 1.8,然后将JAVE_HOME路径更改为指向Java 1.8文件夹。

0

NETBEANS 错误: 无法执行目标 org.apache.maven.pluginsmaven-compiler-plugin3.1compile(默认编译)在项目 doit 上,编译无效目标版本 11 致命错误 - [帮助 1]

如何解决我的问题: 右键单击项目。 转到属性。 点击源。 进入源/二进制格式并更改为最新版本

在我的情况下(1.8)


0

请验证您的pom.xml文件和环境变量中的jdk版本是否相同。如果不同,请将它们设置为相同。

在pom.xml文件中 ->

<properties>
        <java.version>11</java.version>
</properties>

在环境变量中 -> JAVA_HOME = C:\Program Files\Java\jdk-11.0.13


0
在我的情况下,将maven-compiler-plugin的版本从3.8.1升级到3.10.1解决了这个问题:
<plugin>
   <artifactId>maven-compiler-plugin</artifactId>
   <version>3.10.1</version>
   <configuration>
   <release>${maven.compiler.release}</release>
   </configuration>
</plugin>

其中 ${maven.compiler.release} = 你的 Java 版本


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接