main flag redefined: graceful
beego项目新增一个api的校验功能结果运行导致panic
/var/folders/3p/jc3w8_dn5dd0r5_5ccp3nrqm0000gn/T/go-build935260114/b001/exe/main flag redefined: graceful
panic: /var/folders/3p/jc3w8_dn5dd0r5_5ccp3nrqm0000gn/T/go-build935260114/b001/exe/main flag redefined: gracefulgoroutine 1 [running]:
flag.(*FlagSet).Var(0xc0000862a0, 0x18aaa20, 0x1d40069, 0x17b06d5, 0x8, 0x17c3eac, 0x21)/usr/local/Cellar/go/1.13.8/libexec/src/flag/flag.go:848 +0x4ae
flag.BoolVar(...)/usr/local/Cellar/go/1.13.8/libexec/src/flag/flag.go:627
github.com/astaxie/beego/grace.init.0()/Users/dxm/Documents/code/gopath/src/github.com/astaxie/beego/grace/grace.go:93 +0x7a
exit status 2
/usr/local/Cellar/go/1.13.8/libexec/src/flag/flag.go:848 +0x4ae
定位到panic的代码
panic的原因是 graceful这个flag被定义了两遍,全局搜索定义此变量的代码位置,果然找到了两处,
来自不同目录下的两个相同的外部包,均在项目中被引用,所以导致了panic
相同的外部包一个从vendor中导入一个从$GOPATH 导入的具体原因是:
公共类的包A同时存在在$GOPATH下的B包下和Vendor下的C包下,B和C均在项目中被引用,
由于以下原因导致了panic:
- 包导入时首先从vendor中导入然后再看$GOPATH
- C中所依赖的所有外部包的导入路径均会继承C的路径,B同理
- C在vendor中不存在
解决方法
将C拷贝到vendor下
main flag redefined: graceful相关推荐
- : error c2062: 意外的类型“int”_Go 命令行解析 flag 包之扩展新类型
上篇文章 说到,除布尔类型 Flag,flag 支持的还有整型(int.int64.uint.uint64).浮点型(float64).字符串(string)和时长(duration). flag 内 ...
- GO标准库—命令行参数解析FLAG
评论有人提到没有例子,不知道讲的是什么.因此,为了大家能够更好地理解,特意加了一个示例.其实本文更多讲解的是 flag 的实现原理,加上示例之后,就更好地知道怎么使用了.建议阅读 <Go语言标准 ...
- golang flag包(命令行参数解析)
1.1 使用示例: 我们以 nginx 为例,执行 nginx -h,输出如下: nginx version: nginx/1.10.0 Usage: nginx [-?hvVtTq] [-s sig ...
- 一期每日一GO群分享-flag、viper、协程池、异常处理
1.11 flag库 今天介绍一个库flag,命令行程序常用,用来接受参数的. var (intflag intboolflag boolstringflag string )func init() ...
- Go Flag使用教程
Flag库 flag库是Go语言标准库之一,提供了命令行参数解析的能力. 官方库文档翻译 参数类型 Go Flag 接受的参数类型 bool int int64 uint uint64 string ...
- 从源码的角度看Go语言flag库如何解析命令行参数!
我上周五喝酒喝到晚上3点多,确实有点罩不住啊,整个周末都在休息和睡觉,文章鸽了几天,想不到就有两个人跑了. 不得不感叹一下,自媒体的太残酷了,时效就那么几天,断更就没人爱.你们说好了爱我的,爱呢?哼 ...
- exec go 重启_如何用 Go 实现热重启
热重启 热重启(Zero Downtime),指新老进程无缝切换,在替换过程中可保持对 client 的服务. 原理 父进程监听重启信号 在收到重启信号后,父进程调用 fork ,同时传递 socke ...
- go walk 开发window界面,上传文件到阿里云oss -- 服务器端
前面我们完成了一个网页端的上传oss程序:https://blog.csdn.net/daily886/article/details/103366145 现在我们把前后端分离 前端使用walk开发, ...
- go 使用 gin 上传文件到 阿里云oss存储
本文使用 go 版本是: go version go1.13 linux/amd64 阿里云oss go sdk版本:v2.0.4 官网可以下载 linux版本是:Linux version 3.1 ...
- #### 服务发现 ####
转自 服务发现原理分析与源码解读 - 掘金 仅做个人备份,浏览请看原文 在微服务架构中,有许多绕不开的技术话题.比如服务发现.负载均衡.指标监控.链路追踪,以及服务治理相关的超时控制.熔断.降级.限流 ...
最新文章
- 运维想吃透监控系统,就这一篇足够了
- python中的linearregression_【python+机器学习(2)】python实现Linear Regression
- “-bash: !”: event not found、echo sudo permission denied
- MySQL 8.0版本无法使用 node、Navicat等三方工具连接的问题
- JVM学习之GC常用算法
- 高等数学上-赵立军-北京大学出版社-题解-练习2.4
- _attribute_((packed))
- 一步一步搭建客服系统 (7) 多人共享的电子白板、画板
- 并行开发的基本概念及两个重要的定律
- Node 连接mysql数据库
- Golang实践录:静态资源文件整合:web服务
- PAT 1060 Are They Equal (25 分)
- transferwise怎么提现_收款工具transfer wise介绍(多币种、可收CJ联盟)
- ym——Android从零开始(27)(山寨版微信-下)(新)
- Nuvoton M031-时钟树
- CPU、内存、主板、显卡等是什么?计算机基本的硬件介绍,计算机组成元件
- 185电缆的接法图解_三相电缆线的接法图解
- 【在CentOS中使用Crow-基于C++的Web服务】
- 什么是格局、境界、眼界、眼光
- 渝北统景碑口规划开发_渝北区御临河碑口水库主体工程开工建设