Mryqu's Notes


  • 首页

  • 搜索
close

[Golang] Glide的安装和使用

时间: 2017-10-16   |   分类: Golang     |   阅读: 109 字 ~1分钟

不论是开发Java还是你正在学习的Golang,都会遇到依赖管理问题。Java有牛逼轰轰的Maven和Gradle。 Golang亦有Godep、Govendor、Glide、dep等等。本文主要给大家介绍Glide。 Glide 是Golang的包管理工具,是为了解决Golang依赖问题的。 为什么需要Glide ? 原因很简单,Go语言原生包管理的缺陷。罗列一下Golang的get子命令管理依赖有很多大缺陷:

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

Glide 是有下列几大主要功能:

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

Glide 在Mac或Linux上是很容易安装的,但是在Win10 x64上据说最新版有问题。详见https://github.com/Masterminds/glide/issues/873 。 想多了没用,还是实干吧。从https://github.com/Masterminds/glide/releases 上下载了glide-v0.13.0-windows-amd64.zip,里面就一个glide.exe。 glide install 将glide.exe放入%GOPATH%/bin下,然后将%GOPATH%/bin加入环境变量Path中,由于我的Go版本是1.9所以GO15VENDOREXPERIMENT环境变量就不用管了。执行 glide --version ,开头没问题呀! glide version 进入我的项目目录%GOPATH%/src/helloglide,执行下列命令:

glide create #创建新的工作空间,生成glide.yaml
glide get github.com/pborman/uuid  #获取uui包
glide install #建立glide.lock版本
go build #构建项目

glide list #列举项目导入的所有包
INSTALLED packages:
        github.com\pborman\uuid

glide tree #以树的形式列举项目导入的所有包
[WARN]  The tree command is deprecated and will be removed in a future version
helloglide
|-- github.com/pborman/uuid   (XXXXXX\helloglide\vendor\github.com\pborman\uuid)

一切顺利,之前算是我庸人自扰吧。Go官方有了dep项目,Glide 也呼吁切换到dep上去,所以对Glide的学习就到这里吧。

参考


GitHub:Masterminds/glide
The glide.yaml File
Semantic Versioning 2.0.0
Versions and Ranges in glide
Golang依赖管理工具:glide从入门到精通使用

标题:[Golang] Glide的安装和使用
作者:mryqu
声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!

#golang# #glide# #windows# #dependencies# #package#
[Golang] UUID包
[Golang] 解决GoClipse安装问题
  • 文章目录
  • 站点概览

Programmer & Architect

662 日志
27 分类
1472 标签
GitHub Twitter FB Page
    • 参考
© 2009 - 2023 Mryqu's Notes
Powered by - Hugo v0.120.4
Theme by - NexT
0%