Glide命令,如何使用glide,glide.lock

更多精彩文章https://deepzz.com
Desc:10分钟了解glide相关命令,做好包管理准备

以下是Glide命令,其中大部分命令是帮助您管理工作区。

glide create (别名 init)

初始化新工作区。除此之外,这会创建一个glide.yaml文件,同时试图猜测包和版本。例如,如果你的项目使用Godep,它将使用指定的版本。Glide足够智能,可以扫描您的代码库,并检测正在使用的导入,无论是否指定使用其他包管理器。


$ glide create

[INFO]  Generating a YAML configuration file and guessing the dependencies

[INFO]  Attempting to import from other package managers (use --skip-import to skip)

[INFO]  Scanning code to look for dependencies

[INFO]  --> Found reference to github.com/Masterminds/semver

[INFO]  --> Found reference to github.com/Masterminds/vcs

[INFO]  --> Found reference to github.com/codegangsta/cli

[INFO]  --> Found reference to gopkg.in/yaml.v2

[INFO]  Writing configuration file (glide.yaml)

[INFO]  Would you like Glide to help you find ways to improve your glide.yaml configuration?

[INFO]  If you want to revisit this step you can use the config-wizard command at any time.

[INFO]  Yes (Y) or No (N)?

n

[INFO]  You can now edit the glide.yaml file. Consider:

[INFO]  --> Using versions and ranges. See https://glide.sh/docs/versions/

[INFO]  --> Adding additional metadata. See https://glide.sh/docs/glide.yaml/

[INFO]  --> Running the config-wizard command to improve the versions in your configuration

这里提到的配置向导可以在这里运行或者以后手动运行。此向导可帮助您找出可用于依赖项的版本和范围。

glide config-wizard

这将运行一个向导,扫描依赖关系并检索其上的信息,以提供可以交互选择的建议。例如,它可以发现依赖关系是否使用语义版本,并帮助您选择要使用的版本范围。

glide get [package name]

你可以通过glide get下载一个或多个包到你的vendor目录,并会自动加入到glide.yml文件中。


$ glide get github.com/Masterminds/cookoo

当使用glide get时,它将内省所列出的软件包来解决它的依赖性,包括使用Godep,GPM,Gom和GB配置文件。

glide get命令可以使用包名称传递一个版本或范围。 例如:


$ glide get github.com/Masterminds/cookoo#^1.2.3

版本通过锚()与包名称分隔开。如果未指定版本或范围,并且依赖关系使用语义版本 Glide 将提示您询问是否要使用它们。

glide update (别名 up)

下载或更新glide.yaml文件中列出的所有库,并将它们放在vendor目录中。它还将递归遍历依赖包以获取任何所需的配置并在任何配置中读取。


$ glide up

这将递归在寻找由Glide,Godep,gb,gom和GPM管理的其他项目的包。当找到这些包时,将根据需要安装这些包。

将创建或更新glide.lock文件,并将依赖关系固定到特定版本。例如,如果在glide.yaml文件中将版本指定为范围(例如,^ 1.2.3),它将被设置为glide.lock文件中的特定提交标识。这允许可重复安装(请参阅glide install)。

要从已提取的包中删除任何嵌套的vendor/目录,请参见-v标志。

glide install

当你想从glide.lock文件安装特定的版本使用glide install


$ glide install

这将读取glide.lock文件,警告你如果它没有绑定到glide.yaml文件,并安装commit id特定的版本。

glide.lock文件不绑定到glide.yaml文件时,如有更改,它将提供警告。运行glide up将在更新依赖关系树时重新创建glide.lock文件。

如果没有glide.lock文件存在glide install将执行update并生成 lock 文件。

要从已提取的包中删除任何嵌套的vendor/目录,请参见-v标志。

glide novendor (别名 nv)

当你运行go test ./...这样的命令时,它会遍历所有的子目录,包括vendor目录。当你测试你的应用程序时,你可能想测试你的应用程序文件,而不需要运行所有依赖项及其依赖关系的测试。这是novendor命令进来的地方。它列出除了vendor以外的所有目录。


$ go test $(glide novendor)

这将对您的项目的所有目录(vendor目录除外)运行go test

glide name

当你使用 Glide 编写脚本时,有时你需要知道你正在使用的包的名称。glide name返回glide.yaml文件中列出的软件包的名称。

glide list

Glide 的list命令显示项目导入的所有包的按字母顺序排列的列表。


$ glide list

INSTALLED packages:

vendor/github.com/Masterminds/cookoo

vendor/github.com/Masterminds/cookoo/fmt

vendor/github.com/Masterminds/cookoo/io

vendor/github.com/Masterminds/cookoo/web

vendor/github.com/Masterminds/semver

vendor/github.com/Masterminds/vcs

vendor/github.com/codegangsta/cli

vendor/gopkg.in/yaml.v2

glide help

打印 glide 帮助


$ glide help

glide --version

显示版本信息


$ glide --version

glide version 0.12.0

glide mirror

镜像提供了将 repo 位置替换为作为原始镜像的另一位置的能力。当您希望拥有连续集成(CI)系统的缓存时,或者如果您要在本地位置的依赖项上工作时,这是非常有用的。

镜像存储在GLIDE_HOME中的mirrors.yaml文件中。

到管理器镜像的三个命令是listsetremove

在表单中使用set


glide mirror set [original] [replacement]


glide mirror set [original] [replacement] --vcs [type]

例如:


$ glide mirror set https://github.com/example/foo https://git.example.com/example/foo.git

$ glide mirror set https://github.com/example/foo file:///path/to/local/repo --vcs git

请在表单中使用remove


glide mirror remove [original]

例如:


$ glide mirror remove https://github.com/example/foo

本文链接:https://deepzz.com/post/glide-package-management-command.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,298评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,701评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,078评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,687评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,018评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,410评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,729评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,412评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,124评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,379评论 2 242
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,903评论 1 257
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,268评论 2 251
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,894评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,014评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,770评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,435评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,312评论 2 260

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,544评论 25 707
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,087评论 18 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,301评论 6 344
  • 一、概述 golang的包管理工具有很多,本篇幅主要介绍glide进行包管理。 二、安装及命令介绍 go get ...
    码农不器阅读 988评论 0 0
  • 彩色幼儿园和低端人口 美人鱼爱上哆啦美 昨晚自己在家偷偷庆幸了一下,后来一想独乐乐不如众乐乐。 比如:我们真的要庆...
    美人鱼爱上哆啦美阅读 187评论 0 4