用 dep 代替 go get 来获取私有库
(金庆的专栏 2017.11)
go get
功能比较弱,无法获取分支,标签,特定版本,fork, 而 dep
可以做到。dep
还可以获取私有库。
用 gitee.com 私有库作测试。创建 gogettest 库。
可用:
go get -u gitee.com/jinq0123/gogettest
如果改为私有库则失败:
λ go get -v gitee.com/jinq0123/gogettest
Fetching https://gitee.com/jinq0123/gogettest?go-get=1
Parsing meta tags from https://gitee.com/jinq0123/gogettest?go-get=1 (status code 403)
package gitee.com/jinq0123/gogettest: unrecognized import path "gitee.com/jinq0123/gogettest" (parse https://gitee.com/jinq0123/gogettest?go-get=1: no go-import meta tags ())
利用 dep 工具取私有库
安装dep
go get -u github.com/golang/dep/cmd/dep
初始化
在项目目录下运行:
dep init
生成 Gopkg.toml
和 Gopkg.lock
添加强制(constraint)
在 Gopkg.toml 中添加:
[[constraint]]
branch = "master"
name = "gitee.com/jinq012345/gogettest"
source = "https://gitee.com/jinq0123/gogettest.git"
source 强制使用 https 来获取 gotgettest 库。
注意库名改成了 jinq012345
, 这样导入: imort "gitee.com/jinq012345/gogettest"
name和source的设置可支持从 fork 库获取。
获取gogettest
库
dep ensure
会弹出 https 的登录用户名和密码输入框。