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目录去获取相应包。
Pushgateway是一个独立的服务,Pushgateway位于应用程序发送指标和Prometheus服务器之间。
Flutter 提供了基本路由和命名路由两种方式,来管理页面间的跳转。其中,基本路由需要自己手动创建页面实例,通过 Navigator.push 完成页面跳转;而命名路由需要提前注册页面标识符和页面创建方法,通过 Navigator.pushNamed 传入标识符实现页面跳转。
记一次Mysql占用内存过高的优化过程
mkdir(make dirctories的简写),功能为创建目录,默认情况下,如果要创建的目录已经存在,则会提示此文件存在,而不会继续创建目录
用supervisord管理python进程,python程序中的print内容不能输出到指定的日志文件
快速生成表格
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问题