25

govendor包管理工具的使用

 5 years ago
source link: https://studygolang.com/articles/18083?amp%3Butm_medium=referral
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.
  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/app

初始化vendor目录

govendor init

查看vendor目录

[root@CC54425A vendor]# ls

vendor.json

将GOPATH中本工程使用到的依赖包自动移动到vendor目录中

说明:如果本地GOPATH没有依赖包,先go get相应的依赖包

govendor add +external
或使用缩写: govendor add +e

现在看vendor.json 已经有依耐了

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 git版本管理

和pakeage.json同样, 我们需要将这个vendor.json添加到GIT, 但忽略vendor下的其他文件.

.gitignore

/vendor/*

!/vendor/vendor.json

2.5 拉取依赖到vendor

其他人可以使用vendor.json重新安装依赖包到vendor

govendor sync

2.6 使用vendor

注意vendor所在的目录一定要在第一个GOPAHT下

  • The project must be within a $GOPATH/src.
  • If using go1.5, ensure you set GO15VENDOREXPERIMENT=1.

2.7 Sub-commands

init     创建 vendor 文件夹和 vendor.json 文件
list     列出已经存在的依赖包
add      从 $GOPATH 中添加依赖包,会加到 vendor.json
update   从 $GOPATH 升级依赖包
remove   从 vendor 文件夹删除依赖
status   列出本地丢失的、过期的和修改的package
fetch   从远端库增加新的,或者更新 vendor 文件中的依赖包
sync     Pull packages into vendor folder from remote repository with revisions
migrate  Move packages from a legacy tool to the vendor folder with metadata.
get     类似 go get,但是会把依赖包拷贝到 vendor 目录
license  List discovered licenses for the given status or import paths.
shell    Run a "shell" to make multiple sub-commands more efficient for large projects.

Recommend

  • 83

    虽然人工智能的云计算管理工具目前还处于采用的早期阶段,但IT行业专家表示采用这样的工具可以减少与性能和根本原因分析相关的大量工作。那些致力于深入了解云计算基础设施和应用程序性能的管理员将迎来一个新的盟友:人工智能。

  • 30

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

  • 39

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

  • 44
    • studygolang.com 5 years ago
    • Cache

    Go 包依赖管理工具 —— govendor

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

  • 48

    原文作者: dryyun 原文链接: https://dryyun.com/2018/11/28... 基本介绍 ...

  • 25
    • studygolang.com 4 years ago
    • Cache

    Golang包管理工具govendor的使用

    1. govendor简介 golang工程的依赖包经常使用go get命令来获取,例如:go get github.com/kardianos/govendor ,会将依赖包下载到GOPATH的路径下。 常用的依赖包管理工具有godep,govendor等,在Golang1.5之后,Go提...

  • 15
    • studygolang.com 4 years ago
    • Cache

    go 代码依赖管理工具mod使用

    什么是go mod Go.mod是Golang1.11版本新引入的官方包管理工具用于解决之前没有地方记录依赖包具体版本的问题,方便依赖包的管理。类似于php的composer,java的maven; Go.mod其实就是一个Modules,关于Modules的官方定...

  • 16

    目录:根据微服务的发版需求进行对应用进行调试,使用chart的模版发布微服务1、基于dubbo微服务发布一个基于生产环境用到的helm模版模版地址:[email protected]:zhaocheng172/helm-dubbo.git拉取请把你的公钥给我,不然拉不下来3.6Chart模板Helm最核心的就是...

  • 3

    背景 由于之前写k8s operator在引入go的包的时候,涉及到go的包管理工具,因为自己写java已经很多年,maven的包管理工具很是好用,便想到golang是否也有类似的工具, goer都知道go的包引入带上github.com类似的前缀,就会自动...

  • 0
    • linuxsuren.github.io 2 years ago
    • Cache

    govendor

    govendor govendor govendor init govendor list

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK