当前位置: 首页 > 知识库问答 >
问题:

Maven:编译错误:目标版本1.8无效

拓拔俊德
2023-03-14

我们刚刚将项目从JDK1.6升级到JDK1.8。在我的机器中构建项目时,我遇到以下错误。

[错误]无法执行目标org.apache.maven.plugins:maven-compiler-plugin:3.3:在项目上编译(default-compile)异常:编译时出现致命错误:目标版本无效:1.8->[帮助1]

下面是所使用的maven编译器插件

 <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.3</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
        </configuration>
  </plugin>

我看了很多帖子,其中大多数都与没有为java_home配置正确的版本有关。我验证了所有这些方面,但没有发现任何一个值得警惕的。

Java版本-

 qadeersmsiphone:main pdubey$ java -version
 java version "1.8.0_51"
 Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
 Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)

Maven版本-

qadeersmsiphone:main pdubey$ mvn -version
Apache Maven 3.1.1 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-17 08:22:22-0700)
Maven home: /usr/share/maven
Java version: 1.8.0_51, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.8.5", arch: "x86_64", family: "mac"

并且我检查了maven在构建项目时使用JDK1.8

qadeersmsiphone:main pdubey$ mvn install -debug
Apache Maven 3.1.1 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-17 08:22:22-0700)
Maven home: /usr/share/maven
Java version: 1.8.0_51, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.8.5", arch: "x86_64", family: "mac"
[INFO] Error stacktraces are turned on.
[DEBUG] Reading global settings from /usr/share/maven/conf/settings.xml
[DEBUG] Reading user settings from /Users/pdubey/.m2/settings.xml
[DEBUG] Using local repository at /Users/pdubey/.m2/repository
[DEBUG] Using manager EnhancedLocalRepositoryManager with priority 10.0 for  /Users/pdubey/.m2/repository
[INFO] Scanning for projects...

更新:我可以通过删除pom文件中的maven-compiler-plugin来使其工作(理想情况下,我不想这样做)。而且我还注意到,即使我删除了这个插件,maven默认情况下也会在本地repo中下载3.3版本的编译器插件。我不确定这个插件有什么问题,尽管源码和目标看起来是正确的。

共有1个答案

墨翔宇
2023-03-14

检查java和Javac版本-我的java版本是1.8.0_51

$ java -version
java version "1.8.0_51"

但javac版本指向旧的jdk1.7.0_67

$ javac -version
javac 1.7.0_67

有几件事我们应该试试-

cd /System/Library/Frameworks/JavaVM.framework/Versions/
rm CurrentJDK
ln -s /Library/Java/JavaVirtualMachines/<jdk version>.jdk/Contents/ CurrentJDK

在/library/java/extension中,我有一个tools.jar。我相信,这是老JDK的。

cd /Library/Java/Extensions
-rw-r--r--  1 root  admin  15286304 Jan 14  2015 tools.jar

删除此

sudo rm -rf /Library/Java/Extensions

第2点对我起到了关键作用:)

 类似资料:
  • 我也尝试过更改meven插件和java编译器的版本,但不幸的是,我无法修复错误。 下面是mvn-v的输出:Apache Maven 3.6.0

  • 问题内容: 类似的问题,例如在无效目标版本上发布的问题:1.7,但是在关注博客之后,我的问题仍然没有解决。 无法在项目hm_app上执行目标org.apache.maven.plugins:maven-compiler- plugin:3.1:compile(默认编译):致命错误编译:无效目标版本:1.8-> [帮助1] 遇到此问题时,我正在按照教程进行操作。 输出 问题答案: 您已将jdk 设置

  • 我正在IntelliJ上运行一个Java Maven项目,我确保这个项目将由Java1.8编译。 而且 当我运行该项目时,我得到一个错误: 无法执行目标org.apache.maven.plugins:maven-compiler-plugin:3.0:project feed_matcher上的compile(default-compile):编译错误:无效的目标版本:1.8->[帮助1] 你知

  • 我在Windows机器上使用Java8编译测试时遇到问题。当我在IntelliJ IDE中编译和运行测试时没有问题,但是当我在命令行上编译时,我得到一个“致命错误编译:无效目标发布: 1.8” 这工作就好: 这失败了: 我的pom.xml包括以下编译器插件配置: 我有正确的java版本: 任何帮助都将不胜感激。

  • 我正在使用intellij创建sbt跨编译平台项目,使用以下平台JVM、JS、NativeWin、NativeUbuntu、Android和共享scala代码。我的项目需要Java8,但似乎Android不适合Java8版本,因为我在sbt文件中为Android模块指定了1.7版本,如下所示: Android模块文件 项目设置: