SpringBoot中A模块与B模块之间相互引入报错问题
问题出现场景: 我在A(即图中的web)模块中引入了B(即图中的express)模块,在B模块中引入了A模块。
在A模块中引入B模块依赖
在B模块中引入A模块依赖
结果启动时:
图:
错误代码:
java: Annotation processing is not supported for module cycles. Please ensure that all modules from cycle [web,express] are excluded from annotation processing
造成原因
A模块引入B模块,B模块也引入A模块。在springboot启动时,这两个依赖相互引用导致了循环依赖。相当于出现了死循环。
解决办法
1.将A(这里的web模块)模块打成jar
File -> Project Structure -> Artifacts 如图:
a.
b.
点击ok
c.
出现如图,记住 Output directory 的这个路径是jar包的位置
d.
e.点击build
生成的jar包
f.将它移动到B的文件夹中,我设置的路径
g.File -> Project Structure -> Modules->如图:
出现下图:
选择这个jar包,点击ok,等待进度条完成
大功告成!直接引用。