我们刚刚将项目从 jdk 1.6
升级到 jdk 1.8
. 在我的机器中构建项目时,我遇到了以下错误 .
[错误]无法执行目标org.apache.maven.plugins:maven-compiler-plugin:3.3:编译(默认编译)项目异常:致命错误编译:无效目标版本: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使用的是jdk 1.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会在我的本地仓库中下载3.3版本的编译器插件 . 虽然源和目标似乎是正确的,但我不确定这个插件有什么问题 .
4 回答
检查java和Javac版本 - 我的Java版本是
1.8.0_51
但javac版本指向旧的jdk
1.7.0_67
有几件事我们应该尝试 -
删除它
第2点为我做了诀窍:)
有时这个问题与maven使用的
JAVA_HOME
有关 .在我的特殊情况下,我尝试启动一个
install
目标,并准确地显示了subj消息 .然后我尝试了
mvn -version
命令,我意识到它使用了jdk7然后我在控制台中运行
set JAVA_HOME=C:\Java\jdk8
(我的jdk路径,所以你自己可能会有所不同)然后键入
mvn clean install test
,它最后只用 fine祝好运!
这里也是同样的问题,但是当maven继续抛出这个错误时,我在Eclipse中使用了运行配置 . 通过在此处设置正确的JDK版本来修复:
我遇到过同样的问题:
我检查了系统变量中的路径,并且jdk没有更新为jdk 8.在我使用正确的jdk更新路径后,它工作了 .