glide install 提示:
Error scanning github.com/cpuguy83/go-md2man/v2/md2man: cannot find package "." in:
/Users/xxxx/.glide/cache/src/https-github.com-cpuguy83-go-md2man/v2/md2man
进入go-md2man后发现并没有v2的packge,进入main 函数查看导入的路径:
"github.com/cpuguy83/go-md2man/v2/md2man"
打开go.mod内容如下
module github.com/cpuguy83/go-md2man/v2 go 1.12 require ( github.com/pmezard/go-difflib v1.0.0 // indirect github.com/russross/blackfriday/v2 v2.0.1 github.com/shurcooL/sanitized_anchor_name v1.0.0 // indirect )
module中似乎定义了虚拟的路径在做版本区分;
go mod在go 1.11 和go 1.12 才开始支持,因此尝试升级go 到1.13 似乎不能凑效;
修改glide.yaml 指定repo 和version 发现版本并不匹配上这个路径,对比其他项目发现细微的差别在一些package 版本上,有的包用的是^1.xxx 大于等于某个版本;在xiaorongtao 的提示下使用 glide
tree 导出项目中的包查看到具体的出问题的包和导入的 testify 有关
- package: github.com/stretchr/testify version: ^1.2.2 subpackages: - assert - mock
这里引用的是大于等于1.2.2 ,因此glide install 时候会拉新的版本引发问题;
这里如果某个版本稳定的话建议使用固定版本;似乎所有的项目都会有版本依赖问题,因此,使用开源项目要小心小心再小心版本的变化;
去掉大于等于符号后重新glide install 顺利版本依赖安装成功;
由于之前升级了go 导致项目build 出错,降低go 到go 1.10 ;
总结:当出现多依赖找不到问题时候需要看最新的变动;同时要用查看依赖关系.(吐槽下导出的tree 有接近50m )
glide tree
耗时 0.5day