glide install error

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

原文地址:https://www.cnblogs.com/lavin/p/glide-install-go-mode-error.html