使用swaggo/swag生成Swagger后Golang服务器启动报错:Register重复调用
解决swaggo/swag启动时"Register called twice for swag: swagger" panic问题
原因与修复方案
排查重复导入
检查项目所有文件的import语句,确认没有重复导入services/payment-api/docs包,同一包多次导入会触发重复注册。重新生成文档
删除当前项目下的docs目录,重新执行swag生成命令:swag init生成时确保在项目根目录执行,避免生成冗余的注册代码。
检查docs.go中的重复注册
打开services/payment-api/docs/docs.go,查看第341行附近的代码,若存在两次swag.Register调用,删除重复的那一行(注意保留正确的注册逻辑)。清理模块缓存
执行以下命令清理Go模块缓存,避免旧代码残留导致冲突:go clean -modcache go build多模块项目检查
若项目采用多模块结构,确保不同模块的swag生成文档没有相互导入,避免跨模块的docs包引发重复注册。
内容的提问来源于stack exchange,提问作者Adityasinh Chauhan
相关产品推荐
相关产品推荐

