解决由于Idea/Java循环依赖造成的报错

1.环境:

Idea,Jrebel+Tomcat环境,Maven项目,分了模块。

2.报错:

今天用热部署的时候,jrebel重新编译代码的时候出了一个错误:Error:java: Annotation processing is not supported for module cycles. Please ensure that all modules from cycle [A,B] are excluded from annotation processing ,导致改变的文件编译不成功。

3.原因:

通过网上查询和问同事,发现可能是idea循环依赖的原因。

什么是循环依赖?

循环依赖就是循环引用。可以是spring中的bean互相引用,也可以是Idea项目的多个模块之间的pom引用相互引用了。就是两个以上的bean之间互相引用了,及A依赖B,B依赖C,C又依赖A,形成了闭环。

我的项目出错的原因是因为我之间导入了另一个模块包下的java类,idea自动给我导入了另一个模块的依赖,而另一个模块pom里以前就有了我这个模块的依赖,导致了循环引用。

4.解决:

点击Analyze -> Module Dependencies ,出问题的模块会显示为红色,直接在Idea可视化操作里删除循环依赖,或者去pom文件里手动去删除就好了

5.总结

写代码时一定要仔细看看引入文件的实现方式。

猜你喜欢

转载自blog.csdn.net/lcgoing/article/details/85007290