golang 依赖管理
Posted 技术猫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang 依赖管理相关的知识,希望对你有一定的参考价值。
用独特的视野 洞察科技未来
技术猫 就等你关注
依赖管理是一个语言非常重要的特性,很大程度上决定着一个语言的流行程度,流行的语言大多都有非常成熟的依赖管理工具,java 的 maven 和 gradle,javascript 的 npm,python 的 pip,这些工具极大地降低了我们使用第三方库的成本,提高了生产效率,而 c++ 比较奇葩,并没有这样统一的依赖管理工具,大公司好一点,有专门的团队去做这样的工具解决依赖的问题,小公司就只能自己把源码拉下来,放到固定的目录,然后编译成二进制,运气不好的话,还要自己解决各种兼容性的问题,如果有版本更新,这个过程还得重复一遍,第三方库的使用和维护成本之高,让人简直就想放弃……
下面我给大家简单介绍一下 glide 在实际项目中的使用
glide使用
安装
Linux
curl https://glide.sh/get | sh
Mac
brew install glide
初始化
glide init
这个命令会自动分析你代码里面的依赖,然后创建一个 glide.yaml
来描述你当前项目的依赖,生成的这个文件是可以手动编辑的,可以手动修改一些版本之类的信息
提醒一下,这个操作必须在 $GOPATH/src/
的子目录下面,这个和 golang 本身的包管理机制有关,如果没有设置 $GOPATH
,记得设置一下 export GOPATH=<directory>
依赖下载
glide update
这个命令会下载 glide.yaml
里面的依赖库,并且同样会分析并下载依赖库依赖的其他第三方库,下载的依赖会放到与 glide.yaml
同级的 vendor
目录,同时还会生成一个 glide.lock
文件,这个文件里面描述了当前依赖的版本信息,不要手工编辑这个文件
如果你在中国,这个步骤里面可能会碰到有些 gopkg
的库拉不下来,也不知道为啥要把这个也禁了……如果你碰到这个问题,你可以手动把这些库下载到 ${GOROOT}/src/golang.org/x
下面
git clone https://github.com/golang/crypto.git
git clone https://github.com/golang/sys.git
git clone https://github.com/golang/sync.git
git clone https://github.com/golang/text.git
git clone https://github.com/golang/net.git
添加依赖
glide get --all-dependencies github.com/foo/bar
也可以指定版本
glide get --all-dependencies github.com/foo/bar#^1.2.3
除了 github
上的依赖,也可以是其他的平台,比如 gitee
,或者自己公司搭建的 gitlab,只要有权限就可以,还有一点需要注意,版本必须是三位数字的版本号,否则可能识别不了
安装依赖
glide install
这个命令是在一个已经使用 glide 管理依赖的项目里,需要在新环境下重新安装依赖使用的,这个命令会按照 glide.lock
的信息,把所有的依赖拉取到本地,和 glide update
不同的是,glide update
会来去最新的版本,并且会修改 glide.lock
,而 glide install
只下载之前的依赖
参考链接
glide github: https://github.com/Mastermind...
glide 官网: https://glide.sh/
go依赖包管理工具对比: https://ieevee.com/tech/2017/...
垂下的头颅只是为了让思想扬起,
你若有一个不屈的灵魂,脚下就会有一片坚实的土地。
关注技术猫之后
你比从前更优秀
长按二维码后识别关注
▼
选择正确,你的努力才有价值
在下方评论区发表你的见解~
分享给喜欢学习的小伙伴吧~
昨日的日刊是不是漏看了,给你一个传送门:
前天的也有:
以上是关于golang 依赖管理的主要内容,如果未能解决你的问题,请参考以下文章