【java-idea多模块-某子模块打包失败-找不到符号】

文章描述了一个开发人员在使用Lombok注解并进行多模块项目打包时遇到的问题。在模块打包过程中,出现了找不到符号的错误,主要是由于Lombok注解没有正确处理。解决方案包括重启IDE,清除缓存,重新加载项目并在父模块进行clean和install操作。文章强调了在多模块项目中,父模块需要先install以便子模块获取正确的依赖信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

重新打开clone下来的新项目,调好maven与jdk后,模块运行无误,但是模块打包时绝大部分类: java:找不到符号。编译和重新build模块情况一样。
后面跟踪了这些类,都是引用了@Data注解的地方。

在这里插入图片描述

解决办法

(复现不出来了,反正最后是这种操作解决的…瞎猫碰死耗子了属实是)
重启并且清除缓存 invilidate and restart后,reload project,然在父模块(root)那里clean一下,install一下,后面再进行模块的clean与package。
在这里插入图片描述
启动项目时出现 “Lombok Requires Annotation Processing“(lombok需要启用注释处理)如下的错误提示的话记得点 enable。
同等于下述操作:
在这里插入图片描述

尝试过的解决办法(但是没有解决我的问题)

  1. 修改编码格式
    在这里插入图片描述
  2. 检查jdk和maven
    在这里插入图片描述
    在这里插入图片描述
  3. 重启并且清除缓存 invilidate and restart
  4. 删除iml文件和.idea文件后重启
  5. reload project, clean,package
  6. 更改lombok版本
    均未成功,打包时还是一样的错误

原因分析:

父子项目,其中common为公共模块,A模块依赖common模块pom,二者均集成父模块。
打包时,common模块install 打包到本地正常,A模块install时抛:找不到符号,跟踪一下均为找不到引用common模块中的实体类。

在开始新的多个模块的项目时,其中的parent项目要先install一回,之后其他子项目才可以运行mvn,才能编译子项目。

假如common继承父pom没有设置relativePath标签的值,那么这个标签值默认是…/pom.xml。
common查找父pom顺序为: …/pom.xml-本地仓库-远程仓库
所以common模块能通过…/pom.xml找到父pom

而A模块依赖common模块,install时,查找顺序为: 本地仓库-远程仓库
但本地仓库中的common模块无法通过…/pom.xml找到父pom文件(获取不到dependencyManagement中的版本信息等),所以此时A模块打包失败,找不到common模块中的符号。
所以需要先将父project 进行install操作打包到本地,之后A模块进行install操作才能成功。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值