当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%即可。