Java Maven:编译时出现致命错误:目标版本无效:1.8
我们刚刚将项目从Java Maven:编译时出现致命错误:目标版本无效:1.8,java,maven,java-8,Java,Maven,Java 8,我们刚刚将项目从jdk1.6升级到jdk1.8。在我的机器中构建项目时,我遇到以下错误 [错误]无法执行目标 插件:maven编译器插件:3.3:编译 项目异常时(默认编译):编译时出现致命错误:无效 目标版本:1.8->[帮助1] 下面是已经使用过的maven编译器插件 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-
jdk1.6
升级到jdk1.8
。在我的机器中构建项目时,我遇到以下错误
[错误]无法执行目标
插件:maven编译器插件: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>
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编译器插件(理想情况下,我不想这样做)。我还观察到即使我
删除此插件,maven默认下载3.3版本的
我的本地repo中的编译器插件。我不确定这是怎么回事
虽然源代码和目标代码看起来是正确的,但它仍然是一个插件
检查java和Javac版本-我的java版本是
1.8.0\u 51
$ java -version
java version "1.8.0_51"
但是javac版本指向旧的jdk1.7.067
$ 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
去掉这个
sudo rm -rf /Library/Java/Extensions
> java -version
java version "1.8.0_111"
>javac -version
javac 1.7.0.6
我检查了系统变量中的路径,jdk没有更新为jdk 8。
在我用正确的jdk更新路径后,它就工作了。有时这个问题与maven使用的
JAVA\u HOME
有关
- 在我的特殊情况下,我尝试启动一个
目标,并获得了subc消息的确切消息李>安装
- 然后我尝试了一个
命令,我意识到它使用了jdk7mvn-version
- 然后我在控制台中运行setjava\uhome=C:\JAVA\jdk8(我的jdk路径,因此您自己的路径可能会有所不同)
- 然后键入
,它终于正常工作了mvn clean install test
祝你好运 这里也有同样的问题,但当maven不断抛出这个错误时,我正在Eclipse中使用运行配置。通过在此处设置正确的JDK版本进行修复:
在cent os中,我们可以使用替代品切换版本
alternatives --config javac
alternatives --config java
但是MAVEN使用JAVA_HOME
而这个JAVA_主页可以连接到一个链接
我们必须手动将JAVA_HOME指向新的jdk文件夹,或者手动移除/删除链接,并根据上述答案再次创建新的相同链接
从备选方案中我们可以得到jdk的路径首先,它肯定是版本问题 在我的情况下: java-version显示了结果
java version "1.8.0_172"
而javac版本正在显示
javac 1.8.0_172
但是:Maven使用JAVA_HOME环境变量来获取JDK版本以构建项目并作为插件运行。所以我们检查它的方法是
echo %JAVA_HOME%
在我的情况下
jdk1.7.0_172
因此,只需更改变量的路径即可解决问题。
希望它能为某人节省时间 真的吗?“
Apache Maven 3.1.1(…2013-09-17…
”@Holger不知道(…2013-09-17)的意义,但我从这里下载了Maven。请注意,我有mac的默认Maven(v3.0.3)在我之前升级到v3.1.1的版本中,它看起来比Java 8旧,但是,当然,这不会是一个问题,只要编译器插件和调用的编译器能够处理请求的目标版本1.8,它们显然不能。但是由于Maven版本是您发布的唯一版本号,我假设其他所有版本都可以我不知道在你的环境中还有什么其他的障碍,但在你的情况下,我要做的第一件事是从这里下载:对我来说,从Maven 3.2.5升级到3.3.3就成功了。谢谢你,最后!第2点也为我解决了这个问题。这就是我使用的另一个版本您正在使用powershell运行以下命令:$env:JAVA\u HOME=“C:\JAVA\jdk8
echo %JAVA_HOME%
jdk1.7.0_172