golang依赖管理工具:glide

(最简单的包管理机制 go mod . 还有一种直接在项目里面mkdir vendor 文件夹,将需要的包都放进去即可)

介绍:
不论是开发Java还是你正在学习的Golang,都会遇到依赖管理问题。Java有牛逼轰轰的Maven和Gradle。 Golang亦有godep、govendor、glide、gvt、gopack等等, glide是Golang的包管理工具,是为了解决Golang依赖问题的。 为什么需要glide? 原因很简单,Go 语言原生包管理的缺陷:

能拉取源码的平台很有限,绝大多数依赖的是
github.com
不能区分版本,以至于令开发者以最后一项包名作为版本划分
依赖 列表/关系 无法持久化到本地,需要找出所有依赖包然后一个个
go get
只能依赖本地全局仓库(GOPATH/GOROOT),无法将库放置于局部仓库($PROJECT_HOME/vendor)

一,安装

采用ventor特性,go1.5版本需要指定 GO15VENDOREXPERIMENT=1 环境变量表示启用,

Go1.6版本表示默认启用,Go1.7版本移除该环境变量。

Glide的优点:

持久化依赖列表至配置文件中,包括依赖版本(支持范围限定)以及私人仓库等
持久化关系树至lock 文件中(类似于yarn 和 cargo),以重复拉取相同版本依赖 兼容 go get 所支持的版本控制系统:Git,Bzr, HG, and SVN 支持 GO15VENDOREXPERIMENT 特性,使得不同项目可以依赖相同项目的不同版本。 可以导入其他工具配置, 例如:Godep, GPM, Gom, and GB。

  1. 安装glide
#go get github.com/Masterminds/glide
#go install github.com/Masterminds/glide
  1. 验证安装成功
#glide   //可以看到glided的信息

二,使用

#cd $GOPATH/src/vsr-admin
#glide init

:初始化项目需要的包生成glide.yaml文件,打开它可以更改自己需要的版本

初始化的选择
在这里插入图片描述
注意: 每个选择根据自己的需要

#glide install :从github.com拉取需要的包。

如果需要添加新包,更新新包,下载指定的包可以通过更改glide.yaml文件实现,
因为#glide install
:下载包前是先读取glide.yaml文件(也会读取glide.lock文件,因为是首次insatll所以此文件还未生成,执行install时会提醒未找到该文件),再执行insatll读到的包以及项目依赖的基本的包。此时会生成glide.lock文件,里面记录了所有下载的包的信息。同时生成一一个ventor的文件夹,里面是下载的依赖包。

#go build :编译项目

三,其它操作

添加并下载依赖 glide get
除了自动从代码中解析 import 外,glide 还可以通过 glide get 直接下载代码中没有的依赖,与 go get 的用法基本一致:

例如:
glide get github.com/orcaman/concurrent-map
glide还有其它功能,在这就暂时不介绍了。

四,遇到的问题

1, 找不到需要下载的包
在这里插入图片描述

解决办法:
在glide.yaml 文件中添加 -package: golang.org/x/sys//去github上下载基础包
再执行glide install 或者glide up //下载更新包,glide install 也有更新的功能。

,下载的包的版本不是自己需要的,导致编译报错
在这里插入图片描述

解决办法:
更该glide.yaml文件中要下载包的版本,可以去github上寻找自己需要的版本
再执行glide install (先把已经下载好的删了,以免报错重复)

3,执行glide install 报错,提醒已经有东西存在

解决办法:
尝试删除glide.yaml和glide.lock文件,重新初始化项目。因为glide
install 会先读取已经存在的glide.yaml和glide.lock文件。

猜你喜欢

转载自blog.csdn.net/jkwanga/article/details/106288842