IntelliJ IDEA中Maven项目循环依赖模块语言级别不一致且修改时提示源码根重复的问题求助
IntelliJ IDEA中Maven项目循环依赖模块语言级别不一致且修改时提示源码根重复的问题求助
遇到这种情况确实挺闹心的,我之前处理过类似的Maven模块同步问题,给你几个实用的解决步骤:
第一步:从Maven配置根源修正语言级别
IntelliJ的模块语言级别大多是和Maven配置同步的,FdsxClient的语言级别自动变成6,大概率是它的pom.xml里的编译插件配置不对。
- 打开FdsxClient模块下的
pom.xml,找到maven-compiler-plugin的配置,确保source和target都设置为1.8:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin>
- 保存pom后,右键项目选择
Maven -> Clean,再执行Maven -> Install,最后点击Maven -> Reload Project,让IntelliJ重新同步Maven配置,这时候很多情况下语言级别会自动修正为8。
第二步:手动清理重复的源码根目录
如果上面的操作没解决源码根重复的报错,那需要手动修正模块的内容根配置:
- 打开
File -> Project Structure(快捷键Ctrl+Alt+Shift+S),切换到Modules标签页 - 找到
AbcClient模块,点击Sources子标签,检查是否有C:\workspace\largeJavaProject_r\abacus\ACClient\src\main\java这个目录被错误添加为内容根 - 如果有,选中该目录,点击上方的
Remove Content Root按钮移除 - 回到
FdsxClient模块,把它的Language level改成8 - Lambdas, type annotations etc.,这时候再点击Apply应该就不会弹出报错了
第三步:清理IDE缓存解决同步异常
有时候IntelliJ的缓存会导致各种奇怪的同步问题,这时候可以尝试清理缓存:
- 点击
File -> Invalidate Caches... - 在弹出的对话框中选择
Invalidate and Restart,等待IDE重启后再重新检查模块配置
额外提示:检查循环依赖的合理性
虽然Maven允许循环依赖,但这种依赖关系本身容易导致模块配置混乱,后续如果有机会,建议重构代码解除这两个模块的循环依赖,能避免很多类似的问题。
备注:内容来源于stack exchange,提问作者Pekmezli Dürüm
相关产品推荐
相关产品推荐

