文档章节

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

Deepzz
 Deepzz
发布于 2017/02/14 00:13
字数 1325
阅读 72
收藏 0

Desc:10分钟了解glide相关命令,做好包管理准备

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

glide create (别名 init)

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

<!--more-->

$ 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

© 著作权归作者所有

Deepzz
粉丝 1
博文 10
码字总数 15769
作品 0
成都
程序员
私信 提问
加载中

评论(1)

岁月无痕
岁月无痕
我已经把glide 文档翻译成了中文版的。地址在这里:http://glidedocs.readthedocs.io/

文档放在github上,项目地址:https://github.com/javasgl/GlideDocs. 欢迎 star ,或者 issue or fork 后提交来帮助我改进翻译质量。
Go的包管理工具(二):glide

在上一篇文章中介绍了 Go 的环境配置和包管理的几种方式。Go 的包管理是一直是为人诟病之处,从 Go 1.5 引入的 vendor 机制、准官方工具dep,到 Go 1.5 的 go modules,目前为止还没一个简便...

aoho
03/06
0
0
golang 中的包管理

声明:本文仅限于简书发布,其他第三方网站均为盗版,原文地址: golang 中的包管理 对于习惯了 Java 和 Python 的程序员来说,对于包的管理都有着比较大的期望,当然,虽然 Java 和 Python...

yetship
2017/11/06
0
0
golang进阶(一)——glide的使用手册

+++ title=”golang进阶(一)——glide的使用手册” date=”2017-10-10” tags=[“golang”,”glide”,”docker”] categories=[“资源管理”] description=”golang也有包管理,类似maven...

lastsweetop
2017/10/09
0
0
Golang包管理工具之glide的使用

1. glide简介 是一个golang项目的包管理工具,非常方便快捷,一般只需要2-3个命令就可以将go依赖包自动下载并归档到的目录中。官网参考:https://glide.sh/ 2. glide安装 3. glide使用 4. g...

huwh_
2018/01/14
0
0
Golang依赖关联工具:glide从入门到精通使用

介绍 不论是开发Java还是你正在学习的Golang,都会遇到依赖管理问题。Java有牛逼轰轰的Maven和Gradle。 Golang亦有godep、govendor、glide、gvt、gopack等等,本文主要给大家介绍gilde。 gl...

梦朝思夕
2017/07/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

c++ 虚基类

c++ 虚基类 p556

天王盖地虎626
14分钟前
10
0
Java中的面向对象

一、面向对象 面向对象和面向过程的区别 过程就是函数,就是写方法,就是方法的一种实现。 对象就是将函数,属性的一种封装。用人们思考习惯的方式思考问题。 如何自定义类 修饰符 类名{ //成...

zhiruochujian
22分钟前
3
0
k8s删除Terminating状态的命名空间

背景: 我们都知道在k8s中namespace有两种常见的状态,即Active和Terminating状态,其中后者一般会比较少见,只有当对应的命名空间下还存在运行的资源,但是该命名空间被删除时才会出现所谓的...

Andy-xu
25分钟前
15
0
seata源码阅读笔记

seata源码阅读笔记 本文没有seata的使用方法,怎么使用seata可以参考官方示例,详细的很。 本文基于v0.8.0版本,本文没贴代码。 seata中的三个重要部分: TC:事务协调器,维护全局事务和分支...

东都大狼狗
38分钟前
5
0
Rust:最小化窗口后 CPU占用率高 (winit,glutin,imgui-rust)

最近试着用 imgui-rust 绘制界面,发现窗口最小化后CPU占用会增大。 查询的资料如下: https://github.com/rust-windowing/winit/issues/783 https://github.com/ocornut/imgui/issues/1151 ...

reter
42分钟前
19
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部