问题描述:
今天构建一个springboot工程,倒入到idea中,出现以下错误:
org.codehaus.plexus.component.repository.exception.ComponentLookupException: com.google.inject.ProvisionException: Unable to provision, see the following errors:
1) Error injecting constructor, java.lang.NoSuchMethodError: org.apache.maven.model.validation.DefaultModelValidator: method 'void <init>()' not found ? at org.jetbrains.idea.maven.server.embedder.CustomModelValidator.<init>(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
在网上查询发现是MAVEN版本问题,我之前使用的版本是3.8.6:

解决方案?
常见方案是修改maven的版本,从3.8.6调整成3.8.1;调整如下:

调整完成后,问题确实解决了,效果如下:

MAVEN配置
既然要切换maven版本,那么这里也记录一下在mac上,修改maven版本的操作:
第一步,下载3.8.1版本的maven,由于网络比较慢,可能需要多次重试,下载地址:
https://archive.apache.org/dist/maven/maven-3/3.8.1/binaries/
https://maven.apache.org/download.cgi
第二步,解压文件到指定目录中,并且开始配置mvn,核心是settings.xml(目录地址apache-maven-3.8.1/conf),这个配置主要使用国内厂商的maven仓库,这里感谢阿里云提供了一套稳定的maven仓库:?
? <mirrors>
? ? ?<mirror>
? ? ? ? <id>alimaven</id>
? ? ? ? <name>aliyun maven</name>
? ? ? ? <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
? ? ? ? <mirrorOf>central</mirrorOf>
? ? </mirror>
? ? <mirror>
? ? ? <id>maven.net.cn</id>
? ? ? <name>Mirror from Maven in china</name>
? ? ? <url>http://maven.net.cn/content/groups/public/</url>
? ? ? <mirrorOf>central</mirrorOf>
? ? </mirror>
? ? <mirror>
? ? ? <id>central</id>
? ? ? <name>Maven Repository Switchboard</name>
? ? ? <url>http://repo1.maven.org/maven2/</url>
? ? ? <mirrorOf>central</mirrorOf>
? ? </mirror>
? ? <mirror>
? ? ? <id>repo2</id>
? ? ? <name>Mirror from Maven Repo2</name>
? ? ? <url>http://repo2.maven.org/maven2/</url>
? ? ? <mirrorOf>central</mirrorOf>
? ? </mirror>
? ? <mirror>
? ? ? <id>sprintio</id>
? ? ? <mirrorOf>central</mirrorOf>
? ? ? <name>Human Readable Name for this Mirror.</name>
? ? ? <url>https://repo.spring.io/libs-snapshot/</url>
? ? </mirror>
? ? <mirror>
? ? ? <id>google</id>
? ? ? <name>google maven</name>
? ? ? <url>https://maven.google.com/</url>
? ? ? <mirrorOf>central</mirrorOf>
? ? </mirror>
? </mirrors>
第三步,修改mac的配置文件,涉及2个文件:
修改 .bash_profile?
// 回到用户目录
cd ~
// 查看.bash_profile,注意这是一个隐藏文件,需要查看所有文件可以使用 ls -al
vim? .bash_profile?
// 修改配置,我这里安装了maven和mysql
export M2_HOME=/Users/用户目录/install/apache-maven-3.8.1
export PATH=$PATH:$M2_HOME/bin
PATH=$PATH:/usr/local/mysql/bin:$MAVEN_HOME/bin
// 编辑完成后,执行命令,这个命令只是在当前shell生效
source .bash_profile
修改?.zshrc
// 回到用户目录
cd ~
// 查看.zshrc,如果不存在就创建一个.zshrc
vim?.zshrc
// 修改配置,这个配置修改后,以后.bash_profile这个配置在关闭窗口重新打开也会有效
source ~/.bash_profile
?
?
|