大家都知道golang中可以通过go get来获取依赖库,并且支持直接从github或者git.oschina.net这些git托管平台直接获取。今天尝试go get一个自己写的http 框架时,提示如下错误:
$ go get git.oschina.net/iceup/yaf-ext
package git.oschina.net/iceup/goyaf: unrecognized import path "git.oschina.net/iceup/goyaf" (parse https://git.oschina.net/iceup/goyaf?go-get=1: no go-import meta tags)
问题查找
仔细对了一遍,项目地址是没有错误的。尝试用-v参数查看下载过程:
$ go get -v git.oschina.net/iceup/goyaf
Fetching https://git.oschina.net/iceup/goyaf?go-get=1
ignoring https fetch with status code 404
Parsing meta tags from https://git.oschina.net/iceup/goyaf?go-get=1 (status code 404)
import "git.oschina.net/iceup/goyaf": parsing git.oschina.net/iceup/goyaf: http: read on closed response body
package git.oschina.net/iceup/goyaf: unrecognized import path "git.oschina.net/iceup/goyaf"
原来在获取的时候产生404了。后来才想到这个库是私有的,如果没有登录平台,是无法访问到的,难怪呢。
解决办法
因为go get这个命令实际上是将相应git平台上的库下载到本地$GOPATH目录下,所以想到一个办法既然go get无法下载,那么自己通过git clone下来放到对应的$GOPATH目录下就可以了。
其它可能问题
网上查看到可能有其它问题造成的,例如可能是被墙的原因。如果碰到类似的问题用go get -v就可以查看相应的过程,再具体问题具体处理就可以了。
有话要说