Golang中 import cycle not allowed 问题的解决方法
作者:峰啊疯了 发布时间:2024-04-25 15:13:38
标签:Golang,import,cycle,not,allowed,问题,解决,方法
1.问题现象
go编译的时候报错import cycle not allowed
cycle
意思很简单就是循环的意思。代表的就是一个包被循环的导入。
2.问题分析
这个错是在container_cloud/pkg/service
这里出现的,说明这个包被循环导入。
可是service
这个包文件太多怎么检查呢?
可以看到这个service
包下面的文件特别多。
3.解决问题思路
虽然文件很多,但是看自己最近修改过的文件很少。
检查发现这两个文件是修改过的
然后看文件的头部的修改记录,不知道怎么看修改记录的可以回滚,只要文件没有提交就可以看到
4.如何破除依赖
检查发现是service
调用了mapper的数据库方法,然后mapper里面用到service的一个对象
这种做法是特别不规范的。我们需要做的就是把这个对象拷贝一份,放到其他包里面
放到domain
这个包下,于是依赖解除。
5.问题回顾
刚刚的情况就类似于这种。
如果A必须调用B中的函数,那么我们就破除B对A的依赖,把对A的那部分提出来就行啦,就像刚刚小编不小心在mapper
当中去用
service
的对象。只能service
调用mapper
的函数
就像这种就不会有循环啦。
来源:https://blog.51cto.com/u_12040959/5140229
0
投稿
猜你喜欢
- 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个
- 从cmd进入python的方法如下1进入python打开cmd——>直接输入python即可,如下2退出python方法一:先按Ctr
- 一、python邮件模块简介email模块属于内置模块,用来自定义邮件的中文、主题、日期、附件等信息;smtplib模块属于内置模块,它对s
- 摘要: 简介 asyncio可以实现单线程并发IO操作,是Python中常用的异步处理模块。关于asyncio模块的介绍,笔者会在后续的文章
- 在绝大多数查询中,MySQL使用哪种校对规则进行比较是很显然的。例如,在下列情况中,校对规则明显的是“列x的列校对规则”:SELECT&nb
- 环境:A机器和B机器都是LINUX系统,但由于B机器已经空间不足,所以停掉不停操作数据库的服务后 ,准备在A机器进行导出操作。导出语句 ex
- <?php/** * 发送文件 * * @author: legend(legendsky@hotmai
- 最近在工作中,遇到了数据合并、连接的问题,故整理如下,供需要者参考~一、concat:沿着一条轴,将多个对象堆叠到一起concat方法相当于
- 方法一:简单,得不到参数,只有一个虚拟路径 代码如下:GetUrl =request("url") 例如:http://
- python用terminal输入参数import argparseif __name__ == '__main__':pa
- <?php $link=mysql_connect("localhost",&
- <!doctype><html><head><title>新闻图片轮换类</title
- 由于测试环境上面使用的zabbix服务器配置比较低,经常会遇到性能瓶颈(主要是数据库和磁盘I/O等),于是倒逼我使用了一些方式来缓解这些问题
- 1、chr(i)chr()函数返回ASCII码对应的字符串。>>> print chr(65)A>>>
- 本文实例为大家分享了python实现AES加密和解密的具体代码,供大家参考,具体内容如下参考:python实现AES加密和解密AES加密算法
- java后台相关问题一,程序包lombok不存在通常报这个错误,是因为,我们的开发者工具idea没有安装lombok库导致的解决办法如下:提
- 1.网络爬虫的基本概念网络爬虫(又称网络蜘蛛,机器人),就是模拟客户端发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的
- 概述在进行TCP Socket开发时,都需要处理数据包粘包和分包的情况。本文详细讲解解决该问题的步骤。使用的语言是Python。实际上解决该
- 本篇文章以文件上传为例,聊聊 Jmeter 并发执行 Python 脚本的完整流程1. 前言大家好,我是安果!最近有小伙伴后台给我
- 首先你要确定错误的原因: 让IE显示详细的出错信息: 菜单--工具--Internet选项--高级--显示友好的HTTP错误信息,去掉这个选