解决由于Idea/Java循环依赖造成的报错
1.环境:
Idea,Jrebel+Tomcat环境,Maven项目,分了模块。
2.报错:
今天用热部署的时候,jrebel重新编译代码的时候出了一个错误:Error 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.总结
写代码时一定要仔细看看引入文件的实现方式。
还没有评论,来说两句吧...