[Maven]Eclipse集成遇到的问题

当maven项目导入到eclipse中后使用eclipse提供的maven命令执行任意一个出现

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/maven/cli/MavenCli : Unsupported major.minor version 51.0

这个异常是因为我使用的maven版本是3.3.9而这个版本支持的最低jdk版本是1.7,而我之前eclipse中配置的是1.6的。这个与pom.xml中配置的编译插件没有关系,eclipse中执行maven命令必须先调用maven去执行命令,而eclipse中的1.6版本根本启动不了maven3.3.9所以出现异常。

为了解决这个问题我们修改eclipse的window-java-InstalledJREs把1.7版本设为eclipse默认的jdk。

window-java-Compiler中的Compiler compliance level最好也修改为1.7保持与InstalledJREs中激活的jdk版本一致(配置这个的作用主要是使项目中的java文件以这个目标去编译,猜想大概是以当前jres中激活的jdk版本或此版本以下的目标去编译成目标虚拟机上可执行文件,不管猜想是否正确,我们都修改为1.7就对了)。

修改后我们右键随便runas-maven clean发现错误信息变化了

-Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME environment variable and mvn script match.

是说maven.multiModuleProjectDirectory这个系统属性未设置,解决方式有两种:

1,编辑window-java-InstalledJREs中1.7的jdk修改Default VM arguments为-Dmaven.multiModuleProjectDirectory=%M2_HOME%(前提是环境变量中配置了M2_HOME这个环境变量),并把目标项目的jdk修改到这个版本。

2,我们只使用eclipse在runs中提供的mvn build命令,打开mvn build面部切换到jre页面修改为1.7版本并修改VM arguments为-Dmaven.multiModuleProjectDirectory=%M2_HOME%即可。

原文地址:https://www.cnblogs.com/hihtml5/p/6306267.html