【终极解决方案】idea报错找不到程序包/找不到符号

本文介绍了在IntelliJ IDEA中遇到找不到程序包或找不到符号错误的解决过程,包括初步解决办法如Reimport、Rebuild Module和执行mvn命令,以及详细的问题分析和排除过程,最终通过清理项目文件、切换Maven本地仓库、删除问题依赖并重新导入解决了问题。此外,还提供了一个额外的解决方案:执行`mvn idea:module`。

问题发现

 

        前几天在使用idea开发maven多模块项目的时候,偶然间遇到了这个问题,报错的类对应的jar包已经被加载到了IDE,相关依赖也都已经被下载到了本地仓库。可是使用IDE编译项目的时候,报了找不到程序包/找不到符号类似的错误,使用maven命令却可以正确编译。

 

初步解决

 

        由于当时时间紧,直接问了下度娘。大致结果如下:

 

包没引入或其他缓存问题

        可能因为一些操作没有被IDE监控到,又或者已经编译生成的文件阻碍了后续生成操作,所以我们可以手动的去做一些事情来避免这个问题。

Reimport重新导入maven依赖

Rebuild Module重新生成项目

编码问题

        这个问题虽然是小问题,还是决定拿出来啰嗦一下。建议各位更换了IDE或者电脑一定要先按自己习惯把一些基本配置改掉。

执行mvn命令

        mvn idea:idea这个命令解了我的燃眉之急。

        后来搜了一下,此命令大概功能就是继续下载未下载完整的依赖。不过这里有个小问题,web项目会被这个命令打乱配置,具体是把资源文件夹更改成了普通文件夹,最终还是导致了启动不了。不过spring-boot倒是可以正常编译启动了。

 

-----------------------------------------------------------我是分割线----------------------------------------------------------------

 

        这两天闲下来之后具体分析解决了一下,这里记录分享一下解决过程。

 

问题分析

 

  1. 首先项目是多模块,而且模块之前依赖的耦合度高,难道是以来冲突导致的?
  2. 报找不到程序包的类使用@Data注解,难道是这个影响的?
  3. 模块A和模块B都有相同的文件路径,莫非是编译到一起的时候覆盖了?
  4. IDE配置或者仓库配置问题

 

排除问题

 

首先项目是多模块,而且模块之前依赖的耦合度高,难道是以来冲突导致的?

说干就干,找到了报错的那个模块A,新建了一个新的模块来依赖B,编译还是程序包找不到。然后就去pom文件排除冲突的依赖包,结果还是同样的问题。

 

报找不到程序包的类使用@Data注解,难道是这个影响的?

找到了模块A报错的那个类,去掉了@Data注解,重新生成发布到本地仓库。模块B重新引入模块A的依赖,依然未解决。

这里也可以参考解决 lombok 在 idea 的 SpringBoot 项目中 “找不到符号”

 

模块A和模块B都有相同的文件路径,莫非是编译到一起的时候覆盖了?

这个后来排除掉了,就算覆盖也要有相同的类才会覆盖。

 

IDE配置或者仓库配置问题

苦思无果呀,就还是上手试,从源头开始。

模块A删除了之前生成的文件和idea配置文件,然后重新导入项目。

忽略上图的eclipse配置文件,当时一度转回了使用eclipse开发。总之就是删除你项目文件外的IDE配置文件。

注意:我这里重新导入项目之后在idea配置里面把maven本地仓库覆盖了,换了一个新的文件夹

重新下载依赖。

然后生成,发现有一处错误,也是找不到程序包。

找到报错对应的依赖移除,之后重新导入依赖Reimport

然后删除target文件夹,重新编译Rebuild,发现OK了

再使用mvn生命周期clean install一下,把模块A发布到本地仓库

之后回到模块B,重复模块A的操作,记住一定先保证依赖模块没有问题

重新导入项目,切换了本地仓库,重新导入了模块A,神奇的发现编译成功了。

 

总结

 

删除之前生成的文件和idea配置文件,然后重新导入项目

删除之前的本地仓库或者切换一个新仓库

找到报错对应的依赖移除,之后重新导入依赖,重新编译Rebuild(单模块到此结束)

mvn clean install,发布到本地仓库

下级模块重复以上操作

 

以上,如果有不对的,还望各位同道指出,侵删,转载注明出处。

 

================================================2021年1月11日  更新=================================================

更新一个其他解决方案

mvn idea:module

每次更新pom文件的依赖之后

(可能是idea对maven项目的处理少了什么,只是猜测)

mvn install之后可能就会出现找不到符号 找不到包之类的报错

这个时候就可以执行mvn idea:module来解决问题!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值