从网上git clone了一个项目,本地编译compile、打包package都没问题。
但是启动服务,启动不了,且查看Dependency Analyzer 没有任何依赖信息。执行Reimport时,报错如下。
错误信息
org.codehaus.plexus.component.repository.exception.ComponentLookupException: com.google.inject.ProvisionException: Unable to provision, see the following errors:
- Error injecting constructor, java.lang.NoSuchMethodError: org.apache.maven.model.validation.DefaultModelValidator: method ()V not found
at org.jetbrains.idea.maven.server.embedder.CustomModelValidator.(Unknown Source)
while locating org.jetbrains.idea.maven.server.embedder.CustomModelValidator
at ClassRealm[maven.ext, parent: ClassRealm[plexus.core, parent: null]] (via modules: org.eclipse.sisu.wire.WireModule -> org.eclipse.sisu.plexus.PlexusBindingModule)
while locating org.apache.maven.model.validation.ModelValidator annotated with @com.google.inject.name.Named(value=ide)
1 error
role: org.apache.maven.model.validation.ModelValidator
roleHint: ide
Dependency Analyzer 依赖分析插件,显示不了,全是空白。
问题分析
从错误信息看,根据以往经验,凡是遇到NoSuchMethodError的,一律可以理解为jar包冲突。再仔细看关键信息org.apache.maven.model.validation.DefaultModelValidator该类不就是maven的类吗。
查看idea maven版本,配的是3.8.6。
问题已经大致清楚了,配置的maven版本号过高,idea版本不匹配导致。
解决问题
设置maven 为低版本,从3.8.6 降到3.6.3,使用idea内置的maven版本。
通常情况下,使用idea内置的maven版本,就一定不会错的。