Cannot resolve symbol '@springbootapplication'解决方法
今天自己搭建了一个十分简单的springBoot项目,使用maven做jar包管理工具,pom文件完全是系统自动生成。
但是项目初始化完成后自动生成的入口类提示有错误,错误信息如下:Cannot resolve symbol '@springbootapplication'。
不能解析springbootapplication符号关键字?这个错误给人第一反应是springBoot jar包导入有问题,但是由于长久以来养成习惯遇事先百度,不经任何思考就直接复制错误信息到百度搜索......
搜索结果自然不会让人失望,马上搜索到满满一页匹配度十分高的结果。点了好几条进去,直接按照给出的方法去试验,但都没有成功。一番折腾后,反观看过的几个博客,他们都没有对问题有个分析和解释,最基本的解释也没有。而是直接了当给出几条建议,其中最多的就是以下一些:
- Invalidate Caches/Restart 清除缓存并重启 idea
- 右键 --> maven -->reimport
- 重启电脑
- 检查pom文件依赖关系是否正确
首先我需要声明第四种的思路是正确的,但不合适的地方在于,这个错误属于小白白才会遇到的,基本是纯粹的新手。直接写一个检查pom文件依赖关系是否正确,是很笼统的。一般这一条方法大家都会略过不看,再去找别的解决方法了。所以说这一条方法对新手的帮助是不大的。
我这里说一下我的解决的办法,这个问题解决完回头一看其实是十分简单的。
首先错误的提示信息:不能解析springbootapplication符号关键字。
再没有经验的程序员也应该有意识,是这个关键字没有被成功识别,关键字不能识别的原因无非就是,
支持包找不到?支持包版本不对?支持包损坏?这几个问题。
而springBoot项目里面用的maven通过pom文件来管理支持包,那么此时直接就可以把问题的方向定位到pom文件上

到pom文件里会发现有很多依赖关系,但是idea有良好的错误提示机制,哪个依赖有问题它都会给你标注出来。所以你硬着头皮也要往下看,如果你发现有被标红线的jar包名,那么就是idea在提示你这个jar包有问题。
标红就是说找不到这个jar包或者jar包损坏,原因有可能是名字写错?maven仓库找不到这个名字的jar包?jar包不完整?这里是创建项目自动生成的名字,那原因一定就是maven本地仓库内没有这jar或者jar包是坏的。(然后这里发现一些小伙伴是因为maven就没有配置好,比如idea setting里面的maven没有指定,maven是自己安装的,安装的时候maven setting.xml就没配置好)
先去对应的仓库中看下有没有jar,如果没有就是缺少jar,只需要 maven-clean 然后 maven-install一下把jar包下载下来,下载需要保持网络是可用,而且已经配置好maven setting.xml中的远程仓库地址。
点击maven install 会从服务器下载缺少的jar包到本地仓库,这个过程要保证网络可用。(具体的maven以及maven镜像库设置请百度maven配置这里不做讲述了)下载完成后重新导入一下jar包,maven --> reimport 一般问题就可以解决。

如果说当你在pom文件里面就没有发现依赖包有问题,pom文件一切正常,那可能是缓存在作怪。你可以试着清一下缓存(Invalidate Caches/Restart 清除缓存并重启 idea),或者你可以直接试着maven clean 再 install一下,看maven install是否可以打包成功,只要maven打包成功那就说明jar包没有问题,那么上面不能解析关键字的错误提示也一并会消失。
(上面说的maven install成功就说明项目一定没问题是错误的,后来在使用idea的过程中,发现当有语法错误时,也可能maven install成功,但是target里面没有生成对应的class,所以保险起见,首先编译一下程序,然后再maven install 这样就能保住maven install成功项目就是没有错误的)
解决完问题后,单看这个错误,其实完全没有必要讲这么麻烦,但是我想说的不只是这个错误,而是我们在解决问题的过程中需要十分注意的地方,也是我自己需要注意的地方:
百度搜索一定是要由我们的思维引导着来的。一定不能把错误信息抛给百度就想着百度可以给你提供一个完美的解决方法,错误的点一定要去自己思考自己定位。不加思考翻很多博客即使最后问题解决了,那同样也是浪费了很多时间。
这里附上一篇自己看过后才耐心去检查pom文件查找问题的博客,https://blog.youkuaiyun.com/lesaqiu/article/details/54846960
本文介绍了解决Spring Boot项目中出现的Cannotresolvesymbol'@springbootapplication'错误的方法。主要从检查POM文件依赖、清理缓存及重新下载缺失的jar包等方面进行分析。
897





