29

Golang包管理工具govendor的使用

 5 years ago
source link: https://studygolang.com/articles/25089
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

1. govendor简介

golang工程的依赖包经常使用go get命令来获取,例如:go get github.com/kardianos/govendor ,会将依赖包下载到GOPATH的路径下。

常用的依赖包管理工具有godep,govendor等,在Golang1.5之后,Go提供了 GO15VENDOREXPERIMENT 环境变量(Go 1.6版本默认开启该环境变量),用于将go build时的应用路径搜索调整成为 当前项目目录/vendor 目录方式。通过这种形式,我们可以实现类似于 godep 方式的项目依赖管理。

2. 安装与使用

2.1. 安装

go get -u -v github.com/kardianos/govendor

2.2 使用

#进入到项目目录
cd /home/gopath/src/mytool

#初始化vendor目录
govendor init

#查看vendor目录
[root@CC54425A mytool]# ls
commands  main.go  vendor  mytool_test.sh

#将GOPATH中本工程使用到的依赖包自动移动到vendor目录中
#说明:如果本地GOPATH没有依赖包,先go get相应的依赖包
govendor add +external
或使用缩写: govendor add +e 

#Go 1.6以上版本默认开启 GO15VENDOREXPERIMENT 环境变量,可忽略该步骤。
#通过设置环境变量 GO15VENDOREXPERIMENT=1 使用vendor文件夹构建文件。
#可以选择 export GO15VENDOREXPERIMENT=1 或 GO15VENDOREXPERIMENT=1 go build 执行编译
export GO15VENDOREXPERIMENT=1

2.3. 说明

govendor只是用来管理项目的依赖包,如果GOPATH中本身没有项目的依赖包,则需要通过go get先下载到GOPATH中,再通过govendor add +external拷贝到vendor目录中。Go 1.6以上版本默认开启GO15VENDOREXPERIMENT环境变量。

2.4. 常用命令

常见的命令如下,格式为 govendor COMMAND。

命令 功能 init 初始化 vendor 目录 list 列出所有的依赖包 add 添加包到 vendor 目录,如 govendor add +external 添加所有外部包 add PKG_PATH 添加指定的依赖包到 vendor 目录 update 从 $GOPATH 更新依赖包到 vendor 目录 remove 从 vendor 管理中删除依赖 status 列出所有缺失、过期和修改过的包 fetch 添加或更新包到本地 vendor 目录 sync 本地存在 vendor.json 时候拉去依赖包,匹配所记录的版本 get 类似 go get 目录,拉取依赖包到 vendor 目录

具体来看,这些包可能的类型如下:

uqYBJbU.png!web

govendor命令

文章转载出处


Recommend

  • 35

    module机制和dep/govendor机制是否冲突? 自从go团队推出 module 机制后,go团队和dep社区发生了一些冲突,有一篇有名的争论《关于Go Module的争吵》,读后给人一种错觉,似乎 module 机制和...

  • 31
    • studygolang.com 6 years ago
    • Cache

    govendor包管理工具的使用

    govendor简介 golang工程的依赖包经常使用go get命令来获取,例如: go get github.com/kardianos/govendor ,会将依赖包下载到GOPATH的路径下。 常用的依赖包管理...

  • 53

    go mod go官方的module管理工具 原文: https://github.com/googege/blog 用法: 在一个非go path的路径中新建一个项目,然后使用 go mo...

  • 42

    govendor 是 go 的一个比较好用包版本管理工具。主要用来保证 go 项目在协同开发或发版部署时,保证部署安装的依赖包版本对当前项目是稳定可用的。 为什么要使用包版本管...

  • 46
    • studygolang.com 6 years ago
    • Cache

    Go 包依赖管理工具 —— govendor

    govendor 是一个基于 vendor 机制实现的 Go 包依赖管理命令行工具。与原生 vendor 无侵入性融合,也支持从其他依赖管理工具迁移,可以很方便的实现同一个包在...

  • 50

    go mod go buildin package manager. go mod是go语言内置的包管理工具,集成在go tool中,安装好go就可以使用。 要求: go version >= 1.11 官方文档:

  • 43
    • www.tuicool.com 5 years ago
    • Cache

    Golang中的包管理工具 - Go Modules

    GO包管理的前世今生 先来了解下Go包管理的发展历程 GOPATH 在Go1.5之前使用GOROOT和GOPATH这2个系统环境变量来决定包的位置,对于开发者主要使用GOPATH。GOPATH 解决了第三方源码依赖的问题,看一下我本机

  • 55

    GO包管理的前世今生 先来了解下Go包管理的发展历程 GOPATH 在Go1.5之前使用GOROOT和GOPATH这2个系统环境变量来决定包的位置,对于开发者主要使用GOPATH。GOPATH 解决了第三方源...

  • 8

    参考文件:https://github.com/spf13/viper 一、viper简介 viper是一个go 开发工具,主要是用于处理各种格式的配置文件,简化程序配置的读取问题,所以viper 是一个配置解决方案,它拥有丰富的特...

  • 12
    • linuxsuren.github.io 3 years ago
    • Cache

    govendor

    govendor govendor govendor init govendor list

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK