我们刚刚将项目从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版本的编译器插件。我不确定这个插件有什么问题,尽管源码和目标看起来是正确的。
检查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模块文件 项目设置: