1.gradle项目突然出现circular reference

背景

项目是基于gradle构建的spring boot项目。切换k8s环境的时候,gradle构建镜像,构建成功,在k8s运行不起来。

打包命令

gradle clean
gradle build -x test

报错信息

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'extraDayController' defined in URL [jar:file:/home/david/projects/mkt-server/build/libs/mkt-server-1.0.0-SNAPSHOT.jar!/BOOT-INF/classes!/com/mkt/server/controller/ExtraDayController.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'extraDayServiceImpl' defined in URL [jar:file:/home/david/projects/mkt-server/build/libs/mkt-server-1.0.0-SNAPSHOT.jar!/BOOT-INF/classes!/com/mkt/server/service/impl/ExtraDayServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.mkt.server.client.OldFixUserClient': FactoryBean threw exception on object creation; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration': Unsatisfied dependency expressed through method 'setConfigurers' parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'webMvcConfig': Unsatisfied dependency expressed through field 'loginInterceptor'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'loginInterceptor': Unsatisfied dependency expressed through field 'portalClient'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.mkt.server.client.protal.PortalClient': FactoryBean threw exception on object creation; nested exception is org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'mvcResourceUrlProvider': Requested bean is currently in creation: Is there an unresolvable circular reference?

核心报错信息
Requested bean is currently in creation: Is there an unresolvable circular reference?

问题定位

错误定位

将gradle的jar包单独拿出来运行,运行失败,报上面的错。项目在idea中,可以正常运行,不报错。
在切换环境的时候,出的问题,没有代码修改。
将问题定位为gradle构建的问题,而且换了一个电脑,构建运行成功,把另外一个电脑构建成功的jar包,拿到运行失败的电脑上可以正常运行。(同样的gradle版本,同样jdk版本,同样的操作系统版本)
就这样开始了2天的痛苦排查解决历程。

正确定位

跟同事讨论,以前遇到类似的问题,解决循环依赖就可以了。

解决

加@Lazy注解。

思考

1.为什么解决这么久,还解决不了?
否定循环依赖,认为是编译问题。如果排除所有错误选项,剩下的一个无论多么难以致信,也要去试试。
2.排查问题的收获?
同样的代码,同样的gradle版本,同样的操作系统版本,构建的项目运行不一样。以后能不用gradle,建议不要用了。
结论时间:2024-05-23.

  • 9
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值