Golang包管理工具之govendor
简介在使用Golang开发项目的过程中,我们会使用很多外部包,但是我们一般通过go get获取相应包后,都下载到了GOPATH对应的路径下。这样造成了我们不能将多个项目的依赖隔离开,其次就是多个人协同开发一个项目后,每个人下载的包有可能不一致,所以通过这种方式也可以得到解决。
为什么要使用govendor
在使用Golang开发项目的过程中,我们会使用很多外部包,但是我们一般通过go get获取相应包后,都下载到了GOPATH对应的路径下。这样造成了我们不能将多个项目的依赖隔离开,其次就是多个人协同开发一个项目后,每个人下载的包有可能不一致,所以通过这种方式也可以得到解决。
govendor简介
golang工程的依赖包经常使用go get命令来获取,例如:
go get github.com/kardianos/govendor
会将依赖包下载到GOPATH的路径下。
常用的依赖包管理工具有godep,govendor等,在Golang1.5之后,Go提供了 GO15VENDOREXPERIMENT 环境变量(Go 1.6版本默认开启该环境变量),用于将go build时的应用路径搜索调整成为 当前项目目录/vendor 目录方式。通过这种形式,我们可以实现类似于 godep 方式的项目依赖管理。
govendor安装
Github地址:https://github.com/kardianos/govendor
go get -u github.com/kardianos/govendor
govendor使用
- 1、初始化
需要进入到项目目录,使用下面的命令进行初始化:
govendor init
会出现一个vendor文件夹,里面的vendor.json 文件用来记录依赖包的信息。
- 2、添加本地已有的库(必须是存在的GOPATH中的库)
govendor add github.com/jinzhu/gorm
- 3、移除
govendor remove github.com/jinzhu/gorm
- 4、从远程拉取库(类似于go get)
govendor fetch github.com/jinzhu/gorm
- 5、将GOPATH中本工程使用到的依赖包自动移动到vendor目录中(通过add直接获取的,可能相关依赖包是没有的,就需要执行该命令)
govendor add +external
- 6、查看当前项目中的包
govendor list
注意:项目必须建立在GOPATH的src中,否则go找不到对应的项目,当我们使用govendor后,会自动找到该项目下的vendor目录去获取相应包。
前一篇博客中已经说过Golang对Gzip的处理,其实这是我的服务器端的处理,那么当我们服务器返回Gzip压缩的字符串后,客户端如何进行解压呢?本文主要记录下JavaScript对Gzip进行压缩和解压处理。
在PHP中,对二维数组排序还是非常简单的,但是在Golang中对二位数据排序显的就稍显麻烦,但是我们还是可以通过结构体来进行排序,本文主要记录Golang如何通过结构体的多个字段来进行排序。
按钮在我们开发过程中是少不了的,本节将介绍Flutter常用的一些按钮组件,例如:TextButton、OutlinedButton、ElevatedButton
通过sudo命令,可以让普通用户在执行指定命令或程序上,拥有超级管理员的权限。并有针对性将不同的命令授予指定的普通用户,同时普通用户不需要知道root的密码就可以得到授权,授权的方式可以通过visudo配置管理。
快速生成表格
Electron页面跳转、浏览器打开链接和打开新窗口
在使用Git的过程中,不想每次都输入用户名和密码去拉取代码,所以就需要保存这些信息,那么既然有保存了,就必须有清除功能。
在Mac电脑中,如何对Git的用户名和密码进行修改呢?起初不懂Mac,所以整了很久,本文将记录如何对这个进行操作,以便后期使用。
Docker编译镜像出现:fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.12/main: temporary error (try again later)
WARNING: Ignoring APKINDEX.2c4ac24e.tar.gz: No such file or directory问题